Page 1 sur 1

Mini chat

Posté : 19 août 2006, 17:53
par Nouveau
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

Re: Mini chat

Posté : 20 août 2006, 09:10
par Cyrano
...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

Posté : 20 août 2006, 11:38
par Invité
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

Posté : 20 août 2006, 11:45
par albat
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']))
   {

Posté : 20 août 2006, 12:59
par onime
C'est vrai que ca fait plus pro mais ca rien changé.

Merçi quand

Posté : 20 août 2006, 13:19
par Truc
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

Posté : 21 août 2006, 00:34
par Invité
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