Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur dans un cours et correction (PHP et MySQL)

Sujet résolu
    23 juillet 2015 à 1:32:35

    C'est une demi-erreur:

    Dans un tp vous donnez une correction qui repose sur des fonctions que l'on n'a pas vues dans le cours.

    Plus précisément, je suis le cours vidéo de PHP MySQL et au niveau au TP de la partie 3.5 vous donnez une correction dont la moitié des éléments n'ont pas été vue dans les cours vidéo. Je suppose que c'était dans le cours écrit mais bon.

    Heureusement j'avais réussi le TP et je vous propose ma correction qui comporte uniquement des éléments vus en cours:

    Voilà pour minichat.php:

    <!DOCTYPE html>
    <html>
        <head>
            <title>Mini Tchat</title>
            <meta charset="utf-8" />
            <style>body{width:900px;padding-top:20px;margin:auto;text-align:center;}</style>
        </head>
        <body>
            <h3>Mini Tchat by Bensi</h3>
            <form method="post" action="minichat_post.php">
                <p><label for="pseudo">Pseudo:</label><input type="text" name="pseudo" id="pseudo" size="12"/></p>
    			<p><label for="message">Message:</label><input type="text" name="message" id="message" size="12"/></p>
                <p><input type="submit" value="Envoyer"/></p>
            </form>
    		<div>
    			<?php
    				$bdd = new PDO ('mysql:host=localhost;dbname=test','root','',array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    				$reponse = $bdd->query('SELECT pseudo, message, ID FROM minichat ORDER BY ID DESC LIMIT 10');
    				while($donnee=$reponse->fetch())
    				{
    					echo '<p><strong>' . $donnee['pseudo'] . ':</strong> ' . $donnee['message'] . '</p>';
    				}
    			?>
    		</div>
        </body>
    </html>

    et minichat_post.php :

    <?php
    	if (isset($_POST['pseudo']) AND isset($_POST['message']))
    		{
    			$pseudo=htmlspecialchars($_POST['pseudo']);
    			$message=htmlspecialchars($_POST['message']);
    			$bdd = new PDO ('mysql:host=localhost;dbname=test','root','',array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    			$add_message = $bdd -> prepare('INSERT INTO `minichat`(`pseudo`, `message`) VALUES (?,?)');
    			$add_message->execute(array($pseudo, $message));	
    		}
    	header('Location: minichat.php');
    ?>

    Voilà j'espère que les futurs élèves pourront avoir une correction qu'ils sont en mesure de comprendre et bonne continuation!




    -
    Edité par benjiski6 23 juillet 2015 à 1:34:27

    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2015 à 10:20:16

      Tu parles des fonctions mysql_ ? C'est normal ce sont des TP de l'ancien cours qui pour ne pas être supprimé on été sorti du cours de PHP sans être réécrit.
      • Partager sur Facebook
      • Partager sur Twitter
      I <3 Ge0 | nohar | Shig was here -> .
        23 juillet 2015 à 10:43:15

               $pseudo=htmlspecialchars($_POST['pseudo']);
                $message=htmlspecialchars($_POST['message']);
        

        Non, pas de htmlspecialchars;

        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2015 à 14:46:37

          artragis a écrit:

           $pseudo=htmlspecialchars($_POST['pseudo']); $message=htmlspecialchars($_POST['message']); 

          Non, pas de htmlspecialchars;

          Pourquoi? il est indiqué dans le TP d'utiliser cette fonction.

          Toshy62 a écrit:

          Tu parles des fonctions mysql_ ? C'est normal ce sont des TP de l'ancien cours qui pour ne pas être supprimé on été sorti du cours de PHP sans être réécrit.


          Oui tu as sans doute raison, ça doit dater de l'ancien cours... En tout cas moi je l'avais dans mon cours d'il y a 2 jours et là je donne une solution simple qui permettrai de le mettre à jour.



          -
          Edité par benjiski6 23 juillet 2015 à 14:48:24

          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2015 à 15:42:46

            >Pourquoi? il est indiqué dans le TP d'utiliser cette fonction.

            Uniquement à l'affichage, pas dans la mise en bdd.

            • Partager sur Facebook
            • Partager sur Twitter
              23 juillet 2015 à 16:45:03

              artragis a écrit:

              Pourquoi? il est indiqué dans le TP d'utiliser cette fonction.

              Uniquement à l'affichage, pas dans la mise en bdd.


              Euhh au final ça fait la même chose vu qu'on transforme tout en specialchars?
              • Partager sur Facebook
              • Partager sur Twitter
                23 juillet 2015 à 16:50:13

                Euhh au final ça fait la même chose vu qu'on transforme tout en specialchars?

                Non, l'ordre c'est important. Explications ici.

                • Partager sur Facebook
                • Partager sur Twitter

                Erreur dans un cours et correction (PHP et MySQL)

                × 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