Un logiciel de chat tres simple en php/mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 634 fois - Téléchargée 27 fois

Contenu du snippet

Il s'agit ici d'un logiciel de chat tres basique qui enregistre la conversation dans une base MySQL

Il faut tout d'abord creer une table sous MySQL.

CREATE TABLE chat (
id INT NOT NULL AUTO_INCREMENT,
pseudo VARCHAR(30),
message VARCHAR(255),
heure VARCHAR (10),
PRIMARY KEY(id)
)

Ensuite, il suffit simplement de copier les deux pages suivantes dans un ficher texte. Le premier doit s'appeller index.php et le second affichpage.php

Source / Exemple :


//PAGE 1 : index.php

<?php
	$server="nomserveur";
	$username="nomuser";
	$password="pwd";
	$link=mysql_connect($server,$username,$password);
	mysql_select_db('nomdb');
?>

<?php
	if (!(isset($_GET['pseudo']) and !empty($_GET['pseudo'])) {
		echo "<html>
			<body>
				<form action = '$SERVER[PHP_SELF]' method = GET>
					<b>PSEUDO </b><input type = 'text' name = 'pseudo' maxlength = 30><br>
					<input type = submit value = 'valider'>
				</form>
			</body>
		</html>";
		exit();
	}
	
	if (isset($_POST['message']) and !empty($_POST['message'])) {
		$query = "INSERT INTO chat (heure, pseudo, message) VALUES (CURRENT_TIME, '$_GET[pseudo]', '$_POST[message]')";
		$result = mysql_query($query);
		if ($result == 0) {
			echo "erreur dans la base de donnees";
			exit();
		}
	}
?>

<html>
	<head>
		<title>chan</title>
	</head>
	<body>
	<IFRAME ID = IFrame1 width = 80% height = "700" FRAMEBORDER = 1 SCROLLING = no SRC = "affichpage.php"></IFRAME>
	<br>
	<br>
	<form name = "messa" action = "<?php echo "$SERVER[PHP_SELF]?pseudo=$_GET[pseudo]" ?>" method = 'POST'>
	<input type = 'text' size = 100 name = 'message' maxlength = 255>
	<br>
	<input type = 'submit' value = 'envoyer' name = 'send'>

        <SCRIPT langage = "javascript">
		document.forms['messa'].elements['message'].focus();
	</SCRIPT>
	</body>
</html>

//PAGE 2 : affichpage.php

<?php
	$server="nomserveur";
	$username="nomuser";
	$password="pwd";
	$link=mysql_connect($server,$username,$password);
	mysql_select_db('nomdb');
?>

<html><meta Http-equiv="Refresh" Content="5"> //on peut modifier la vitesse de rafraichissement du chat en changeant la valeur du Content. Elle est en seconde.
<body>
	<?php
		$query = "(SELECT * FROM chat ORDER BY id DESC LIMIT 25) ORDER BY id ASC";
		$result = mysql_query($query);
		while ($list = mysql_fetch_array($result)) {
			echo "<b>$list[heure] - </b>";
			echo "<b><font color = 'blue'>$list[pseudo] : </font></b>";
			echo "$list[message]<br>";
		}
	?>
	_
</body></html>

A voir également

Ajouter un commentaire

Commentaires

cirkooo
Messages postés
35
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
26 décembre 2012

effectivement: ($_GET['pseudo']))) {, merci, jayadeva, marche impeccablement maintenant.
Jayadeva
Messages postés
67
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2008

compte les : 4 ( et 3 ). Il t'en manque une.
cirkooo
Messages postés
35
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
26 décembre 2012

la ligne 10 est celle-ci:
if(!(isset($_GET['pseudo']) and !empty($_GET['pseudo'])) {
cirkooo
Messages postés
35
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
26 décembre 2012

moi, ça donne ça:
Parse error: syntax error, unexpected '{' in C:\wamp\www\index.php on line 10
pourtant le code est bon, les parentheses aussi.
J'ais rempli vite fait la base avec des pseudos et messages pour tester et cette erreur apparait, pourquoi? j'ais fait gaffe de ne pas laisser d'espace avant les balises d'ouverure php, j'ais enlevé tous les dièses, rempli le nom de base, de serveur, et d'admin, bon, là je ne sais plus quoi faire?
Jayadeva
Messages postés
67
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
1 septembre 2008

Ce genre de code sert a tuer le serveur sur lequel il tourne. PHP n'est pas fait pour servir de "tchat". A la limite une tribune libre ... Et MySQL non plus! (sauf si tu sais ce que tu fait, mais bon ...)

Imagine que t'a 15 personnes qui écrivent un message toute les 3 secondes. Combien ca te fait de requêtes a MySQL Par minute ?

Bref, pense a t'optimiser et a utiliser des systèmes déjà présent sur le net comme l'"IRC" :))

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.