6
votes

PHP génère automatiquement de nouvelles pages

Je fais un site de type réseau social, où les utilisateurs peuvent télécharger leurs articles à noter. Cependant, j'essaie d'améliorer la manière dont le site est disposé, de manière à générer automatiquement des pages une fois que l'utilisateur insère un nouvel élément. La page Add.PHP a le formulaire suivant:

<form action="add.php"  method="post"  autocomplete="on" enctype="multipart/form-data" action="<?php echo                  $_SERVER['PHP_SELF']; ?>" method="POST" id="pic">
    <p> <label for="jname" class="iconic user"> Name of Jam <span class="required">*</span></label> <input type="text" name="jname" id="jname" value="<?php if (isset($_POST['jname'])) echo $_POST['jname']; ?>" required="required" placeholder="Input your Name of Jam here"  /> </p>

    <p> <select name="jtype" id="jtype" value="<?php if (isset($_POST['jtype'])) echo $_POST['jtype']; ?>" required="required">
            <option value="jam">Jam</option>
            <option value="jelly">Jelly</option>
            <option value="marmalade">Marmalade</option>
            <option value="preserve">Preserve</option>
        </select> </p>

    <p> <label for="producer" class="iconic user"> Jam Producer <span class="required">*</span></label>     <input type="text" name="producer" id="producer" value="<?php if (isset($_POST['producer'])) echo $_POST['producer']; ?>" required="required" placeholder="Input the producer of the Jam here"  /> </p>
    Upload a picture of your jam: </br> </br> <input name="userfile" type="file" /> </br>
    <input type="submit" name="submit" value="Register" />    
    <input type="hidden" name="submitted" value="TRUE" />

</form>


1 commentaires

Qu'avez-vous essayé? Voulez-vous qu'un nouveau fichier créé? Ou que diriez-vous d'une inscription de base de données?


4 Réponses :


2
votes

Habituellement, il n'y a pas de nouvelle génération de page pour des choses comme ça. Vous devez créer un modèle et charger des informations dynamiques à partir d'autres sources (un tel fichier XML ou une base de données) afin qu'il semble une page complètement nouvelle.

juste:

  1. Voir ce que chaque page d'article a en commun
  2. Définissez un modèle qui contient le code commun
  3. Récupérez des informations dynamiques (Infos d'éléments par exemple) à partir d'une base de données
  4. Utilisez PHP incorporé dans HTML pour charger HTML dynamique

    Un exemple:

    Facebook ne crée pas une nouvelle page par chaque enregistrement de l'utilisateur. Il existe un modèle HTML qui définit la position de la photo de profil, la position et le style des messages, la position et le style de la liste des amis et des trucs communs à n'importe quelle page de profil, puis chargez simplement des informations différentes lorsque vous appelez une telle page pour Mark, Frank, Jeff et ainsi de suite.


0 commentaires

3
votes

Ce n'est généralement pas la façon dont ces sites sont créés. (IE: Vous ne générez pas les pages physiques elles-mêmes au point de la soumission de formulaire.) Au lieu de cela, vous stockiez généralement les données de formulaire dans une base de données, puis récupérez / l'afficher en fonction de l'URL - soit en décodant l'URL elle-même. via un "contrôleur" ou en utilisant une variable de chaîne de requête telle que ? producherid = x . Ces données seraient ensuite utilisées pour peupler un modèle.

Pour être honnête, je vous recommande vivement de saisir un livre PHP récent (en ce qui concerne l'accès à la base de données, vous devez utiliser PDO ou MySQLI) ou en suivant certains tutoriels en ligne - tandis que cela pourrait sembler comme ça gagné Il s'agit d'une forme de progrès significative, sa probabilité de payer des dividendes substantiels à long terme.


0 commentaires

7
votes

Vous n'êtes pas obligé de "créer" nouvelle page HTML pour chaque élément.

Vous pouvez enregistrer ces informations à la base de données (MySQL par exemple).

Ensuite, vous pouvez créer un autre fichier PHP, disons 'item.php' et accédez à différentes entrées de la base de données MySQL, comme:

item.php? id = 1


3 commentaires

D'accord, chaque élément de ma base de données est donc généré un identifiant et j'ai créé une page item.php. Comment puis-je associer cet identifiant, avec la page? Les éléments sont répertoriés sur 1 page, puis je souhaite pouvoir cliquer sur un, et charger la nouvelle page, avec l'élément avec l'ID associé. Y a-t-il un tutoriel en ligne, je pouvais jeter un coup d'œil à votre connaissance? Acclamations


Il y a de nombreux tutoriels disponibles en ligne, vous pouvez essayer Googling "php mysql pour les débutants", mais comme le suggère de Middaparka, je vous recommande sérieusement d'investir dans un livre. De cette façon, vous pourrez apprendre beaucoup plus vite que en posant des questions ici :)


Beaucoup de sites utilisent cette technique. Ensuite, vous pouvez afficher selon ID Var. Les pages sont donc généralement similaires (ex. Même mise en page), mais le contenu est différent.



2
votes

La meilleure façon de le faire est de stocker les données dans une base de données et de la récupérer chaque fois que l'utilisateur clique sur un élément spécifique. Une chose, si une partie de votre plan consiste à rendre votre site accessible par le moteur de recherche Google, vous devez générer les pages Web individuelles ... car, Google est seulement un robot Web ... il ne peut pas entrer dans MySQL ou d'autres bases de données .


0 commentaires