Advertisement
BlackYoup

CCM explications correct

Aug 17th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.79 KB | None | 0 0
  1. <!-- Tout ce bloc est donc le formulaire d'envoi -->
  2. <body>
  3.     <h4>Laisser un commentaire : </h4>
  4.    
  5.     <form method="post" action="#">
  6.     Login : <input type="text" name="pseudo" class="whitesmoke"/><br />
  7.     commentaire : <br />
  8.     <textarea class="whitesmoke" name="message" rows="10" cols="30"></textarea><br />
  9.     <input type="submit" value="Valider" />
  10.     </form>
  11.  
  12. <!-- -->
  13.  
  14.  
  15.     <?php
  16.  
  17. if(isset($_POST['message']))
  18. {
  19.     $loggin =  $_POST['pseudo']; // htmlspecialchars ne sert à rien ici. Il ne faut l'utiliser que lorsqu'il y a une sortie de texte, pas une entrée. De plus, le "a écrit" est une donnée qui reviens donc elle aura sa place dans la boucle en bas
  20.     $mess = $_POST['message']); // pareil
  21.  
  22.     // La 1e condition ne servait à rien car au final, la 2e est check la même chose
  23.     if(empty($_POST['pseudo']) OR empty($_POST['message'])){
  24.             echo '<p class="vide">Un des champs est vide</p>';
  25.         }
  26.         // si tout est ok
  27.         else{
  28.             // on définit les logins / paramètres de la base de donnée
  29.             $hote='localhost';
  30.             $BD='ma_base';
  31.             $user='ich_me';
  32.             $pass='password';
  33.  
  34.             try // on essaye de se connecter
  35.             {
  36.             $connexion = new PDO('mysql:host='.$hote.';dbname='.$BD, $user, $pass);
  37.             }
  38.  
  39.             catch(Exception $e) // si on y arrive pas, le $e contient les erreurs
  40.             {
  41.             echo 'Erreur : '.$e->getMessage().'<br />N° : '.$e->getCode(); // un seul echo suffit
  42.                 }
  43.            
  44.  
  45.              $insertion_table = $connexion->prepare('INSERT INTO commentaires(pseudo, message) VALUES(:pseudo, :message)')
  46.              or exit(print_r($insertion_table->errorInfo())); // on prépare la requete SQL afin d'envoyer le message / pseudo. Si la requete échoue, on affiche l'erreur
  47.  
  48.              $insertion_table->execute(array('pseudo'=>$loggin, 'message'=>$mess)); // on éxécute la requete
  49.  
  50.  
  51.              
  52.              $result= $connexion->query('SELECT * FROM commentaires'); // on séléctionne tous les champs de la table commentaires
  53.             // $donnees=$result->fetch();
  54.              // la boucle parcours tous les résultats renvoyés par la précédente requete de sélection
  55.              while ($donnees = $result->fetch()){
  56.                 echo '<div class="pseudo">'.$donnees['pseudo'].' a écrit : </div>'.'<div id="bloc_message">'.$donnees['message'].'</div>'; // ici donc, on rajoute htmlentities (un dérivé de htmlspecialchars()) car cette fois ci, on sort le texte. De plus, on peut voir que " a écrit : " reviens car il sera rajouté à chaque passage de la boucle
  57.             }
  58.             $req->closeCursor(); // on ferme la connexion à la base de donnée                
  59.     }
  60. }
  61.     ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement