2017-10-03 3 views
0

Description du site: Mon site permet aux utilisateurs de télécharger des projets web open source PHP.comment créer l'URL avec la chaîne de requête après l'envoi du formulaire php

Bonjour Je voudrais savoir comment je peux générer une URL comme sitename.com/projects.html?id=x après qu'un utilisateur soumet le formulaire. Comment je vais à ce sujet? Je ne sais pas où commencer.

nouveau-projet.html:permet aux utilisateurs de télécharger de nouveaux projets Web open source.

<?php 
    include_once('includes/header.php'); ?> 
    <?php 
    include_once 'dbconnect.php'; 

    // fetch files 
    $sql = "select filename from tbl_files"; 
    $result = mysqli_query($con, $sql); 
    ?> 
    <?php 
    session_start(); 
    include_once "vendor/autoload.php"; 
    $page = new membership\Page(1); 
    if ($page->isValid() == true) { 
     ?> 




    <div id="container"> 
     <div class="wrapper"> 
     <div id="content"> 
      <h2>New Project</h2> 
      <p><center> 

    <form action='upload.php' method='post' enctype='multipart/form-data'> 
          <legend>Select File to Upload:</legend> 
          <div class='form-group'> 
    Title: <br /><input type='text' name='title' maxlength="255"/><br /><br /> 
    Description: <br /><textarea type='text' name='description' maxlength="2000"></textarea><br /><br /> 

           <input type='file' name='file1' /> 
          </div> 
          <div class='form-group'><br /> 
           <input type='submit' name='name' value="Submit" class='btn btn-info'/> 
          </div> 

          <?php if (isset($_GET['st'])) { ?> 
           <div class='alert alert-danger text-center'> 
            <?php 
            if ($_GET['st'] == "success") { 
             echo "File Uploaded Successfully!"; 
            } else { 
             echo 'Invalid File Extension!'; 
            } 
            ?> 
           </div> 
          <?php } ?> 
         </form></center> 

    </p><?php } ?> 

    <br /></div> 
    </p> 

     <div id="column"> 
      <div class="holder"> 
      <h2>Project Upload Rules</h2> 
      <ul id="latestnews"> 
       This is this rules you must follow for uploading a project.<br /><br /> 
    - You must own the project/script.<br /> 
    - Must be 100% clean/safe.<br /> 
    - Code must be easy to read.<br /> 
    - No outdated code.<br /> 
    <br /> 
    If you don’t follow the rules your account who be banned. 
       <br /> 
      </p> 

     <br /></p> 
       </li> 
      </ul> 
      </div> 
     </div> 
     <br class="clear" /> 
     </div> 
    </div> 

    <?php include_once('includes/footer.php'); ?> 

Toute aide serait bien.

EDIT:

projects.html

<?php include("includes/header.php"); ?> 
<?php 
include_once 'dbconnect.php'; 

// fetch files 
$sql = "select filename, title, description from tbl_files LIMIT 4"; 
$result = mysqli_query($con, $sql); 
?> 


<div id="container"> 
    <div class="wrapper"> 
    <div id="content"> 
     <h2>Lastest 5 Projects <button style="float: right;"><a href="new-project.html">New Project</a></button></h2> 
     <p><table class="table table-striped table-hover"> 
       <thead> 
        <tr> 
         <th>#</th> 
         <th>File Name</th> 
<th>Description</th> 
         <th>Download</th> 
        </tr> 
       </thead> 
       <tbody> 
       <?php 
       $i = 1; 
       while($row = mysqli_fetch_array($result)) { ?> 
       <tr> 
        <td><?php echo $i++; ?></td> 
        <td><?php echo $row['title']; ?></td> 
<td><?php echo $row['description']; ?></td> 
        <td><a href="uploads/<?php echo $row['filename']; ?>" download>Download</td> 
       </tr> 
       <?php } ?> 
       </tbody> 
      </table> 
</div> 
</p> 

    <div id="column"> 
     <div class="holder"> 
     <h2>Welcome!</h2> 
     <ul id="latestnews"> 

      <li class="last"> <p><?php 
    session_start(); 
    include_once "vendor/autoload.php"; 
    $page = new membership\Page(1); 
    if ($page->isValid() == true){ 
     echo "Hello " . $_SESSION["username"] . "!<br /><br /> 

<a href='logout.html'>Logout</a>\n"; 
     } elseif ($page->isValid() == false) { echo "<center>Please <a href='login.php'>Log in</a> to share projects.<br /> <a href='register.php'>Need A Account?</a></center>";} 
?><br /> 
     </p> 

    <br /></p> 
      </li> 
     </ul> 
     </div> 
    </div> 
    <br class="clear" /> 
    </div> 
</div> 

<?php 
error_reporting(E_ALL & ~E_NOTICE); 
include('includes/memberlistconfig.php'); 

// call this file only after database connection 
require_once 'functions.php'; 
?> 


<div id="container"> 
    <div class="wrapper"> 
    <div id="content"> 
     <h2>Categories</h2> 
     <p> 
     <div class="height20"></div> 
     <?php echo $emsg; ?> 

    <article> 
      Click on one of the categories to see what’s inside. 
      <ul> 
      <?php 
      $res = fetchCategoryTreeList(); 
      foreach ($res as $r) { 
       echo $r; 
      } 
      ?> 
      </ul> 
     </article> 
</div></p> 
<br class="clear" /> 
    </div> 
</div> 

    <?php include("includes/footer.php"); ?> 

upload.php

<?php include('dbconnect.php'); ?> 
<?php 
//check if form is submitted 
if (isset($_POST['submit'])) 
{ 
    $filename = $_FILES['file1']['name']; 

    //upload file 
    if($filename != '') 
    { 
     $ext = pathinfo($filename, PATHINFO_EXTENSION); 
     $allowed = ['zip', 'rar', 'php', 'html', 'sql']; 

     //check if file type is valid 
     if (in_array($ext, $allowed)) 
     { 
      // get last record id 
      $sql = 'select max(id) as id from tbl_files'; 
      $result = mysqli_query($con, $sql); 
      if (count($result) > 0) 
      { 
       $row = mysqli_fetch_array($result); 
       $filename = ($row['id']+1) . '-' . $filename; 
      } 
      else 
       $filename = '1' . '-' . $filename; 

      //set target directory 
      $path = 'uploads/'; 

      $created = @date('Y-m-d H:i:s'); 
      move_uploaded_file($_FILES['file1']['tmp_name'],($path . $filename)); 

$title = ''; 
if(!empty($_POST['title'])) 
{ 
    $title = mysqli_real_escape_string($con, $_POST['title']); 
} 
$description = ''; 
if(!empty($_POST['description'])) 
{ 
    $description = mysqli_real_escape_string($con, $_POST['description']); 
} 
      // insert file details into database 
      $sql = "INSERT INTO tbl_files(filename, created, title, description) VALUES('$filename', '$created', '$title', '$description')"; 
      mysqli_query($con, $sql); 
      header("Location: new-project.html?st=success"); 
     } 
     else 
     { 
      header("Location: new-project.html?st=error"); 
     } 
    } 
    else 
     header("Location: new-project.html"); 
} 
?> 

Répondre

0

Lorsqu'un utilisateur soumet un nouveau projet, générer un nombre aléatoire et enregistrez-le la base de données en tant qu'ID avec les détails du projet. Donc, quand quelqu'un va à sitename.com/projects.php?id=x il recherchera l'ID dans la base de données et servira les détails.

projects.php ressemblerait à ceci:

<?php 
$id = $_GET['id']; 
$sql = "SELECT * FROM projects WHERE `id`='{$id}'"; 

... 
?> 
+0

Je l'ai déjà tout mis en place la base de données crée un identifiant pour le projet et tout. Pouvez-vous me donner plus de détails sur la façon de le faire et de travailler. Aussi veux-tu que j'inclus le code projects.html? –

+0

À moins que votre serveur ne soit configuré pour traiter les codes PHP dans un fichier .html, vous devez utiliser une extension .php au lieu de .html. Et oui, il sera utile si vous incluez le code 'projects.html' – styl3r

+0

Ok, je vais éditer le poste dans une seconde et oui je l'ai configuré pour exécuter PHP dans les fichiers .html –

1

En ce moment, votre formulaire soumet à upload.php. Donc, il suffit de créer upload.php et gérer la demande POST et enregistrer les informations dans votre base de données, puis rediriger l'utilisateur à sitename.com/projects.html?id=x. Vous pouvez rediriger les utilisateurs de PHP en utilisant header('location: /projects.html').

Maintenant, au lieu de projects.html, vous avez besoin de projects.php (sauf si vous avez un système de routage sophistiqué ou une configuration de serveur, les pages .html ne sont pas analysées par PHP). Vous avez besoin de PHP pour /projects.php?id=3 parce que vous voulez générer dynamiquement cette page.

Pour générer dynamiquement la page /project.php?id=3 en fonction de l'ID fourni. Vous pouvez accéder à la valeur de l'ID en utilisant $_GET. Il fonctionne comme ceci:

if(isset($_GET['id']) && ctype_digit($_GET['id'])){ 
    # user have requested the page with a valid id (only number) 
    # now you can use $_GET['id'] to generate this page dynamically. 
    // your code here 
    // you probably want to authenticate users too 
    $requested_id = $_GET['id']; 
} 
+0

Je l'ai mis en place pour exécuter PHP dans les fichiers .html aussi j'ai mis à jour le poste avec les projets.html et le code upload.php. –