IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Chat qui marche mais crée des erreurs


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [AJAX] Chat qui marche mais crée des erreurs
    Bonsoir à vous tous amis développeurs ^^

    Alors, voila le problème:
    J'ai décidé de créer un petit système de chat pour un site quelconque, c'est la première fois que j'utilise vraiment de l'Ajax et j'ai donc bien trimé pour déja en arriver là : voir l'exemple

    Comme vous pouvez le constater il marche, mais si vous consultez la console d'erreur, vous verrez que toutes les 5 secondes (fréquence de rafraichissement du chat), une erreur est créée.

    si la table des messages est vide :
    Erreur : aucun élément trouvé
    Fichier Source : http://..........chat/getMsg.php
    si elle contient des messages :
    Erreur : données incompréhensibles après l'élément de document
    Fichier Source : http://..........chat/getMsg.php
    Code Source :
    <div class="post1">…..
    Mais je ne la comprends pas, d'autant plus que tout se passe exactement comme je le souhaite...

    Voici ma méthode :
    Quand le visiteur valide son message, je lance la procédure sendMessage() qui fait appel à un script php incluant le message dans la base de données.(jusque là tout va bien)

    Au chargement de la page je lance la procédure qui récupère les messages dans la base de données toutes les 5 sec grâce à un autre script php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function getChatData() {
      getXHR.onreadystatechange = getStatusChecker;
      getXHR.open('GET','chat/getMsg.php',true);
      getXHR.send(null);
      setTimeout(getChatData, 5000);
    }
    voici getMsg.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    header("Expires: Sat, 05 Nov 2005 00:00:00 GMT");
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    header("Content-Type: text/xml; charset=UTF-8");
     
    require_once("conf.php");
     
    $sql->query("SELECT * FROM chat");
     
    include_once("response.php");
    ?>
    il fait appel à response.php qui met en forme et renvoie le résultat de la requete sql. response.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $reponse='';
    $bool=0;
    while ($row=$sql->fetch_row())
    {
    	$msg = $row['msg'];
    	$name = $row['name'];
    	$date = $row['date'];
    	$msg = htmlspecialchars($msg);
    	$name = htmlspecialchars($name);	
    	$date= date('\[d\/m\]H\:i',$date);
    	if($bool)$bool=0;
    	else $bool=1;
     
    	$reponse .='<div class="post'.$bool.'"><span class="date">'.$date.'</span>&nbsp;:&nbsp;<span class="name">'.$name.'</span><br /><span class="msg">'.$msg.'</span></div>';
    }
    echo $reponse;
    ?>
    Quand les données sont arrivées je les inscris simplement dans ma div citée plus haut grace à innerHTML du div.

    Voila n'hésitez pas à me demander des précisions sur le code,
    en espérant que quelqu'un comprenne ce qui m'arrive, merci d'avance ^^

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je fais un petit Up... en fait j'ai tout simplement oublié de modifier le parametre "Content-type" de mon header dans getMsg.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    header("Expires: Sat, 05 Nov 2005 00:00:00 GMT");
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    header("Content-Type: text/html; charset=UTF-8");
    // Configuration file is required.
    require_once("conf.php");
    $sql->query("SELECT * FROM chat");
    include_once("response.php");
    ?>
    probleme stupide dû au recopiage du code que j'avais utilisé pour formater en XML à la base... enfin... probleme résolu voila ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/05/2015, 22h14
  2. Réponses: 3
    Dernier message: 06/05/2009, 09h20
  3. Script qui marche mais pas elegant[newbie]
    Par billybob2006 dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2005, 12h25
  4. [PL/SQL] requete qui marche mais pas dans un cursor
    Par victor.ward dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/09/2005, 22h21
  5. [Servlet - MySQL] Ca marche mais message d'erreur quand même
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/11/2004, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo