Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHAT PHP/AJAX SIMPLE ET COMPACT


Information sur la source

Catégorie :Javascript / DHTML Classé sous : Chat, Ajax, Php, Simple, auto-modifie Niveau : Débutant Date de création : 24/02/2008 Date de mise à jour : 16/03/2008 12:39:47 Vu : 6 099

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voici un petit script de chat php/ajax, j'ai 15 ans c'est la première source que je dépose ...

c'est un petit script de base pour les débutants, le script Ajax n'est pas très compliqué, je me suis aidé de ce site : http://www.xul.fr/xml-ajax.html pour l'Ajax car je n'y connaissait rien.
L'originalité est dans le faite que le script ne nécessite aucune base de donnée ni aucun fichier texte puisqu'il s'auto-modifie.

Le Script possédé désormais une gestion des utilisateurs, et un tout nouveau design.
Pour connecter un utilisateur, il suffit, soit de se rendre sur la page et la on vous demandera de choisir un pseudo, soit d'appeler la page et de faire passer le pseudo de l'utilisateur par l'url (PAGE.php?login=PSEUDO , les caractères  majuscule sont à modifier.)

Ps: Je n'ai pas le temps de mettre les explications de mon script, je le ferais ce soir ou demain ...


merci de dire ce que vous en pensez et de mettre une note !
 

Source

  • <?php
  • session_start();
  • $page_name = basename( __FILE__ );
  • if(isset($_POST['login']))
  • {
  • $_SESSION['authentification'] = 'oui';
  • $_SESSION['login'] = $_POST['login'];
  • }
  • elseif (isset($_GET['login']) && !isset($_SESSION['authentification']))
  • {
  • $_SESSION['authentification'] = 'oui';
  • $_SESSION['login'] = $_POST['login'];
  • }
  • if (isset($_SESSION['authentification']))
  • {
  • $login = $_SESSION['login'];
  • }
  • elseif (!isset($_SESSION['authentification']) && !isset($_GET['action']))
  • {
  • echo '<html><head>
  • <title>Petit Chat - By Chouquette</title>
  • <style type="text/css">* {margin:0px; padding:0px;}
  • body {background:url('.$page_name.'?action=fond) repeat-x #2fb4ff;}
  • #identification {position: absolute; width: 300px; margin-left: -150px; left: 50%; height: 80px; margin-top: -60px; top: 50%; border: 1px solid #000000; background-color: #eee; padding:5px;}
  • body,td,th {font-family: Verdana; font-size: 11px;}
  • p {margin-top: 0px; margin-bottom: 0px; line-height: 150%}
  • </style>
  • </head><body>
  • <img style="margin-left:5px;" src="'.$page_name.'?action=logo" width="387" height="200" />
  • <div id="identification">
  • <form method="post" action="'.$page_name.'">
  • <p>Login :</p><input type="text" name="login" id="login" />
  • <p><input type="submit" style=" margin-top:8px;" name="button" id="button" value="Envoyer" /></p>
  • </form>
  • </body></html>';
  • exit();
  • }
  • $message_garde = 50;
  • $tempsdeconnect = 15;
  • $chat='a:0:{}';
  • $enligne='a:0:{}';
  • $chat = stripslashes($chat);
  • $chat = unserialize($chat);
  • $enligne = stripslashes($enligne);
  • $enligne = unserialize($enligne);
  • $images = array(
  • "fond" =>
  • "R0lGODlhA1wwiwLEXDBcMC+0/y+z/7Hb9TCz/zK1/zW2/jq3/j+4/kW6/Uy9/VO//FvB/GLD+2fF+2rG+27H+nLI+nbK+nvL+YDM+YbO+IzQ+JHS+JbT95zV96HX9qbY9qva9q7b9f///1wwXDBcMFwwXDBcMCH5BAFcMFwwHVwwLFwwXDBcMFwwA1wwiwJcMAX/oCCOZGmeXCI3qqrQcrALz3Rt33i9cXu//cCgcEgsGo8/jXLJbDqf0Kj0mVFmrtisdsvter9XjFicGZvP6LR6nb6Y3Zc4Jk6v2+/4vF5vscT7gIGCg4SFhBUVfYiLjI2Oj5CRiBQVlBSXmJmam5ydnp+YE5eiE6Wmp6ipqquqEqUSsLGys7S1trIRubq7vL2+vhC5EMPExcbHyMnEDw8Qzc/M0dLT1NMO1w4P19rY3d7f3g0NDuLl5ufo6egMDA3s7uzx8vP09fb38wv6+/z9/v9cMAMKBKhAn4KDCBMqXFzIsKHDhxAXJkCYoKLFixgzatzIsaPHBAgqXCIYSbKkyZMoU9WqXFzJ0uSBkS8RHJhJs6bNmzhz6tx508ABA0CDCh1KtKjRo0iLFjBQYCnTpk+bSp1KtarVq1ivEiDQdKvXr2DDih37dVwwgQFozxJcMDBcMFwwW7dv4cp123au21wwAeTmtbsXL19cMH3v+oW7d65fvHkHIwbMWHHixoXtNmZM+K5eyZYrHx4MuLDiy4kjY/58OPPizo8zUz5NmbBnwaVFe+Z8ubZo1KYtBw59+nbrz39fG6ZdubjexX1DT+48Wblr2KZp895teDh11cU530aM3Lht4b9rG++dO0AIXDA7",
  • "logo" =>
  • "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");
  • function secureArray($item)
  • {
  • $item=addslashes($item);
  • $item= str_replace("<script",' ',$item);
  • $item= str_replace("rn",'<br />',$item);
  • return $item;
  • }
  • function ChangerVar($modifier,$remplacement,$variable)
  • {
  • $fichier = '';
  • $tableau = file($modifier);
  • while(list($cle,$val) = each($tableau))
  • {
  • $fichier .= $val;
  • }
  • $fichier = str_replace("<","<",$fichier);
  • $fichier = str_replace(">",">",$fichier);
  • preg_match_all("/".$variable."=(.*);/",$fichier,$matches, PREG_SET_ORDER);
  • foreach ($matches as $message)
  • {
  • $fichier = str_replace($message[0],"".$variable."='".$remplacement."';",$fichier);
  • }
  • $fichier = str_replace("<","<",$fichier);
  • $fichier = str_replace(">",">",$fichier);
  • $fichieredit = fopen($modifier,"w+");
  • fwrite($fichieredit,$fichier);
  • fclose($fichieredit);
  • }
  • if (isset($_GET['action'])) {
  • switch ($_GET['action']) {
  • case "nouveau_message":
  • $key = 'pasconnecte';
  • for ($numero = 0; $numero < count($enligne); $numero++)
  • {
  • if($login == $enligne[$numero][0])
  • {
  • $key = 'connecte';
  • $enligne[$numero][0] = $login;
  • $enligne[$numero][1] = time();
  • $enligne = serialize($enligne);
  • ChangerVar($page_name,SecureArray($enligne),'enligne');
  • $enligne = unserialize($enligne);
  • }
  • }
  • if($key == 'pasconnecte')
  • {
  • $nbrenligne = count($enligne);
  • $enligne[$nbrenligne][0] = $login;
  • $enligne[$nbrenligne][1] = time();
  • $enligne = serialize($enligne);
  • ChangerVar($page_name,SecureArray($enligne),'enligne');
  • }
  • for ($numero = 0; $numero < count($chat); $numero++)
  • {
  • echo $chat[$numero][1].' - '.stripslashes(urldecode($chat[$numero][2])).' - <strong>'.stripslashes(urldecode($chat[$numero][0])).'</strong><br />
  • ';
  • }
  • exit();
  • break;
  • case "vider":
  • ChangerVar($page_name,secureArray('a:0:{}'),'chat');
  • break;
  • case "poster":
  • $nbr = count($chat);
  • $chat[$nbr][0] = SecureArray(urlencode($login));
  • $chat[$nbr][1] = date('d/m/y h:i:s');
  • $chat[$nbr][2] = SecureArray(urlencode($_POST['message']));
  • if($nbr >= $message_garde) { array_shift($chat); }
  • $chat = serialize($chat);
  • ChangerVar($page_name,SecureArray($chat),'chat');
  • $chat = unserialize($chat);
  • exit();
  • break;
  • case "enligne" :
  • $cache = array();
  • echo "<select class='UserOnline' size=\"20\">";
  • for ($numero = 0; $numero < count($enligne); $numero++)
  • {
  • if($enligne[$numero][1] > time() - $tempsdeconnect )
  • {
  • $cachenbr = count($cache);
  • $cache[$cachenbr][0] = $enligne[$numero][0];
  • $cache[$cachenbr][1] = $enligne[$numero][1];
  • echo "<option>".$enligne[$numero][0]."</option>
  • ";
  • }
  • }
  • echo "</select>";
  • $cache = serialize($cache);
  • ChangerVar($page_name,SecureArray($cache),'enligne');
  • exit();
  • break;
  • case "fond" :
  • header("Content-type: gif");
  • echo stripslashes(base64_decode($images['fond']));
  • break;
  • case "logo" :
  • header("Content-type: gif");
  • echo stripslashes(base64_decode($images['logo']));
  • break;
  • }
  • }
  • ?>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  • <html>
  • <head>
  • <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  • <title>Chouquette - Chat Ajax/PHP</title>
  • <style type="text/css">
  • body {
  • font:Verdana;
  • font-size:12px;
  • background:url(<?php echo $page_name.'?action=fond'; ?>) repeat-x #2fb4ff;
  • font-family: Verdana;
  • }
  • #chat {
  • width:810px;
  • margin-top:160px;
  • position:absolute;
  • margin-left: -405px;
  • left: 50%;
  • }
  • .UserOnline {
  • width:150px;
  • height:300px;
  • float:right;
  • background-color: #000000;
  • color : #FFFFFF;
  • border:none;
  • }
  • #utilisateurs {
  • width:150px;
  • height:300px;
  • float:right;
  • overflow:hidden;
  • border: 1px solid #FFFFFF;
  • background-color: #000000;
  • }
  • #texte {
  • width:650px;
  • height:300px;
  • overflow-y: auto;
  • border: 1px solid #FFFFFF;
  • background-color: #000000;
  • color : #FFFFFF;
  • }
  • #message {
  • height:40px;
  • width:810px;
  • margin-top:10px;
  • background-color: #000000;
  • color : #FFFFFF;
  • }
  • <!--
  • * {
  • margin:0px;
  • padding:0px;
  • }
  • li {
  • margin-left:15px;
  • }
  • .menuitems{
  • padding-left:15px;
  • padding-right:10px;
  • }
  • p {
  • margin-top: 0px;
  • margin-bottom: 0px;
  • line-height: 150%}
  • input,textarea,select {
  • border: 1px solid #FFFFFF;
  • font-weight: bold;
  • font-size: 10px;
  • font-family: verdana;
  • }
  • input {
  • border:1px solid #000000;
  • }
  • hr {
  • color: #0093e6;
  • background-color: #0093e6;
  • height: 5px;
  • }
  • </style>
  • <script language="javascript" type="text/javascript">
  • var actualise = 1000; // temps entre chaque rechargement des messages
  • function httprequest() // fonction nécessaires pour les requêtes Ajax
  • {
  • var xmlhttp=false;
  • try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
  • catch (e){
  • try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  • catch (e) {xmlhttp = false;}
  • }
  • if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); }
  • return xmlhttp;
  • }
  • function envoyer()
  • {
  • var texte = document.getElementById('message').value;
  • while(texte.indexOf("&") > 0 || texte.indexOf("+") > 0)
  • {
  • texte = texte.replace("&","%26");
  • texte = texte.replace("+","%2B");
  • }
  • // Envoi de la requete
  • var envoyer = httprequest();
  • envoyer.open("POST", '<?php echo $page_name; ?>?action=poster', true);
  • envoyer.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  • envoyer.send('message='+texte);
  • }
  • function vider()
  • {
  • var vider = httprequest();
  • vider.open("GET","<?php echo $page_name; ?>?action=vider",true);
  • vider.send(null);
  • }
  • function Message()
  • {
  • var message = httprequest();
  • message.open("GET","<?php echo $page_name; ?>?action=nouveau_message",true);
  • message.onreadystatechange = function() {
  • if (message.readyState == 4)
  • {
  • if(message.status == 200) { document.getElementById('texte').innerHTML = message.responseText;}
  • }
  • }
  • message.send(null);
  • setTimeout("Message()",actualise);
  • }
  • function Utilisateurs()
  • {
  • var utilisateur = httprequest();
  • utilisateur.open("GET","<?php echo $page_name; ?>?action=enligne",true);
  • utilisateur.onreadystatechange = function() {
  • if (utilisateur.readyState == 4)
  • {
  • if(utilisateur.status == 200) { document.getElementById("utilisateurs").innerHTML = utilisateur.responseText;}
  • }
  • }
  • utilisateur.send(null);
  • setTimeout("Utilisateurs()",5000);
  • }
  • </script>
  • </head>
  • <body onLoad="Message();Utilisateurs();">
  • <div id="chat">
  • <div id='utilisateurs'></div>
  • <div id='texte'></div>
  • <p>
  • <textarea id="message" cols="80" rows="3"></textarea>
  • </p>
  • <p>&nbsp;</p>
  • <p>
  • <input type="button" onClick="envoyer()" value="Envoyer">
  • <input type="button" onClick="vider()" value="Vider les messages">
  • </p>
  • </div>
  • <img src="<?php echo $page_name.'?action=logo'; ?>" width="387" height="200">
  • </body>
  • </html>
<?php
session_start();
$page_name = basename( __FILE__ );

if(isset($_POST['login']))
{
	$_SESSION['authentification'] = 'oui';
	$_SESSION['login'] = $_POST['login'];
}
elseif (isset($_GET['login']) && !isset($_SESSION['authentification']))
{
	$_SESSION['authentification'] = 'oui';
	$_SESSION['login'] = $_POST['login'];
}

if (isset($_SESSION['authentification']))
{
$login = $_SESSION['login'];
}
elseif (!isset($_SESSION['authentification']) && !isset($_GET['action']))
{
echo '<html><head>
<title>Petit Chat - By Chouquette</title>
<style type="text/css">* {margin:0px; padding:0px;}
body {background:url('.$page_name.'?action=fond) repeat-x #2fb4ff;}
#identification {position: absolute; width: 300px; margin-left: -150px; left: 50%; height: 80px; margin-top: -60px; top: 50%; border: 1px solid #000000; background-color: #eee; padding:5px;}
body,td,th {font-family: Verdana; font-size: 11px;}
p {margin-top: 0px; margin-bottom: 0px; line-height: 150%}
</style>
</head><body>
<img style="margin-left:5px;" src="'.$page_name.'?action=logo" width="387" height="200" />
<div id="identification">
<form method="post" action="'.$page_name.'">
  <p>Login :</p><input type="text" name="login" id="login" />
  <p><input type="submit" style=" margin-top:8px;" name="button" id="button" value="Envoyer" /></p>
</form>
</body></html>';

exit();

}


$message_garde = 50;
$tempsdeconnect = 15;

$chat='a:0:{}';

$enligne='a:0:{}';

$chat = stripslashes($chat);
$chat = unserialize($chat);
$enligne = stripslashes($enligne);
$enligne = unserialize($enligne);

$images = array( 
"fond" => 
"R0lGODlhA1wwiwLEXDBcMC+0/y+z/7Hb9TCz/zK1/zW2/jq3/j+4/kW6/Uy9/VO//FvB/GLD+2fF+2rG+27H+nLI+nbK+nvL+YDM+YbO+IzQ+JHS+JbT95zV96HX9qbY9qva9q7b9f///1wwXDBcMFwwXDBcMCH5BAFcMFwwHVwwLFwwXDBcMFwwA1wwiwJcMAX/oCCOZGmeXCI3qqrQcrALz3Rt33i9cXu//cCgcEgsGo8/jXLJbDqf0Kj0mVFmrtisdsvter9XjFicGZvP6LR6nb6Y3Zc4Jk6v2+/4vF5vscT7gIGCg4SFhBUVfYiLjI2Oj5CRiBQVlBSXmJmam5ydnp+YE5eiE6Wmp6ipqquqEqUSsLGys7S1trIRubq7vL2+vhC5EMPExcbHyMnEDw8Qzc/M0dLT1NMO1w4P19rY3d7f3g0NDuLl5ufo6egMDA3s7uzx8vP09fb38wv6+/z9/v9cMAMKBKhAn4KDCBMqXFzIsKHDhxAXJkCYoKLFixgzatzIsaPHBAgqXCIYSbKkyZMoU9WqXFzJ0uSBkS8RHJhJs6bNmzhz6tx508ABA0CDCh1KtKjRo0iLFjBQYCnTpk+bSp1KtarVq1ivEiDQdKvXr2DDih37dVwwgQFozxJcMDBcMFwwW7dv4cp123au21wwAeTmtbsXL19cMH3v+oW7d65fvHkHIwbMWHHixoXtNmZM+K5eyZYrHx4MuLDiy4kjY/58OPPizo8zUz5NmbBnwaVFe+Z8ubZo1KYtBw59+nbrz39fG6ZdubjexX1DT+48Wblr2KZp895teDh11cU530aM3Lht4b9rG++dO0AIXDA7",
"logo" =>
"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");

function secureArray($item)
{
$item=addslashes($item);
$item= str_replace("<script",' ',$item);
$item= str_replace("rn",'<br />',$item);
return $item;
} 

function ChangerVar($modifier,$remplacement,$variable)
{
	$fichier = '';
	$tableau = file($modifier);
	while(list($cle,$val) = each($tableau))
	{
		$fichier .= $val;
	}
	$fichier = str_replace("<","<",$fichier);
	$fichier = str_replace(">",">",$fichier);
	preg_match_all("/".$variable."=(.*);/",$fichier,$matches, PREG_SET_ORDER);
	foreach ($matches as $message)
	{
	   $fichier = str_replace($message[0],"".$variable."='".$remplacement."';",$fichier);
	}
	$fichier = str_replace("<","<",$fichier);
	$fichier = str_replace(">",">",$fichier);
	
	$fichieredit = fopen($modifier,"w+");
	fwrite($fichieredit,$fichier);  
	fclose($fichieredit);
	
}

if (isset($_GET['action'])) {
  
  switch ($_GET['action']) {


  case "nouveau_message":
	
	$key = 'pasconnecte';
	for ($numero = 0; $numero < count($enligne); $numero++)
	{
		if($login == $enligne[$numero][0])
		{
		$key = 'connecte';
		$enligne[$numero][0] = $login;
		$enligne[$numero][1] = time();
		$enligne = serialize($enligne);
		ChangerVar($page_name,SecureArray($enligne),'enligne');
		$enligne = unserialize($enligne);
		}
	}


	
	if($key == 'pasconnecte')
	{ 
	$nbrenligne = count($enligne);
	$enligne[$nbrenligne][0] = $login;
	$enligne[$nbrenligne][1] =  time();
	$enligne = serialize($enligne);
	ChangerVar($page_name,SecureArray($enligne),'enligne');
	}

	for ($numero = 0; $numero < count($chat); $numero++)
	{
		echo $chat[$numero][1].'  -  '.stripslashes(urldecode($chat[$numero][2])).'     -     <strong>'.stripslashes(urldecode($chat[$numero][0])).'</strong><br />
';
	}
		exit();
	break;

	case "vider":
		ChangerVar($page_name,secureArray('a:0:{}'),'chat');
	break;

	case "poster":
		$nbr = count($chat);
		
		$chat[$nbr][0] = SecureArray(urlencode($login));
		$chat[$nbr][1] = date('d/m/y h:i:s');
		$chat[$nbr][2] = SecureArray(urlencode($_POST['message']));
		if($nbr >= $message_garde) { array_shift($chat); }
		$chat = serialize($chat);
		ChangerVar($page_name,SecureArray($chat),'chat');
		$chat = unserialize($chat);
		exit();
	break;

	case "enligne" :
		$cache = array();
		echo "<select class='UserOnline' size=\"20\">";
		for ($numero = 0; $numero < count($enligne); $numero++)
		{
	
			if($enligne[$numero][1] > time() - $tempsdeconnect )
			{
			$cachenbr = count($cache);
			$cache[$cachenbr][0] = $enligne[$numero][0];
			$cache[$cachenbr][1] = $enligne[$numero][1];
			echo "<option>".$enligne[$numero][0]."</option>
";
			}
		}
		echo "</select>";
		$cache = serialize($cache);
		ChangerVar($page_name,SecureArray($cache),'enligne');
		exit();
	break;
	
	case "fond" :
	header("Content-type: gif");
	echo stripslashes(base64_decode($images['fond']));
	break;

    case "logo" :
	header("Content-type: gif");
	echo stripslashes(base64_decode($images['logo']));
	break;

    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Chouquette - Chat Ajax/PHP</title>
<style type="text/css">

body {
font:Verdana;
font-size:12px;
background:url(<?php echo $page_name.'?action=fond'; ?>) repeat-x #2fb4ff;
font-family: Verdana;
}

#chat {
width:810px;
margin-top:160px;
position:absolute;
margin-left: -405px;
left: 50%;

}

.UserOnline {
width:150px;
height:300px;
float:right;
background-color: #000000;
color : #FFFFFF;
border:none;
}


#utilisateurs {
width:150px;
height:300px;
float:right;
overflow:hidden;
border: 1px solid #FFFFFF;
background-color: #000000;
}

#texte {
width:650px;
height:300px;
overflow-y: auto;
border: 1px solid #FFFFFF;
background-color: #000000;
color : #FFFFFF;
}

#message {
height:40px;
width:810px;
margin-top:10px;
background-color: #000000;
color : #FFFFFF;
}
<!--
* {
margin:0px;
padding:0px;
}

li {
margin-left:15px;
}

.menuitems{
padding-left:15px;
padding-right:10px;
}

p {
margin-top: 0px;
margin-bottom: 0px;
line-height: 150%}


input,textarea,select {
    border: 1px solid #FFFFFF; 
    font-weight: bold; 
    font-size: 10px; 
    font-family: verdana; 
}

input {
border:1px solid #000000;
}

hr {
color: #0093e6;
background-color: #0093e6;
height: 5px;
}

</style>
<script language="javascript" type="text/javascript">
var actualise = 1000; // temps entre chaque rechargement des messages

function httprequest() // fonction nécessaires pour les requêtes Ajax
{
	var xmlhttp=false;
	try	{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
	catch (e){	
		try	{	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");		}
		catch (e)	{xmlhttp = false;}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined')	{ xmlhttp = new XMLHttpRequest(); }
	return xmlhttp;
}


	
function envoyer()
{
		var texte = document.getElementById('message').value;
		while(texte.indexOf("&") > 0 || texte.indexOf("+") > 0)
		{
		texte = texte.replace("&","%26");
		texte = texte.replace("+","%2B");
		}
		
		// Envoi de la requete
		var envoyer = httprequest();
		envoyer.open("POST", '<?php echo $page_name; ?>?action=poster', true);		
		envoyer.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		envoyer.send('message='+texte); 
}

function vider()
{
	var vider = httprequest();
	vider.open("GET","<?php echo $page_name; ?>?action=vider",true);
	vider.send(null);	
}

function Message()
{
	var message = httprequest();
	message.open("GET","<?php echo $page_name; ?>?action=nouveau_message",true);
	message.onreadystatechange = function() {
		if (message.readyState == 4)
		{
		 if(message.status  == 200) { document.getElementById('texte').innerHTML = message.responseText;}
		}

	}
	message.send(null);	
	setTimeout("Message()",actualise);
	
}

function Utilisateurs()
{
	var utilisateur = httprequest();
	utilisateur.open("GET","<?php echo $page_name; ?>?action=enligne",true);
	utilisateur.onreadystatechange = function() {
		if (utilisateur.readyState == 4)
		{
		 if(utilisateur.status  == 200) { document.getElementById("utilisateurs").innerHTML = utilisateur.responseText;}
		}

	}
	utilisateur.send(null);	 
	setTimeout("Utilisateurs()",5000);

}


</script>
</head>
<body onLoad="Message();Utilisateurs();">
<div id="chat">
<div id='utilisateurs'></div>
<div id='texte'></div>
<p>
  <textarea id="message" cols="80" rows="3"></textarea>
  </p>
<p>&nbsp;</p>
<p>
  <input type="button" onClick="envoyer()"  value="Envoyer">
  <input type="button" onClick="vider()"  value="Vider les messages">
</p>
</div>
<img src="<?php echo $page_name.'?action=logo'; ?>" width="387" height="200">
</body>
</html>

Historique

05 mars 2008 16:29:06 :
- Ajout d'un systeme d'authentification et la gestion des utilisateur - Nouveau Design
16 mars 2008 12:39:47 :
- suppression de bug ..

Commentaires et avis

signaler à un administrateur
Commentaire de jantosze le 25/02/2008 10:13:49

Salut,

En première lecture qq rems de forme:
- partie PHP : sur la série des if(@$_GET['action']... J'aurai tendance à utiliser un switch / case avec une gestion du default, je trouve que cela apporte en lisibilité.
-partie JS: bien les 2 try sur ActiveXObject j'en mettrai un aussi sur le if qui suit,
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); }  par
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
      } catch (e) {
      xmlhttp = false;
      }
    }
  return xmlhttp;
  }
Du fait de readyState == 4 mettre une trace d'erreur pour if( mesage.status == 200 ) { ... } else { "il y  a un problem avec request err_num:"+message.status);
Faire un test sur var XXXX = httprequest(); car dans ton code tu peux avoir NULL; De même initialiser var xmlhttp = false qui est réservé aux ops BOOL je préfère NULL.

Cdt
JAN

signaler à un administrateur
Commentaire de neigedhiver le 25/02/2008 16:08:46

Salut,

"partie PHP : sur la série des if(@$_GET['action']... J'aurai tendance à utiliser un switch / case avec une gestion du default, je trouve que cela apporte en lisibilité."

...mais fait perdre en performances. D'un autre côté, une série de blocs if, c'est pas optimisé. Mieux vaut utiliser un if ... elseif ... else en prenant soin de mettre en premier l'action qui a le plus de chances de se produire.
Une boucle switch doit parcourir tous les cas possibles avant de se décider. Une boucle if elseif else les parcourt les uns après les autres, et sort dès que le bon a été trouvé.
Et puis les @$_GET c'est moche, très moche.
Mieux vaut une boucle comme ça :

if (isset($_GET['action'])) {
  if ($_GET['action'] == 'nouveau_message') {
    // ...
  }
  elseif ($_GET['action'] == 'vider') {
    // ...
  }
  elseif ($_GET['action'] == 'poster') {
    // ...
  }
}

