Page 1 sur 1

Rafraichissment div

Posté : 12 sept. 2007, 11:11
par haco28
Bonjour a tous!
je sais peut etre que la question a été posée mais ca fait longtime que je cherche une solution a mon problme et j'ai plus la force de chercher.

voila je veux creer un systeme de chat en php javascipt mysql

l'enregistrement se fait bien mais le rafraichissment de ma div ne se fait pas.

comment faire (avc je crois setInterval()) ?
voici mon code

"test.php"

Code : Tout sélectionner

<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title></title> <script type="text/javascript"> function writediv(texte) { document.getElementById('messagebox').innerHTML = texte; } function verifMessage(message){ if(message.length<0){ alert('taper un messge !'); }else if(texte = file('test_.php?message='+escape(message))){ writediv(texte); } } function file(fichier) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); } </script> </head> <body> <form action=""> <input type="text" name="message"/> <input type="button" value="Go!" onClick="verifMessage(message.value)" /> <div id="messagebox"></div> </form> </body> </html>
et "test_.php"

Code : Tout sélectionner

<? // CONNECION SQL require('mysql_connect.php'); if(isset($_GET['message'])){ $req="insert into HASH_chat_message values('".$_GET['message']."');"; mysql_query($req); } $req="select * from HASH_chat_message;"; $result = mysql_query($req); $ligne = mysql_fetch_array($result,MYSQL_NUM); echo $ligne[0].'<br />'; while($ligne = mysql_fetch_array($result,MYSQL_NUM)){ echo $ligne[0].'<br />'; } mysql_close(); ?>
Merci et ce forum est super bien !

Posté : 12 sept. 2007, 11:16
par haco28
en fait je veux que la div se rafraichisse toute seul pour tous les gens qui voient la page.
et cela toutes les (5sec par exemple)

Posté : 12 sept. 2007, 12:21
par Invité
:priere: aidez-moi ! :cry:

Posté : 12 sept. 2007, 12:25
par Ryle
Modération :
haco28, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

Posté : 12 sept. 2007, 12:57
par Gaap
regardes la function setTimeout() je l'utilise pour les chats tu auras tout sur ce lien :

http://www.toutjavascript.com/reference ... hp?iref=13 :wink:

Posté : 12 sept. 2007, 13:27
par haco28
merci je vais voir ca :)

Posté : 12 sept. 2007, 15:27
par haco28
a présent j'ai changé mon code :

"test.php"

Code : Tout sélectionner

<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title></title> <script> var texte = ''; /*******************envoie des messages*******************/ function envoieMessage(){ if(document.getElementById("message").value.length > 0){ //envoie du message texte = document.getElementById("message").value; }else{ //user na entre aucun message alert("Impossible d'envoyer le message"); } a = new Image; a.src="test_.php?message="+texte; } /*******************Lecture de la base de donnee*******************/ function lireBaseDeDonnee(){ fichier = "test_.php"; nav = navigator.appName.substring(0,3); if(nav=="Mic"){//Microsoft IE objXml = new ActiveXObject("Microsoft.XMLHTTP"); var datafile = fichier; objXml.open("GET",datafile,true); objXml.onreadystatechange = function(){ if(objXml.readyState==4){ texte=(objXml.responseText); } } objXml.send(null); }else{//Firefox objXml = new XMLHttpRequest(); objXml.open("GET",fichier,false); objXml.send(null); return(objXml.responseText); } } /*******************afficher les messages*******************/ function afficherChat(){ lireBaseDeDonnee(); document.getElementById("messagebox").innerHTML=texte; } setInterval("afficherChat()", 1000)//rafraicshissement toutes les 1 sec </script> </head> <body onLoad="afficherChat()"> <form action=""> <input type="text" name="message"/> <input type="button" value="Go!" onClick="lireBaseDeDonnee();envoieMessage();afficherChat()" /> <div id="messagebox"></div> </form> </body> </html>
et test_.php

Code : Tout sélectionner

<? // CONNECTION SQL require('mysql_connect.php'); if(isset($_GET['message'])){ $req="insert into HASH_chat_message values('".$_GET['message']."');"; mysql_query($req); } $req="select * from HASH_chat_message;"; $result = mysql_query($req); $ligne = mysql_fetch_array($result,MYSQL_NUM); echo $ligne[0].'<br />'; while($ligne = mysql_fetch_array($result,MYSQL_NUM)){ echo $ligne[0].'<br />'; } mysql_close(); ?>
voila mon probleme :
- sous internet explorer
-pas d'erreur de javascript
-les messages presens dans la base sont affichés
-lors de l'envoie d'un message , le message s'enregistre mais la page ne s'actualise pas :(
- sous firefox :
- erreur JAVASCRIPT dans la console :

Code : Tout sélectionner

Erreur : document.getElementById("message") has no properties Fichier source : http://haco28.free.fr/test.php Ligne : 37
Quelq'un peux m'aider pour la compatibilité des navigateur et le rafraichissement de la div ?
merci a tous.

Posté : 12 sept. 2007, 19:48
par haco
apres tant de recherche j'ai enfin trouvé la solution a mon travail.
POST RESOLU. :wink:

Posté : 12 sept. 2007, 20:33
par AB
Cela n'a rien à voir avec ton pb initial mais j'ai parcouru ton code et d'après ce que j'ai lu ta façon d'insérer les messages n'est pas très sécurisée (à priori). Pourquoi ne pas utiliser mysql_real_escape_string()

Posté : 13 sept. 2007, 10:48
par haco28
Oui peut etre mais j'ai pas compris l'utilisation de mysql_real_escape_string()
tu pe m'en dire plus ? Merci :D

Posté : 13 sept. 2007, 17:35
par Invité
gogo google.. ou tuto ! :?

Posté : 15 sept. 2007, 20:32
par haco28
je sais kil fo chercher mdr
mais si les gens peuvent prendre le temps d'expliquer jsuis d'accord et c'est pas de refus !
et puis si ils disent "go google","google est ton ami", etc eh ben je le sais aussi et puis ca sert a rien
de le dire :evil: :tir2:
et c'est un forum et pour moi un forum c'est pour DISCUTER :langue: !
voila sur ceux bye ! :merci:

Posté : 16 sept. 2007, 13:13
par Truc
voila sur ceux bye !
sur "ceux" qui ? 8-|

Discutons :
Description
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier] )

mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée.

mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slashe aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.

Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL.
Donc c'est bien :)