Script qui ne fonctionne pas sous IE

Répondre
Kalidor
le 24/08/2010 à 20:22
Kalidor
Bonjour

j ai developpé un chat avec XAJAX, il fonctionne parfaitement sous FF mais pas sous IE j ai tout essayé mais rien n y fait

voici le code

<?php

function afficher()
{
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
$chat = '';//Initialisation de la variable $chat
$p_chat= './chat/chat'.$_GET['id'].'.txt';
$fichier_texte = fopen($p_chat, 'r');//On ouvre notre fichier texte en lecture seule
$chat = fread($fichier_texte, filesize($p_chat));//On lit notre fichier et on le stocke dans la variable $chat
fclose($fichier_texte);//On ferme notre fichier texte
$reponse->assign('block', 'innerHTML', $chat);//Enfin, on change le contenu du div block par le contenu de $chat
return $reponse;
}


function envoyer($posteur, $message)
{
$p_chat= './chat/chat'.$_GET['id'].'.txt';
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
$fichier_texte = fopen($p_chat, 'a');//On ouvre notre fichier texte en ecriture seule
$posteur= decode($posteur);
$message= decode($message);
fwrite($fichier_texte, addslashes('<strong>' . htmlentities($posteur) . ' : </strong>' . htmlentities($message) . '<br />'));//On stocke dans notre fichier
fclose($fichier_texte);//On ferme notre fichier texte
$reponse->clear('message', 'value');//On vide le champ contenant le message du posteur
$reponse->call('xajax_afficher');//On appelle la fonction afficher pour afficher les messages et aussi pour que le posteur voit son message à l'écran
return $reponse;
}


require_once('./xajax_core/xajax.inc.php');
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->register(XAJAX_FUNCTION, 'afficher');//on enregistre nos fonctions
$xajax->register(XAJAX_FUNCTION, 'envoyer');
$xajax->processRequest();//Fonction qui va se charger de générer le Javascript, à partir des données que l'on a fournies à xAjax APRES AVOIR DECLARE NOS FONCTIONS
session_start();

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Chat prive</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<html>
<head>
<title>Chat prive</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php $xajax->printJavascript(); /* Affiche le Javascript */?>
<script type="text/javascript">
function refresh()//script javascript qui va appeler le fonction afficher toutes les 5 secondes
{
xajax_afficher();
setTimeout(refresh, 5000);
}
</script>

<LINK rel="stylesheet" href="style.css">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" class="back0">


<form action="private_chat.php?id=<?php echo $_GET['id']; ?>">
<fieldset>
<legend>Entrer ici votre message :</legend>
<div>
<label><input id="posteur" type="hidden" value="<?php echo $_SESSION['prenom']; ?>"/></label><br /><br />
<label>Message : <input type="text" size="50" id="message" /></label><br /><br />
<input type="submit" value="Envoyer" onclick="xajax_envoyer(document.getElementById('posteur').value, document.getElementById('message').value); return false;" />
</div>
</fieldset>
</form>
<script type="text/javascript">
refresh();//On appelle la fonction refresh() pour lancer le script
</script>






?>



Voila, le soucis c est qu au bout de quelque message envoyé la page perd le $_GET['id'] je ne sais pas pourquoi

si vous pouvez m aider

merci d avance
Kalidor
le 24/08/2010 à 20:46
Kalidor
Désolé, je viens de voir qu on devais utiliser le wall pour poster les gros codes et apparemment on ne peux pas éditer nos post?
bref dsl je note pour la prochaine fois :/ je le ferai plus m sieur lol
LA GLOBULE
le 25/08/2010 à 09:48
LA GLOBULE
Quel est le problème sous IE ?

PS : faire un chat comme tu le fais n'est pas vraiment recommandé pour les serveurs. Utilise plutôt IRC ou bien fait du long polling.
PPS : à défaut de les vérifier, utilise htmlentities pour afficher tes données $_GET et $_SESSION
Kalidor
le 25/08/2010 à 17:37
Kalidor
bonjour


Sous IE a un moment on perd la variable $_GET['id'] du coup on sort du chat privé.

C'est un hébergement, pas un serveur donc IRC n'est pas ouvert
Kalidor
le 25/08/2010 à 18:12
Kalidor
Juste une question, j ai la possibilité d avoir un serveur irc, mais je ne connais pas grand chose en IRC, quelqu un peux m indiqué un tuto qui explique comment utiliser IRC sur une page web?

merci d avance
LA GLOBULE
le 26/08/2010 à 09:46
LA GLOBULE
Tu peux installer sur ton site une applet java te permettant de te connecter à un serveur IRC.
Celle qui est utilisée sur lephpfacile est pjirc (tu peux la tester via le lien "chat / irc" dans la colonne de gauche).

D'autres outils doivent exister, dont certains surement en flash.
Kalidor
le 26/08/2010 à 17:21
Kalidor
merci, beaucoup, j vais voir ca, par contre, mon script, pourquoi il perd le $_GET a titre indicatif?
moogli
le 26/08/2010 à 19:22
moogli
normal s'il y a un rafraichissement de la page et qu'il n'y a pas l'info dans l'url !

@+
Il en faut peu pour être heureux !!!!!
Kalidor
le 27/08/2010 à 19:29
Kalidor
bah quand on fais un refresh() on raffraichi pas l url tel quelle (avec les info $_GET dedans?
LA GLOBULE
le 27/08/2010 à 22:42
LA GLOBULE
Ben est ce que tu vois toujours ton paramètre dans l'URL de ton navigateur ?
Répondre
LoadingChargement en cours