Sinon, petite remarque : c'est <br />  et non pas <br/> Il y a un espace entre le `r` et le `/`

Maintenant, pour que ce chat puisse être plus facilement intégrable dans un site, il faut penser à séparer le code PHP du code HTML et faire en sorte qu'on puisse, justement, facilement intégrer ça où on veut.

signaler à un administrateur
Commentaire de jantosze le 25/02/2008 16:51:19

NEIGEDHIVER je ne partage pas ton avis sur le fonctionnement du switch:
" Dans une commande switch  , une condition n'est évaluée qu'une fois, et le résultat est comparé à chaque case  . Dans une structure elseif  , les conditions sont évaluées à chaque comparaison. Si votre condition est plus compliquée qu'une simple comparaison, ou bien fait partie d'une boucle, switch  sera plus rapide. "
lire http://www.manuelphp.com/php/control-structures.switch.php par exemple.

cdt
JAN

signaler à un administrateur
Commentaire de neigedhiver le 25/02/2008 17:57:44

Au temps pour moi...

signaler à un administrateur
Commentaire de SuperChouquette le 25/02/2008 18:55:51

merci pour vos conseil !
Sinon pour l'intégration dans un site, le webmaster peut mettre une frame, le but était que le script tienne dans un fichier, sans base de données, sans fichier texte qui se créé à coté.
Je vais aussi ajouté la gestion des utilisateur, j'ai finit le script ! en tous les cas merci pour vos conseils !

