ou une petite idée svp pour m'aidée et peut-être améliorer.
ps: je séparais les différents script une fois le bon fonctionnement
Code : Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Chat</title>
<style type="text/css">
#conversation {
width: 700px;
height: 400px;
border: black 1px solid;
background-color:#FFFFFF;
overflow-x: hidden;
overflow-y: scroll;
padding: 5px;
margin-left: 10px;
}
fieldset {
width: 730px;
margin-left: 10px;
background-color:#FEEBFD;
border: black 1px solid;
}
</style>
<script type="text/javascript">
//Fonction d'instance permettant de vérifier si le navigateur supporte l'objet XMLHTTPRequest
function objet_XMLHttpRequest()
{
//On déclare une variable "mavariable" à null
var mavariable = null;
//Teste si le navigateur prend en charge les XMLHttpRequest
if (window.XMLHttpRequest || window.ActiveXObject){
// Si Internet Explorer alors on utilise les ActiveX
if(window.ActiveXObject){
//On teste IE7 ou supérieur
try{
mavariable = new ActiveXObject("Msxml2.XMLHTTP");
}
//Si une erreur est levée, alors c'est IE 6 ou inférieur
catch(e){
mavariable = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//Navigateurs récents (Firefox, Opéra, Chrome, Safari, ...)
else{
mavariable = new XMLHttpRequest();
}
}
//XMLHttpRequest non supporté par le navigateur
else{
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
//On retourne l'objet mavariable
return mavariable;
}
//code d'envoi du chat
function chat_ajax(){
//On déclare une variable
var mavariable = objet_XMLHttpRequest();
//récupération des données
var pseudo = encodeURIComponent(document.getElementById("pseudo").value);
var messtext = encodeURIComponent(document.getElementById("messtext").value);
//idem pour le message
if(messtext == ''){
alert('Message vide!');
return false;
}
//On assigne une fonction à la propriété onreadystatechange
mavariable.onreadystatechange = function(){
//Si l'attribut readyState renvoie 4 et que l'attribut status renvoie 200
if(mavariable.readyState == 4 && mavariable.status == 200){
//On affiche le résultat chargé dans l'attribut responseText qui est affiché dans un div nommé "conversation"
document.getElementById("conversation").innerHTML=mavariable.responseText;
//On vide le champ message
document.getElementById("messtext").value='';
}
};
//On déclare la méthode d'envoie
mavariable.open("POST","traitement_chat.php",true);
//On assigne un header
mavariable.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//On envoie
mavariable.send("pseudo="+pseudo+"&messtext="+messtext);
}
//Fonction permettant de rafraichir le div "conversation"
function refresh()
{
var xhr = objet_XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById("conversation").innerHTML = xhr.responseText;
}
};
xhr.open("POST","tchat.txt", true);
xhr.send(null);
}
//On lance la fonction toute les secondes
setInterval("refresh()", 3000);
</script>
</head>
<?PHP
$htmlData = '';
if (!empty($_POST['messtext'])) {
if (get_magic_quotes_gpc()) {
$htmlData = stripslashes($_POST['messtext']);
} else {
$htmlData = $_POST['messtext'];
}
}
?>
<script charset="utf-8" src="kindeditor-min.js"></script>
<script charset="utf-8" src="lang/zh_CN.js"></script>
<script>
var editor;
KindEditor.ready(function(K) {
editor = K.create('textarea[name="messtext"]', {
resizeType : 1,
allowPreviewEmoticons : false,
allowImageUpload : false,
items : ['forecolor', 'hilitecolor', 'bold', 'italic','|', 'emoticons', 'link']
});
});
</script>
<fieldset>
<legend><h1>Tchat</h1></legend>
<div id="conversation"></div><br />
<form method="post" id="monform">
<input type="hidden" id="pseudo" value="pseudo">
<?php echo $htmlData; ?>
<textarea id="messtext" name="messtext" style="width:600px;height:20px;visibility:hidden;">
<?php echo htmlspecialchars($htmlData); ?></textarea>
<input type="button" value="Envoyer" onclick="chat_ajax()"><br /><br />
</form>
</fieldset>
</body>
</html>Code : Tout sélectionner
<?php
//Vérification des données
$pseudo = (isset($_POST["pseudo"])) ? $_POST["pseudo"] : NULL;
$messtext = (isset($_POST["messtext"])) ? $_POST["messtext"] : NULL;
//On créé une variable pour donner un nom au fichier
$fichier = "tchat.txt";
//On ouvre le fichier. Si il n'existe pas il sera créé automatiquement
$fichier_a_ouvrir = fopen ($fichier, "a+");
//On écrit dans le fichier
fwrite($fichier_a_ouvrir, '<div class="bordure">'.$pseudo.' : '.$messtext.'</div>');
//On ferme la connexion
fclose ($fichier_a_ouvrir);
//On ouvre le fichier en lecture
$fichier_a_ouvrir = fopen ($fichier, "r");
//On lit son contenu
$contenu_du_fichier = fgets($fichier_a_ouvrir, 1024);
//On affiche son contenu
echo $contenu_du_fichier;
//On ferme la connexion
fclose ($fichier_a_ouvrir);
?>