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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| <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;
}
// Cette fonction permet l'envoi des données vers minichat.php
function submitChat()
{
var xhr = getXMLHttpRequest();
// on récupère la valeur de nos champs input via leurs id et on les encode (encodeURIComponent)
var pseudo = encodeURIComponent(document.getElementById('pseudo').value);
var message = encodeURIComponent(document.getElementById('messtext').value);
document.getElementById('messtext').value = ""; // On efface le message dans la textarea
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
// Remplissage des données textuelles récupérées
document.getElementById('conversation').innerHTML = xhr.responseText;
}
};
xhr.open("POST", "Tchat_user.php", true); // On ouvre une connexion en méthode POST vers minichat.php
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // permet l'encodage des POST
xhr.send("pseudo="+pseudo+"&messtext="+messtext); // On définit nos variables et leurs valeurs
// par exemple pseudo=Aure77&message=Coucou
}
//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("GET", "Tchat_user.php", true); // On ouvre une connexion en méthode GET vers minichat.php
xhr.send(null); // On envoie
}
//On lance la fonction toute les secondes
setInterval("refresh()", 3000);
</script>
<?PHP
echo '<style type="text/css">
#conversation {
width: 670px;
height: 300px;
border: black 1px solid;
background-color:#FFFFFF;
overflow-x: hidden;
overflow-y: scroll;
padding: 5px;
margin-left: 10px;
}
fieldset {
width: 700px;
margin-left: 10px;
background-color:#FEEBFD;
border: black 1px solid;
}
</style>';
$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="<?PHP echo $_SESSION['xxxx']; ?>">
<?php echo $htmlData; ?>
<textarea id="messtext" name="messtext" style="width:600px;height:20px;">
<?php echo htmlspecialchars($htmlData); ?></textarea>
<input type="button" value="Envoyer" onclick="submitChat()"><br /><br />
</form>
</fieldset> |
Partager