Se connecter / S'enregistrer
Votre question

Mini chat "double post" [php]

Tags :
  • Html
  • Programmation
Dernière réponse : dans Programmation
19 Août 2006 18:36:56

Voici mon problème un mini chat tout marche bien. Ce que je veux faire c'est eviter le double post et en essayant une amelioration j'en suis arrivé a ce script.


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  2. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" lang="fr">
  3. <head>
  4. <title>Mini-chat</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. </head>
  7. <style type="text/css">
  8.  
  9. table
  10. {
  11. margin:auto;
  12. width:500px;
  13. height:100px;
  14.  
  15. border-collapse:collapse;
  16. text-align:left;
  17. }
  18. textarea
  19. {
  20. background: black;
  21. color: red;
  22. }
  23.  
  24. .maclass
  25. {
  26. background-color: black;
  27. color: red;
  28. }
  29. th
  30. {
  31. border: 1px solid red;
  32. color:yellow;
  33. text-align:center;
  34. }
  35. td
  36. {
  37. border: 1px solid black;
  38.  
  39. color:red;
  40. }
  41. body{
  42. background-image:url("espace.jpg");
  43. background-attachment: fixed;
  44. background-position: center;
  45. }
  46. </style>
  47. <body>
  48.  
  49. <a href="<a href="http://www.didiersuper.com" rel="nofollow" target="_blank">http://www.didiersuper.com</a>"><div align="center"><img src="<a href="http://www.didiersuper.com/images/banniere_didiersuper_anime.gif" rel="nofollow" target="_blank">http://www.didiersuper.com/images/banniere_didiersuper_...</a>"></div></a>
  50. <?php
  51. if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
  52. {
  53. if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
  54. {
  55. // D'abord, on se connecte à MySQL
  56. mysql_connect("localhost", "*****", "*****");
  57. mysql_select_db("*****");
  58.  
  59. // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
  60.  
  61.  
  62. $pseudo=htmlentities ($_POST['pseudo']);
  63. $message=htmlentities ($_POST['message']);
  64.  
  65. $requete1 = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,1 ");//les variables ancienmess valent les messages trouvés dans la base
  66.  
  67.  
  68. $ancienmess = mysql_fetch_array($requete1);
  69.  
  70. if($ancienmess['$message'] != $_POST['$message'] AND $ancienmess['$pseudo']!=$_POST['$pseudo']) {
  71. mysql_query("INSERT INTO chat VALUES('', '$pseudo', '$message')");
  72.  
  73. }
  74. else{
  75. if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
  76. {
  77. if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
  78. {
  79.  
  80. // On se déconnecte de MySQL
  81. mysql_close();
  82.  
  83. }
  84. }
  85.  
  86.  
  87.  
  88.  
  89.  
  90. // Que l'on ait enregistré des données ou pas...
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. // On affiche le formulaire puis les 10 derniers messages
  98.  
  99. // Tout d'abord le formulaire :
  100. ?>
  101.  
  102.  
  103.  
  104. <form action="mini_chat.php" method="post">
  105.  
  106.  
  107. <div align="center"> Pseudo </div> <div align="center"> <input type="text" name="pseudo" class="maclass" /> </div>
  108. <div align="center"> Message </div> <div align="center"> <textarea cols="15" rows="5" name="message" /></textarea> </div>
  109.  
  110. <div align="center"><input name="boutonenvoyerimage" type="image" onClick="submit" src="ENVOYER.jpg" ></div>
  111.  
  112.  
  113. </form>
  114.  
  115.  
  116.  
  117. <?php
  118.  
  119. // Maintenant on doit récupérer les 10 dernières entrées de la table
  120. // On se connecte d'abord à MySQL :
  121. mysql_connect("localhost", "****", "*****");
  122. mysql_select_db("****");
  123.  
  124.  
  125. // On utilise la requête suivante pour récupérer les 10 derniers messages :
  126. $reponse = mysql_query("SELECT * FROM chat ORDER BY Id DESC LIMIT 0,10");
  127. mysql_close();
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135. // Puis on fait une boucle pour afficher tous les résultats :
  136. while ($donnees = mysql_fetch_array($reponse))
  137. {
  138. ?>
  139.  
  140.  
  141. <table>
  142. <thead>
  143. <tr>
  144. <th><strong><?php echo $donnees['pseudo']; ?></strong> </th>
  145. </tr>
  146. </thead>
  147. <br>
  148. <tr>
  149. <td><?php echo $donnees['message']; ?></td>
  150. </tr>
  151. </table>
  152.  
  153.  
  154. <?php
  155.  
  156. // On se déconnecte de MySQL
  157.  
  158. }
  159. }
  160. }
  161. }
  162.  
  163.  
  164. // Fin de la boucle, le script est terminé !
  165. ?>
  166.  
  167.  
  168. </body>
  169. </html>


Le double post est maintenant impossible mais je ne peux plus poster du tout.
Je sais que plusieurs ont eu des problèmes pour eviter le double post mais je ne suis pas parvenue à regler mon problème malgès leurs explications.
Si quelqu'un pouvait m'aider à ameliorer mon code.

Autres pages sur : mini chat double post php

19 Août 2006 19:09:53

Edit : dsl erreur

Salut ? :love: 
19 Août 2006 19:12:33

lu
Contenus similaires
19 Août 2006 22:22:23

Qu'est ce que t'avais mis apologie ca pourrait peut-etre me mettre sur une voie
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS