-ne serait accessible que par les personnes inscrites et connectés
- qui afficherait le pseudo des personnes connectés l'heure et le message a la suite
Cependant j'ai une bonne base de chat: le message s'envoi l'heure s'affiche... mais j'ai un problème avec les pseudos !!!
Tout d'abord voici ma base de donnée:

je m 'inscrit sur ma page d'inscription qui me semble fonctionnelle puisque les infos me sont envoyés dans la base de donnée le code est:
<?php
session_start();
$BDD = mysql_connect("localhost","root","");
mysql_select_db("database");
?>
<?php
// desactiver variables
$error = FALSE;
$registerOK = FALSE;
//verification du passage par l inscription
if(isset($_POST["register"])){
//Verification champs completements remplis ou message d'erreur.
if($_POST["login"] == NULL OR $_POST["pass"] == NULL OR $_POST["pass2"] == NULL OR $_POST["name"] == NULL OR $_POST["firstname"] == NULL OR $_POST["email"] == NULL){
// On active la variable $error; le navigateur saura qu'il y'a une erreur à afficher.
$error = TRUE;
// message d erruer qu s'affichera
$errorMSG = "Tout les champs doivent être remplis !";
}
// corespondance des 2 mdp
elseif($_POST["pass"] == $_POST["pass2"]){
// mdp et pseudo differents verification
if($_POST["login"] != $_POST["pass"]){
// verification base de donnée si le pseudo n'est pas deja pris
$sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";
$sql = mysql_query($sql);
//verfication email non pris
$sql = "SELECT email FROM users WHERE email = '".$_POST["email"]."' ";
$sql = mysql_query($sql);
// decompte du nombre de lettres chiffres valeurs...
$sql = mysql_num_rows($sql);
if($sql == 0){
// non exces de 30 caracteres du mdp
if(strlen($_POST["pass"] < 30)){
// non exces de 30 caractere du pseudo
if(strlen($_POST["login"] < 30)){
// Si le nom de compte et le mot de passe sont différent :
if($_POST["login"] != $_POST["pass"]){
// tout les criteres sont remplis : inscription dans la database
$sql = "INSERT INTO users (login,pass,name,firstname,email) VALUES ('".$_POST["login"]."','".$_POST["pass"]."','".$_POST["name"]."','".$_POST["firstname"]."','".$_POST["email"]."')";
$sql = mysql_query($sql);
if($sql){
// activation de la variable $registerOK
$registerOK = TRUE;
$registerMSG = "L'Inscription est réussie ! Vous êtes maintenant membre du site.";
// stockage des mdp et pseudos
$_SESSION["login"] = $_POST["login"];
$_SESSION["pass"] = $_POST["pass"];
$_SESSION["name"] = $_POST["name"];
$_SESSION["firstname"] = $_POST["firstname"];
$_SESSION["email"] = $_POST["email"];
}
//message erreur utilisateur non different
else{
$error = TRUE;
$errorMSG = "Erreur dans la requête SQL<br/>".$sql."<br/>";
}
}
// affichage erreur nom de compte trop long
else{
$error = TRUE;
$errorMSG = "Votre nom compte ne doit pas dépasser <strong>30 caractères</strong> !";
$login = NULL;
$pass = $_POST["pass"];
}
}
}
// tout comme mdp
else{
$error = TRUE;
$errorMSG = "Votre mot de passe ne doit pas dépasser <strong>30 caractères</strong> !";
$login = $_POST["login"];
$pass = NULL;
}
}
// message d erreur nom de compte ou mail deja utilisé
else{
$error = TRUE;
$errorMSG = "Le nom de compte <strong>".$_POST["login"]."</strong> est déjà utilisé !";
$login = NULL;
$pass = $_POST["pass"];
}
}
// modification necesaire du pseudo ou du mdp
else{
$error = TRUE;
$errorMSG = "Le nom de compte et le mot de passe doivent êtres différents !";
}
}
// les deux mots de passes sont différents :
elseif($_POST["pass"] != $_POST["pass2"]){
$error = TRUE;
$errorMSG = "Les deux mots de passes sont différents !";
$login = $_POST["login"];
$pass = NULL;
}
// si le nom de compte et le mot de passe ont la même valeur :
elseif($_POST["login"] == $_POST["pass"]){
$error = TRUE;
$errorMSG = "Le nom de compte et le mot de passe doivent être différents !";
}
}
?>
<?php
mysql_close($BDD);
?>
<?php // affichage erreurs
if($error == TRUE){ echo "<p align='center' style='color:red;'>".$errorMSG."</p>"; }
?>
<?php // ou affichage de l inscription s'etant deroué avec succes
if($registerOK == TRUE){ echo "<p align='center' style='color:green;'><strong>".$registerMSG."</strong></p>"; }
?>
<html>
<head>
<title>Formulaire d'inscription</title>
</head>
<body>
<form action="index.php" method="post">
<table>
<tr>
<td><label for="login"><strong>Pseudo:</strong></label></td>
<td><input type="text" name="login" id="login"/></td>
</tr>
<tr>
<td><label for="pass"><strong>Mot de passe :</strong></label></td>
<td><input type="password" name="pass" id="pass"/></td>
</tr>
<tr>
<td><label for="pass2"><strong>Confirmez le mot de passe :</strong></label></td>
<td><input type="password" name="pass2" id="pass2"/></td>
</tr>
<tr>
<td><label for="name"><strong>Nom</strong></label></td>
<td><input type="text" name="name" id="name"/></td>
</tr>
<tr>
<td><label for="firstname"><strong>Prenom:</strong></label></td>
<td><input type="text" name="firstname" id="firstname"/></td>
</tr>
<tr>
<td><label for="email"><strong>E-Mail</strong></label></td>
<td><input type="text" name="email" id="email"/></td>
</table>
<input type="submit" name="register" value="S'inscrire"/>
</form>
</body>
</html>
une fois inscrit je suis automatiquement considéré comme connecté ou je me connecte via cette page qui me semble également fonctionnelle :<?php
session_start();
$BDD = mysql_connect("localhost","root",""); // Connexion à la base de données.
mysql_select_db("database"); // Sélection de la base de données utilisée.
?>
<?php
// On met les variables utilisés du script PHP à FALSE.
$error = FALSE;
$connexionOK = FALSE;
// On regarde si l'utilisateur a bien utilisé le module de connexion pour traiter les données.
if(isset($_POST["connexion"])){
// On regarde si tout les champs sont remplis. Sinon on lui affiche un message d'erreur.
if($_POST["login"] == NULL OR $_POST["pass"] == NULL){
$error = TRUE;
$errorMSG = "Vous devez remplir tout les champs !";
}
// Sinon si tout les champs sont remplis alors on regarde si le nom de compte rentré existe bien dans la base de données.
else{
$sql = "SELECT login FROM users WHERE login = '".$_POST["login"]."' ";
$req = mysql_query($sql);
// Si oui, on continue le script...
if($sql){
// On sélectionne toute les données de l'utilisateur dans la base de données.
$sql = "SELECT * FROM users WHERE login = '".$_POST["login"]."' ";
$req = mysql_query($sql);
// Si la requête SQL c'est bien passé...
if($sql){
// On récupère toute les données de l'utilisateur dans la base de données.
$donnees = mysql_fetch_assoc($req);
// Si le mot de passe entré à la même valeur que celui de la base de données, on l'autorise a se connecter...
if($_POST["pass"] == $donnees["pass"]){
$connexionOK = TRUE;
$connexionMSG = "Connexion au site réussie. Vous êtes désormais connecté !";
$_SESSION["login"] = $_POST["login"];
$_SESSION["pass"] = $_POST["pass"];
}
// Sinon on lui affiche un message d'erreur.
else{
$error = TRUE;
$errorMSG = "Nom de compte ou mot de passe incorrect !";
}
}
}
}
}
mysql_close($BDD);
?>
<?php if(isset($_SESSION["login"]) AND isset($_SESSION["pass"])){
echo "<p style='color:green'>Bienvenue <strong>".$_SESSION["login"]."</strong></p>";
} ?>
<?php if($error == TRUE){ echo "<p align='center' style='color:red'><strong>".$errorMSG."</strong></p>"; } ?>
<?php if($connexionOK == TRUE){ echo "<p align='center' style='color:green'><strong>".$connexionMSG."</strong></p>"; } ?>
<html>
<head>
<title>Création d'un formulaire de connexion en HTML</title>
</head>
<body>
<h2>Connexion au site</h2>
<form action="connexion.php" method="post">
<table>
<tr>
<td><label for="login"><strong>Nom de compte</strong></label></td>
<td><input type="text" name="login" id="login"/></td>
</tr>
<tr>
<td><label for="pass"><strong>Mot de passe</strong></label></td>
<td><input type="password" name="pass" id="pass"/></td>
</tr>
</table>
<input type="submit" name="connexion" value="Se connecter"/>
</form>
</body>
</html>
le problème survient dans le chat le pseudo apparaît bien a coté de l'heure ou du message mais lorsque quelqu' un s'inscrit un message vide avec le login de la nouvelle personne et une heure fausse apparaît :
et également lorsque je me connecte avec un autre pseudo tout les pseudos des messages sont modifiés:

