Partage
  • Partager sur Facebook
  • Partager sur Twitter

Nouvelle page dans un forum coté utilisateur

Sujet résolu
    12 février 2019 à 19:49:16

    Bonsoir à tous,

    Je suis en train de créer un forum

    Coté Admin : je crée la page "topic1.php", avec un article et mes utilisateurs peuvent commenter cet article mais voilà j'ai d'abord crée la page

    Coté utilisateur: Il veut créer un nouvel article, mais du coup ma question ( surement inutile ) est : comment il va faire et comment ça va se passer  coté PHP, car l’intérêt et que s'il poste un nouvel article qui lui aussi aura des commentaires, est de créer une nouvelle page mais l'admin peut pas créer cette page vu qu'il ne sais pas que l'utilisateur va créer cette article et  vu qu'elle sera automatique lorsqu'il voudra créer un nouveau sujet ! A moins de mettre sur une seule page tout les articles créée par les utilisateurs mais on a pas finit de scroller ^^

    Ou solution des plus douteuse : l'admin créée 100 pages vierges avec comme nom Topic2.php, Topic[i].php ... jusqu'a 100 et lorsqu'un utilisateur créée un sujet, cela va remplir une page !

    -
    Edité par Bargefull 12 février 2019 à 20:00:03

    • Partager sur Facebook
    • Partager sur Twitter

    COFFEE TIME ! ☕☕☕☕

      12 février 2019 à 23:22:45

      Hey

      Oulah, c'est plus simple que ca, et moins casse pieds..
      Tu créer une seule page, " topic.php ", et tu y accède par "topic.php?id=12 " par exemple, et là ton code php iras récupéré l'article dont l'ID est 12.

      • Partager sur Facebook
      • Partager sur Twitter
        12 février 2019 à 23:51:02

        D'accord je comprends un peu mieux

        mais si je met dans mon code php l'ID 12 alors seulement l'article 12 s'affichera, comment je fais pour associer tell cliquage de lien d'un article à un ID ?

        Bon j'avoue que je m'y perd un peu dans mes requetes

        EDIT :

        Du coup lorsque l'on clique sur le lien de l'article qui est censé l'afficher dans une autre page, c'est du genre:

        <a href="topic.php?id=12">Article1</a>
        <a href="topic.php?id=13">Article2</a> ...

        Lorsqu'il a publié l'article comment cet ID 12 pourra s'inserer dans le href ?

        car dans l'autre page qui est censé l'afficher, je suppose que je dois passer par la méthode GET du style :

        <?php
        
         if($_GET['id'] == "12/13/..")
         { 
          
         $article = $bdd->query("SELECT * FROM articles WHERE id= '12/13/...'");
         
         $articleUser= $article->fetch();   
         
         }
        ?>

        sauf que l'ID est censé être aléatoire ?




        -
        Edité par Bargefull 13 février 2019 à 0:37:00

        • Partager sur Facebook
        • Partager sur Twitter

        COFFEE TIME ! ☕☕☕☕

          13 février 2019 à 10:30:30

          Je pense qu'il faudrais revoir un peu le tuto :)
          Dans ta page, tu sélectionne tout tes articles publié (SELECT * FROM articles), ou si t'as un champ dans ta bdd pour les publiée ou pas, t'ajoute un WHERE .

          T'affiche ensuite ton lien tout simplement "

          <a href="topic.php?id=<?php echo $mesdonnees['iddelarticle']; ?>"><?php echo $mesdonnees['nomdelarticle']; ?></a>

          (Il s'agit d'exemple hein)

          Et sur la page topic, tu fait ton SELECT, avec WHERE id = $_GET['id'] (Utilise les requête préparer hein ;) )

          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2019 à 11:58:18

            MERCI BEAUCOUP j'airéussi :) ça m'a beaucoup aidé

            Voilà ce que j'ai fais :
             - J'ai la page "ecrire_article.php" où user1 écrit un article et grâce à la méthode GET il pourra voir son article affiché sur la même page

            <?php
            if(isset($_GET['message'])) {
               echo '<font color="red">'.$_GET['message']."</font>";
            }
            ?>

            - La page "CategorieCap.php" où tout les articles sont référencés et grâce au lien on peut afficher l'article :

            <?php
            $afficherArticle = $bdd->query("SELECT * FROM articles");
            while ($user = $afficherArticle->fetch()) { ?>
                                                                      
            <a href="ecrire_article.php?sujet=<?php echo $user['sujet']; ?>&message=<?php echo $user['message']; ?>"><?php echo $user['message']; ?></a><br /><br />
            
            <?php
            }
            ?>
            
            Mais J'ai utilisé la requête QUERY au lieu de PREPARE et ça fonctionne ... o_O



            EDIT : ça me fais des doublons du même message dans la bdd quand j'actualise la page ou que je clique dessus ^^'

            Encore un point sur lequel je vais devoir me pencher  :)

            -
            Edité par Bargefull 13 février 2019 à 14:40:03

            • Partager sur Facebook
            • Partager sur Twitter

            COFFEE TIME ! ☕☕☕☕

              15 février 2019 à 11:03:21

              EDIT 2 : Pour l'histoire des doublons, c'est aussi réglé mais c'est moche :

              $reqMess = $bdd->query("SELECT * FROM articles ");
              $messExist = $reqMess->fetch();
                         
              $reqSujet = $bdd->prepare("SELECT * FROM articles WHERE sujet = ?");
              $reqSujet->execute(array($sujet));
              $sujetExist = $reqSujet->fetch();
              
              $reqO = $bdd->prepare("SELECT * FROM articles WHERE message = ?");
              $reqO->execute(array($result));
              $sujetO = $reqO->fetch();
              
              if($sujetExist == 0 ) 
              {                                    
                if($messExist['message'] != $result AND $sujetO == 0 )
                {    
                $insertPseudo = $bdd ->prepare('INSERT INTO articles(pseudo,message, sujet, dateofpublication) VALUES(?,?,?,?)');
                $insertPseudo->execute(array($pseudo,$result,$sujet,$date));
                }
                else
                {  
                echo $erreurMess = "Message déjà existant"."<br />";
                }
              }                      
              else 
              {
              echo $erreurMess = "sujet déjà existant"."<br />";
              }
                               

               

              -
              Edité par Bargefull 15 février 2019 à 11:03:39

              • Partager sur Facebook
              • Partager sur Twitter

              COFFEE TIME ! ☕☕☕☕

              Nouvelle page dans un forum coté utilisateur

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown