le 24/08/2010 à 20:22
Script qui ne fonctionne pas sous IE
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
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
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