Bonjour à tous, je viens à vous car après quelques tests, mon chat marche bien, la requete est bien envoyée, recupère bien les données et les affiche bien ... seulement, quand j'envois plusieurs messages, sa bloque, que se passe t' il ? problème de cache ?
Les codes javascript :
chat_accueil() récupère les données et les affiche .
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 function chat_accueil() { var xhr = getxhr(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("chat").innerHTML=xhr.responseText; var bas=document.getElementById('chat'); bas.scrollTop=bas.scrollHeight; } var times=getTime()+100; header("Expires: "+times); }; setTimeout("chat_accueil()",500); var requete=""; xhr.open("POST", "www/composants/chat/chat_accueil.php?+getTime()", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(requete); } // Enregistrement données inscription membres function envoi_chat_accueil() { var xhr = getxhr(); xhr.onreadystatechange = function() { if (xhr.readyState != 4) { document.getElementById("mess").innerHTML="Message <input type='text' name='message' id='message' value='Envoi du message ...' size='100' style='background-color:#CCCCCC;' readonly />"; document.getElementById("envoi").innerHTML="<input type='submit' name='env' id='env' value='Envoyer' />"; document.getElementById("env").disabled=true; } if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("mess").innerHTML="Message <input type='text' name='message' id='message' size='100' />"; setTimeout(function() {document.getElementById('message').focus();}, 10); document.getElementById("envoi").innerHTML="<input type='submit' value='Envoyer' id='env' onClick='envoi_chat_accueil();chat_accueil();' />"; document.getElementById("env").disabled=false; document.getElementById("remarque").innerHTML=xhr.responseText; } }; if (document.getElementById('pseudo')!=null) { var pseudo="pseudo="+document.getElementById('pseudo').value; } else { var pseudo="pseudo="; } if (document.getElementById('message')!=null) { var message="&message="+document.getElementById('message').value; } else { var message="&message="; } var requete=pseudo+message; xhr.open("POST", "www/composants/chat/envoi_chat_accueil.php?+getTime()", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(requete); }
envoi_chat_accueil() envoi les données au serveur et les enregistre .
Le php chat_accueil.php:
envoi_chat_accueil.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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?php mysql_connect('tagadac','tougoudou','gidididi'); mysql_select_db('tagadac'); $debut="SELECT * FROM chat_accueil"; $messages=mysql_query($debut); $num_messages=mysql_num_rows($messages); if ($num_messages!=0) { $mess=mysql_query($debut." ORDER BY id ASC LIMIT 0,40"); $dernier_id=mysql_query($debut." ORDER BY id DESC LIMIT 1"); $dernier=mysql_fetch_assoc($dernier_id); $dern=$dernier['id']-39; mysql_query("DELETE FROM chat_accueil WHERE id<$dern"); while ($m=mysql_fetch_assoc($mess)) { $membre=htmlspecialchars($m['pseudo']); $date=$m['date']; $message=htmlspecialchars($m['message']); $array1=array(':lol:',':s',':D',':(',':boring:',':|',':oh:',':)',':E',':triste:',';)',':langue:',':xd:'); $array2=array('<img src="www/template/images/smileys/lol.png" />', '<img src="www/template/images/smileys/confused.png" />', '<img src="www/template/images/smileys/biggrin.png" />', '<img src="www/template/images/smileys/frown.png" />', '<img src="www/template/images/smileys/boring.png" />', '<img src="www/template/images/smileys/neutral.png" />', '<img src="www/template/images/smileys/oh.png" />', '<img src="www/template/images/smileys/smile.png" />', '<img src="www/template/images/smileys/teeth.png" />', '<img src="www/template/images/smileys/triste.png" />', '<img src="www/template/images/smileys/wink.png" />', '<img src="www/template/images/smileys/winktongue.png" />', '<img src="www/template/images/smileys/xd.png" />'); $message=str_replace($array1,$array2,$message); echo '<span id="infos"><strong>'.$membre.' à dit </strong> <span class="date">'.$date.'</span> :</span> '.$message.'<br />'; } } else { echo '<strong>Il n\' y à pas de message posté pour le moment ...</strong>'; } mysql_close(); ?>
Voila, merci de votre aide, je penses que mon problème se situe plus dans le fichier envoi_chat_accueil ou la fonction javascript du même nom .
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
19
20
21
22
23
24
25
26 <?php mysql_connect('tagadac','tougoudou','gidididi'); mysql_select_db('tagadac'); if (isset($_POST['message']) && isset($_POST['pseudo']) && ($_POST['pseudo'] && $_POST['message'])!="") { $message=$_POST['message']; $pseudo=$_POST['pseudo']; $heure=date("H:i"); $jour=date("d/m/Y"); $date=$jour.' '.$heure; $dernier_id=mysql_query("SELECT * FROM chat_accueil ORDER BY id DESC LIMIT 1"); $dernier=mysql_fetch_assoc($dernier_id); $dern=$dernier['id']-39; mysql_query("DELETE FROM chat_accueil WHERE id<$dern"); mysql_query("INSERT INTO chat_accueil VALUES('','$pseudo','$date','$message')"); } else { echo 'Veuillez remplir les champs pseudo et message svp ... !'; } mysql_close(); ?>
Merci beaucoup par avance .
Partager