signaler à un administrateur
Commentaire de coucou747 le 25/02/2008 20:36:36

en fait, parfois, on peut faire un if en O(log(nombre_elements)) alors qu'un switch est en O(nombre_elements)

voici le bench :

function compare1($i){
if ($i==1)return '1';if ($i==2)return '2';if ($i==3)return '3';
if ($i==4)return '4';if ($i==5)return '5';if ($i==6)return '6';
if ($i==7)return '7';if ($i==8)return '8';return '9';
}

function compare1_1($i){
if ($i<5){if ($i==1)return '1';if ($i==2)return '2';if ($i==3)return '3';return '4';}
if ($i==5)return '5';if ($i==6)return '6';if ($i==7)return '7';if ($i==8)return '8';
return '9';
}

function compare2($i){
switch ($i){
case 1:return '1';case 2:return '2';case 3:return '3';case 4:return '4';
case 5:return '5';case 6:return '6';case 7:return '7';case 8:return '8';
default:return '9';
}}
function compare3($i){$i='f'.$i;return $i();}
function f1(){return '1';}function f2(){return '2';}function f3(){return '3';}
function f4(){return '4';}function f5(){return '5';}function f6(){return '6';}
function f7(){return '7';}function f8(){return '8';}function f9(){return '9';}


c'est clairement compare1_1 la plus rapide

signaler à un administrateur
Commentaire de FhX le 26/02/2008 18:39:14

Il est évident que le gain ne se mesure pas sur "Si i == 1" "Si i == 2" ...

C'est absurde :o

Il est beaucoup plus aisé d'écrire :

switch ( $class->ma_methode() ) {
   case TRUC:
     //
   case MACHIN:
     //
   /// etc..
}

que :

$retour = $class->ma_methode();
  if ( $retour == TRUC ) {
        //
  } elseif ( $retour == MACHIN ) {
        //
  } // etc...

:)

signaler à un administrateur
Commentaire de coucou747 le 26/02/2008 18:44:29

nan mais c'est surtout pas les memes structures :

switch (...){
case val1:
instructions executes pour la valeur 1
case val2:
instructions executes pour la valeur 1 ou 2

signaler à un administrateur
Commentaire de jantosze le 26/02/2008 18:49:18

Salut coucou747,

Il me semble que tu oublies un détail avec Switch:
switch( C ) {
case 1:
     .....
break;
case 2:
     ....
break;
ect ..
default:
     ......
break;
}
Sinon évidemment tu auras tendance à cumuler

Cdt
JAN

signaler à un administrateur
Commentaire de coucou747 le 26/02/2008 18:55:43

mais justement, un switch fait comme le tien, c'est presque comparable a un if, mais un switch comme je l'ai fait plus haut,c'est different...

signaler à un administrateur
Commentaire de neigedhiver le 26/02/2008 20:54:09

Salut,

J'ai fait aussi un bench pour comparer un simple if elseif else avec un switch case default. On en trouve d'ailleurs plein sur le net...
Clairement, switch prend l'avantage sur if pour un petit nombre de possibilités. Pour ma part, j'ai tenté avec 26 plus une par défaut. Là, switch et if deviennent équivalents (c'est à dire que parfois l'un est plus rapide, parfois c'est l'autre.

Coucou747 (j'allais oublier le '747', mais trop peur de me faire taper sur les doigts), pour écrire pareil que ton switch avec un if, il suffit de sortir l'appel à la méthode de la boucle pour stocker le résultat dans une variable, et de tester sur cette variable.
$aTester = $maClasse -> maMethode();
if ($aTester == '...') {
  // ...
}

Autrement dit, il semble que la structure switch demande plus de ressources quand elle est initialisée, mais en demande moins pour chaque possibilité supplémentaire.
Si on avait des valeurs, on pourrait résoudre un système de 2 équations à 2 inconnues, et on saurait quand il est préférable d'utiliser l'un plutôt que l'autre...

signaler à un administrateur
Commentaire de SuperChouquette le 16/03/2008 12:38:58

Désolé, je met à jour le code ! si il y a d'autre bug n'hésite surtout pas !

signaler à un administrateur
Commentaire de franzemmanuel le 26/04/2008 21:11:32 10/10

Super !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Help me....travaille en php "simple" mais payé.....!! [ par Maniac ] Salut,voila je n'y connais rien du tout en php, mais je dois "simplement" faire un forum pour un client pour qui je developpe son site...Si qq1 savait IRC et PHP [ par spEps ] Salut,J'ai mis un chat IRC avec BestOfChat.comsur mon site et je souhaiterais afficher lenombre de connectés avant qu'on entresur le chat, c'est à dir chat en php [ par jawad75 ] bonjourje voulais juste comment mettre un chat en php derier un serveur webmerci d'avance Code php simple en asp ou cfm... [ par fabiin ] Salut,je ne programme ni en asp ni en cfm, mais j'ai besoin de ce code php en asp et cfm :)&lt;?$date1 = mktime(18,33,0,10,30,2003);$date2 = mktime(18 PHP & WANADOO... [ par lard ] Bonjour !Simple question:Pour l'instant, je suis abonné à Wanadoo (personne n'est parfait...) et j'ai voulu mettre en ligne une simple page Web conten Chat à partir du login et mdp du forum [ par jmobylette ] Bonjour ! G un forum phpBB2 et je voudrais faire un chat à part mais en utilisant les mêmes pseudos et mdp ! J'ai donc fait un formulaire : http://jmo Plein de ptits Pbs sur un chat flash/php/txt ... [ par patochdu77 ] Salutations ! Je suis débutant dans le php et j'ai crée un chat en flash/php/txt, il y a plein de ptit problèmes, comme la variable pseudo ki vient s' FICHIER TEXTE [ par webmathis ] Je suis entrain de développer un chat en PHP avec stockage dans un fichier texte, mais il me manque un petit script. j'aimerais qu'au bout de 6 lignes php:c'est simple,j'arrive à rien! [ par peterbud ] Bonjour à tous,Celà fait quelques jours que j'ai décidé de me mettre au php et j'utilise easy php1.7....et là ca va plus du tout.En effet je teste des Php lire une fonction $... [ par 666BlackDragoon666 ] voila je travaille sur un chat et sur mon chat je voudra faire en sorte que lorsque qu'un personne prononce votre nick bah il y a un son ki se joue.j'


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode