Probléme avec ajax svp

Résolu/Fermé
marwen109 Messages postés 63 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 26 mars 2012 - Modifié par marwen109 le 30/11/2010 à 00:23
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 6 déc. 2010 à 15:17
Bonjour,






J'ai créé un script de chat avec ajax et php(sans base de donnée , les messages sont stocké dans un fichier text avec php puis affiché)...
bref : mon script est la

*mettre votre message puis en clique sur change content "pas entré du clavier ca marche pas"

http://marwen.lockernerd.co.uk/


et le code :

index.html  
////////////////////////////////////////////  
<html>  
<head>  
<style>  
.button{background-color:black;border:2px orange;color:orange;height:25px;}  
.input{border:1px black solid;height:25px;}  
</style>  


<script type="text/javascript">  

function declanche(msg)  
{  

if(window.XMLHttpRequest)  
{// code for IE7+, Firefox, Chrome, Opera, Safari  
req=new XMLHttpRequest();  
}  
else  
{// code for IE6, IE5  
req=new ActiveXObject("Microsoft.XMLHTTP");  
}  


req.onreadystatechange=function()  
{  

   
  if (req.readyState == 4) {  
   if (req.status == 200) {   
   document.getElementById("myDiv1").innerHTML="";  
     
   document.getElementById("myDiv").innerHTML=document.getElementById("myDiv").innerHTML+req.responseText;}  
   else { alert("erreur par marwen");}  
                         }  
          else  
        document.getElementById("myDiv1").innerHTML="<font color='red'size='5'>en attente....</font>";  


}  

req.open("GET","fiche.php?msg="+msg,true);  
req.send();  
}  
</script>  
</head>  
<body>  
<form name="f">  
<input type="text"name="msg">  
<button type="button" onclick="declanche(msg.value)"class="button">Change Content</button><br>  
<div id="myDiv"><h2></h2></div>  
<div id="myDiv1"><h2></h2></div>  
</form>  
</body>  
</html>   


/////////////////////////////////////  
fiche.php  


<?  
//ouverture du fichier avec ajout a la fin  
$x=fopen("chateur.txt","a+");  

//récupération du message passé a travert ajax   
$msg=$_GET['msg'];  

//faire un retour a la ligne pour pouvoir lire chaque ligne   
$msg="\n".$msg;  

fwrite($x,$msg);  



$ligne=file("chateur.txt");  

//affichage le dernière ligne(message reçu)  
echo $ligne[count($ligne)-1]."</br>";  

//et fermuture du fichier  
fclose($x);  
?>



et enfin un fichier chateur.txt initialement vide


mon probléme est que mon script poste des messages seulement localement sur mon pc,
je veux savoir pourquoi les message que j'ai posté ne sont pas transmis vers les autres internautes qui sont connecté a mon site web , et comment corrigé ca?

MERCI D'AVANCE :)

3 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
30 nov. 2010 à 09:25
Bonjour,

oulah y'a beaucoup de choses qui vont de travers. Bon. On va essayer de faire marcher ce que tu demandes d'abord, et après on verra pour les détails :)

Alors on a entre les mains :
- une page HTML qui envoie des messages en Ajax
- un script PHP qui enregistre et renvoie le message.

Le mot important là-dedans c'est « renvoie » : le serveur répond à une requête, et seulement celle-là (c'est le principe de base du Web). En l'occurence, il répond à la requête Ajax qui vient d'envoyer le message.

Il te manque la moitié des choses pour avoir une application de chat complète : tu n'as que la partie émission, il faut faire la partie réception.

La solution la plus facile à mettre en oeuvre, qu'on retrouve assez souvent sur les divers tutoriels, c'est d'avoir un second requêteur Ajax qui interroge le serveur régulièrement (toutes les 2 ou 3 secondes). Je te conseille de faire également un second script PHP pour bien différencier les choses.

Je ne vais pas te faire un tutoriel, il y en a des tas sur le Net. J'aimerais déjà savoir si tu peux t'en sortir avec les infos que je viens de te donner. Sinon, reviens me poser tes questions et j'y répondrai volontiers ;)
0
marwen109 Messages postés 63 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 26 mars 2012 2
Modifié par marwen109 le 30/11/2010 à 22:42
Tout d'abord, Merci beaucoup pour votre réponse :). Je savais qu'il manquait quelque chose comme ceci("interroger le serveur réguliérement....").

Renouvelle mes remerciements à vous. je vais trouver une solution à ce problème moi seul
Ne t'inquiète pas pour moi :=)
0