voila je demande de l'aide pour modifier ce code pour que le chat ne soit accessible qu'aux utilisateurs connectés !!! que le pseudo des personnes envoyant des messages s'affiche bref tout comme un vrai chat !!! et que personne ne puisse le faire buguer !!!!
Voici le code de mon chat:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?php
header("Content-Type: text/html; charset=iso-8859-15"); // header qui formate la page en texte
session_start();
$BDD = mysql_connect("localhost", "root", "");
mysql_select_db("database"); //debut
if(isset($_SESSION['login'])){
if (isset($_POST['message'])) // recu de donnees
{
if(!empty($_POST['message'])) // valeur non vide
{
$sql = "INSERT INTO users (message,timestamp) VALUES ('".$_POST["message"]."','".time()."')";
$sql = mysql_query($sql);
}
} //fin
}
$reponse = mysql_query("SELECT * FROM users ORDER BY id DESC LIMIT 0,10");
while($val = mysql_fetch_array($reponse))
{
echo '<p><strong>'.htmlentities(stripslashes($_SESSION['login'])).'</strong>
à '.date('H\:i\:s',$val['timestamp']).' :'.htmlentities(stripslashes($val['message']))
.'</p>'; }
mysql_close(); // On ferme la connexion de notre base de données
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<!-- permettre a l'utilisateur d utiliser les caracteres particuliers francais -->
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
<!-- contenu francais -->
<meta http-equiv="Content-Language" content="fr" />
<meta name="Copyright" content="Loïc&Chris" />
<meta name="Author" content="Loïc" />
<link rel="stylesheet" href="dd.css" type="text/css" />
<title>Match Chat</title>
<script rel="javascript" type="text/javascript"> href="chat.js"></script>
</head>
<body onload="refreshChat();">
<h2>Match Chat</h2>
<div id="database"></div>
<p>
<form action="chat.php" method="post">
Message : <br/><textarea name="message" rows="4" cols="20" id="message"></textarea><br/>
<input type="submit" value="Envoyer"/>
</form>
</p>
</body>
</html>
si quelqu 'un pouvait me donner de son temps pour le modifier pour qu'il soit fonctionnel et me donner des explications svp !Merci beaucoup de votre aide et bonne soirée ...
Mille merci !!