Alors voilà, je regarde le tuto plusieurs fois encore encore encore et encore.. Je vous parle de celui-ci : http://www.grafikart.fr/tutoriels/php/tchat-jquery-ajax-php-82
Mais rien n'y fait je n'arrive pas à régler mon problème..

Je vous passe le lien de mon site du moins la partie concernée : Ma partie t'chat
Le code chat.js au cas où "Chat.js"..

En fait je m'explique, voilà tout fonctionne très bien quand je regarde FireBug, je vois la fonction getMessages se lancée toutes les 5 secondes, je vois les messages qui ont été écrits, plusieurs fois de suite même..

Et si je ne m'abuse j'ai un problème avec "lastid" aussi ?

Merci de bien vouloir m'aider, car ça fait actuellement deux nuits blanches que je passe dessus..

index.php

<?php require_once("func.php"); ?>
<script type="text/javascript">
<?php
$requete = mysql_query("SELECT (id) FROM tchat ORDER BY id DESC LIMIT 1")or die(mysql_error());
$reponse = mysql_fetch_assoc($requete);
?>
 var lastid = <?php echo $reponse'id']; ?>
</script>
<div id="tchat">
    <?php
    $requete = mysql_query("SELECT 
        tchat.id,
        tchat.id_membre,
        tchat.message,
        tchat.date,
        joueurs.id,
        joueurs.pseudo,
        joueurs.grade,
        joueurs.avatar
        FROM tchat
        LEFT JOIN joueurs
        ON tchat.id_membre = joueurs.id
        ORDER BY tchat.date DESC LIMIT 15
        ")or die(mysql_error());
        $d = array();
    while ($data = mysql_fetch_assoc($requete)) 
    {
        $d] = $data;
    }
    for ($i=count($d)-1; $i >=0 ; $i--) { 

        echo('
            <p>'.htmlspecialchars($d$i]'pseudo']).' <br />
            <img src="../avatar/'.$d$i]'avatar'].'.png"/>: <br />
            '.nl2br(htmlspecialchars($d$i]'message'])).'
            </p><br />
            ');
    }
    ?>
</div>
<div id="form" style=" width:100%; height:100%;">
    <form method="post" action="#">
        <textarea name="message" placeholder="DISCUTEZ AVEC NOUS !" style=" width:100%; height:150px;"></textarea><br />
        <input type="submit" value="envoyer">
    </form>
</div>

Et là tchatAjax.php

<?php require_once("func.php");
$d = array();
if(empty($_SESSION) || !isset($_POST'action']))
{
    $d'erreur'] = "Vous devez être connecté pour utiliser le t'chat...";
}
else
{
extract($_POST);
    /**
    *
    *
    * Fonction : addMessage 
    * Permet l'ajout d'un message.
    *
    *
    **/
    if($_POST'action'] == "addMessage"){
        $message = mysql_real_escape_string($message);
        $pseudo = htmlspecialchars($_SESSION'pseudo']);
        if(!empty($message))
        {
            mysql_query("INSERT INTO tchat VALUES('','".$_SESSION'id']."','".$message."','".time()."')")or exit(mysql_error());
            $d'erreur'] = "ok";
        }
        else
        {
            $d'erreur'] = "Veuillez remplir un message..";
        }
    }

    /**
    *
    *
    * Fonction : addMessage 
    * Permet l'affichage des messages.
    *
    *
    **/
    if($_POST'action'] == "getMessages"){
        $d'erreur'] = "ok";
        $lastid = floor($lastid);
            $requete = mysql_query("SELECT 
            tchat.id,
            tchat.id_membre,
            tchat.message,
            tchat.date,
            joueurs.id,
            joueurs.pseudo,
            joueurs.grade,
            joueurs.avatar
            FROM tchat
            LEFT JOIN joueurs
            ON tchat.id_membre = joueurs.id
            WHERE tchat.id > '".$lastid."'
            ORDER BY tchat.date ASC LIMIT 15
            ")or die(mysql_error());
            $d'result'] = "";
            $d'lastid'] = $lastid;
        while ($data = mysql_fetch_assoc($requete)) {
            $d'result'] .= '<p>'.htmlspecialchars($data'pseudo']).' <br /><img src="../avatar/'.$data'avatar'].'.png"/>: <br />'.nl2br(htmlspecialchars($data'message'])).'</p><br />';
            $d'lastid'] = $data'id'];
        }
    }

}
echo json_encode($d);
?>

Cordialement KaKuZa`

3 réponses


Samovar
Auteur
Réponse acceptée

Up..

Samovar
Auteur
Réponse acceptée

ça sert à rien de poster sur le forum apparement ?..

Salut, dans le fond c'est quoi ton problème, tu ne reçois pas les messages...? tu reçois le même message plusieurs fois de suite ?

Cordialement,

The-Devil