par
fabien_14 » 03 févr. 2007, 02:38
bonjour, j'ai trouver un chat et j'aimerai qu'il se charge a l'ouverture de la page en effet on est obliger d'appyyer sur envoyer pour que les message s'apparaise !
c'est un chat en ajax.
Si vous pouvez me donner un coup de main, merci
Code : Tout sélectionner
<?php
$username= "toto";
function post($username){
$heure = date("H:i:s");
$fp = fopen('data',"a+") or die ('Une erreur est survenue');
$new = "*[$heure] $username : vient de se connecter...<br/>";
fputs($fp,$new);
fclose($fp) or die ('Erreur fermeture fichier');
}
post($username);
?>
<script type="text/javascript">
var nom = <? print $username ;?>;
var xhr = null;
function getXhr(){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
function gestion(post,util){
getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState==4 && xhr.status == 200){
eval(xhr.responseText);
}
}
xhr.open("GET","post.php?n="+nom+"&post="+post+"&util="+util,true);
xhr.send(null);
}
function tempo(){
setTimeout(rafraichir,3000);
}
function rafraichir(){
gestion("","0");
}
function post(){
var mess = document.getElementById('post').value;
if(mess!=='' && nom!=="") {
gestion(mess,"1");
document.getElementById('post').value = '';
document.getElementById('post').focus();
}
}
</script>
<link href="../images/style.css" rel="stylesheet" type="text/css">
<div id="shotbox" onKeyPress="if(event.which==13||event.keyCode==13) post()" >
<div id="messages">
</div>
<input name="post" size="80" id="post" align="absbottom" />
</div>
et voici le Post.php
Code : Tout sélectionner
<?php
header('Content-type: text/html; charset=iso-8859-1');
$username="toto";
$util = $_GET['util'];
$nick = $username;
if(isset($_GET['post'])){
$post = htmlentities($_GET['post']);
}else{$post=NULL;}
$heure = date("H:i:s");
(isset($post)&&$util==1) ? post($post,$nick,$heure) : refresh();
function refresh(){
header('Content-type: text/html; charset=iso-8859-1');
$fp = fopen('data',"a+") or die ('Une erreur est survenue');
fseek($fp,0);
while (!feof ($fp)){ // tant que pas en fin de fichier
$lecture = fgets($fp); // stockage dans $lecture
}
$donnee=explode('*',$lecture); // parsing des données
$combien=count($donnee); // nbre d'éléments
$affiche = '';
$i=$combien-25;
while($i!==$combien){
if($i>=0) $affiche .= $donnee[$i];
$i++;
}
fclose($fp) or die ('Une erreur est survenue');
echo 'document.getElementById("messages").innerHTML = "'.$affiche.'";';
echo 'tempo();';
}
function post($post,$nick,$heure){
$fp = fopen('data',"a+") or die ('Une erreur est survenue');
$new = '*['.$heure.'] '.$nick.' : '.$post.'<br/>';
fputs($fp,$new);
fclose($fp) or die ('Erreur fermeture fichier');
refresh();
}
?>
bonjour, j'ai trouver un chat et j'aimerai qu'il se charge a l'ouverture de la page en effet on est obliger d'appyyer sur envoyer pour que les message s'apparaise !
c'est un chat en ajax.
Si vous pouvez me donner un coup de main, merci
[code]
<?php
$username= "toto";
function post($username){
$heure = date("H:i:s");
$fp = fopen('data',"a+") or die ('Une erreur est survenue');
$new = "*[$heure] $username : vient de se connecter...<br/>";
fputs($fp,$new);
fclose($fp) or die ('Erreur fermeture fichier');
}
post($username);
?>
<script type="text/javascript">
var nom = <? print $username ;?>;
var xhr = null;
function getXhr(){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
function gestion(post,util){
getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState==4 && xhr.status == 200){
eval(xhr.responseText);
}
}
xhr.open("GET","post.php?n="+nom+"&post="+post+"&util="+util,true);
xhr.send(null);
}
function tempo(){
setTimeout(rafraichir,3000);
}
function rafraichir(){
gestion("","0");
}
function post(){
var mess = document.getElementById('post').value;
if(mess!=='' && nom!=="") {
gestion(mess,"1");
document.getElementById('post').value = '';
document.getElementById('post').focus();
}
}
</script>
<link href="../images/style.css" rel="stylesheet" type="text/css">
<div id="shotbox" onKeyPress="if(event.which==13||event.keyCode==13) post()" >
<div id="messages">
</div>
<input name="post" size="80" id="post" align="absbottom" />
</div>[/code]
et voici le Post.php
[code]<?php
header('Content-type: text/html; charset=iso-8859-1');
$username="toto";
$util = $_GET['util'];
$nick = $username;
if(isset($_GET['post'])){
$post = htmlentities($_GET['post']);
}else{$post=NULL;}
$heure = date("H:i:s");
(isset($post)&&$util==1) ? post($post,$nick,$heure) : refresh();
function refresh(){
header('Content-type: text/html; charset=iso-8859-1');
$fp = fopen('data',"a+") or die ('Une erreur est survenue');
fseek($fp,0);
while (!feof ($fp)){ // tant que pas en fin de fichier
$lecture = fgets($fp); // stockage dans $lecture
}
$donnee=explode('*',$lecture); // parsing des données
$combien=count($donnee); // nbre d'éléments
$affiche = '';
$i=$combien-25;
while($i!==$combien){
if($i>=0) $affiche .= $donnee[$i];
$i++;
}
fclose($fp) or die ('Une erreur est survenue');
echo 'document.getElementById("messages").innerHTML = "'.$affiche.'";';
echo 'tempo();';
}
function post($post,$nick,$heure){
$fp = fopen('data',"a+") or die ('Une erreur est survenue');
$new = '*['.$heure.'] '.$nick.' : '.$post.'<br/>';
fputs($fp,$new);
fclose($fp) or die ('Erreur fermeture fichier');
refresh();
}
?>[/code]