Mini chat

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mini chat

par Invité » 21 août 2006, 00:34

Bon sur le forum du site du zéro il m'ont répondu que c'était parceque le pseudo était dans la condition le code a mettre est celui ci et sa marche :
$requete1 = mysql_query("SELECT message FROM minichat WHERE pseudo='" . $pseudo . "' ORDER BY ID DESC LIMIT 1");

if( mysql_result($requete1, 0) != $_POST['message'] )
{
    mysql_query("INSERT INTO chat VALUES('', '$pseudo', '$message')");
}
Merci a vous quand meme

par Truc » 20 août 2006, 13:19

on m'a dis d'enlever les apostrophe a cette ligne :
if($ancienmess['$message'] != $_POST['$message'] AND $ancienmess['$pseudo']!=$_POST['$pseudo']) { 
Il y en a toujours...

petit test :
$test = " test";
echo "ceci est un $test"."<br>";
echo "ceci est un ".$test."<br>";
echo 'ceci est un $test'."<br>";
regarde bien ce que donne cet affichage et analyse suivant l'utilisation des apostrophes ou guillemets.
Un peu de doc...

ou alors ce ne sont pas des variables mais des indices associatifs :-k

par onime » 20 août 2006, 12:59

C'est vrai que ca fait plus pro mais ca rien changé.

Merçi quand

par albat » 20 août 2006, 11:45

Je ne suis pas certain que ton problème vient de cette ligne,
mais à tout hasard, tu peux déjà en corriger la syntaxe :
// Utiliser && plutôt que AND
if (($ancienmess['$message']!=$_POST['$message']) && ($ancienmess['$pseudo']!=$_POST['$pseudo']))
   {

par Invité » 20 août 2006, 11:38

C'est ce que j'ai fais mais on m'a dis d'enlever les apostrophe a cette ligne :
if($ancienmess['$message'] != $_POST['$message'] AND $ancienmess['$pseudo']!=$_POST['$pseudo']) { 
mais ca n'a rien changé

Et l'auteur n'est pas venu sur le forum

Re: Mini chat

par Cyrano » 20 août 2006, 09:10

...j'ai fais le tp du mini chat du site du zéro
Et si tu posais cette question sur le forum du site du zéro ?

Si l'auteur est un habitué, il verra ton message et pourra t'aider beaucoup mieux, connaissant son propre code, tu ne crois pas ? :-k

Mini chat

par Nouveau » 19 août 2006, 17:53

Voici mon problème j'ai fais le tp du mini chat du site du zéro enfin j'ai copié collé le script du mini-chat de Mateo21 (ne m'en veuillez pas trop -_-) et en essayant une amelioration j'en suis arrivé a ce script).
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <style type="text/css">

 table
            {
            margin:auto;
            width:500px;
            height:100px;

            border-collapse:collapse;
            text-align:left;
            }
            textarea
            {
            background: black;
            color: red;
            }

           .maclass
           {
            background-color: black;
            color: red;
}
            th
            {
            border: 1px solid red;
            color:yellow;
            text-align:center;
            }
    td
    {
    border: 1px solid black;

    color:red;
    }
    body{
    background-image:url("espace.jpg");
    background-attachment: fixed;
    background-position: center;
    }
    </style>
    <body>

      <a href="http://www.didiersuper.com"><div align="center"><img src="http://www.didiersuper.com/images/banniere_didiersuper_anime.gif"></div></a>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "*****", "*****");
        mysql_select_db("*****");

        // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
       

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

       $requete1 = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,1 ");//les variables ancienmess valent les messages trouvés dans la base


$ancienmess = mysql_fetch_array($requete1);

   if($ancienmess['$message'] != $_POST['$message'] AND $ancienmess['$pseudo']!=$_POST['$pseudo']) {
   mysql_query("INSERT INTO chat VALUES('', '$pseudo', '$message')");

           }
          else{
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
    {

        // On se déconnecte de MySQL
        mysql_close();

}
  }





// Que l'on ait enregistré des données ou pas...






// On affiche le formulaire puis les 10 derniers messages

// Tout d'abord le formulaire :
?>



<form action="mini_chat.php" method="post">


<div align="center"> Pseudo </div> <div align="center">  <input type="text" name="pseudo" class="maclass" /> </div>
<div align="center"> Message </div> <div align="center">  <textarea cols="15" rows="5" name="message" /></textarea> </div>

<div align="center"><input name="boutonenvoyerimage" type="image" onClick="submit" src="ENVOYER.jpg" ></div>


</form>



<?php

// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "****", "*****");
mysql_select_db("****");


// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM chat ORDER BY Id DESC LIMIT 0,10");
    mysql_close();







// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse))
 {
?>


<table>
<thead>
<tr>
<th><strong><?php echo $donnees['pseudo']; ?></strong> </th>
</tr>
</thead>
<br>
<tr>                     
<td><?php echo $donnees['message']; ?></td>
</tr>
</table>


<?php

// On se déconnecte de MySQL

}
   }
   }
   }


// Fin de la boucle, le script est terminé !
?>


    </body>
</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. :? :x :D