[PHP-JS] Simulez un Post pour afficher un chat (fichier texte)
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:
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
<?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:
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
| <?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();
}
?> |