par
Nouveau » 19 août 2006, 17:53
Voici mon problème j'ai fais le tp du mini chat du site du zéro enfin j'ai copié collé le script du mini-chat de Mateo21 (ne m'en veuillez pas trop -_-) et en essayant une amelioration j'en suis arrivé a ce script).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
table
{
margin:auto;
width:500px;
height:100px;
border-collapse:collapse;
text-align:left;
}
textarea
{
background: black;
color: red;
}
.maclass
{
background-color: black;
color: red;
}
th
{
border: 1px solid red;
color:yellow;
text-align:center;
}
td
{
border: 1px solid black;
color:red;
}
body{
background-image:url("espace.jpg");
background-attachment: fixed;
background-position: center;
}
</style>
<body>
<a href="http://www.didiersuper.com"><div align="center"><img src="http://www.didiersuper.com/images/banniere_didiersuper_anime.gif"></div></a>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "*****", "*****");
mysql_select_db("*****");
// On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
$pseudo=htmlentities ($_POST['pseudo']);
$message=htmlentities ($_POST['message']);
$requete1 = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,1 ");//les variables ancienmess valent les messages trouvés dans la base
$ancienmess = mysql_fetch_array($requete1);
if($ancienmess['$message'] != $_POST['$message'] AND $ancienmess['$pseudo']!=$_POST['$pseudo']) {
mysql_query("INSERT INTO chat VALUES('', '$pseudo', '$message')");
}
else{
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// On se déconnecte de MySQL
mysql_close();
}
}
// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages
// Tout d'abord le formulaire :
?>
<form action="mini_chat.php" method="post">
<div align="center"> Pseudo </div> <div align="center"> <input type="text" name="pseudo" class="maclass" /> </div>
<div align="center"> Message </div> <div align="center"> <textarea cols="15" rows="5" name="message" /></textarea> </div>
<div align="center"><input name="boutonenvoyerimage" type="image" onClick="submit" src="ENVOYER.jpg" ></div>
</form>
<?php
// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "****", "*****");
mysql_select_db("****");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM chat ORDER BY Id DESC LIMIT 0,10");
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse))
{
?>
<table>
<thead>
<tr>
<th><strong><?php echo $donnees['pseudo']; ?></strong> </th>
</tr>
</thead>
<br>
<tr>
<td><?php echo $donnees['message']; ?></td>
</tr>
</table>
<?php
// On se déconnecte de MySQL
}
}
}
}
// Fin de la boucle, le script est terminé !
?>
</body>
</html>
Le double post est maintenant impossible mais je ne peux plus poster du tout.
Je sais que plusieurs ont eu des problèmes pour eviter le double post mais je ne suis pas parvenue à regler mon problème malgès leurs explications.
Si quelqu'un pouvait m'aider à ameliorer mon code.

Voici mon problème j'ai fais le tp du mini chat du site du zéro enfin j'ai copié collé le script du mini-chat de Mateo21 (ne m'en veuillez pas trop -_-) et en essayant une amelioration j'en suis arrivé a ce script).
[php] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Mini-chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<style type="text/css">
table
{
margin:auto;
width:500px;
height:100px;
border-collapse:collapse;
text-align:left;
}
textarea
{
background: black;
color: red;
}
.maclass
{
background-color: black;
color: red;
}
th
{
border: 1px solid red;
color:yellow;
text-align:center;
}
td
{
border: 1px solid black;
color:red;
}
body{
background-image:url("espace.jpg");
background-attachment: fixed;
background-position: center;
}
</style>
<body>
<a href="http://www.didiersuper.com"><div align="center"><img src="http://www.didiersuper.com/images/banniere_didiersuper_anime.gif"></div></a>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "*****", "*****");
mysql_select_db("*****");
// On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
$pseudo=htmlentities ($_POST['pseudo']);
$message=htmlentities ($_POST['message']);
$requete1 = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,1 ");//les variables ancienmess valent les messages trouvés dans la base
$ancienmess = mysql_fetch_array($requete1);
if($ancienmess['$message'] != $_POST['$message'] AND $ancienmess['$pseudo']!=$_POST['$pseudo']) {
mysql_query("INSERT INTO chat VALUES('', '$pseudo', '$message')");
}
else{
if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) // Si on a quelque chose à enregistrer
{
// On se déconnecte de MySQL
mysql_close();
}
}
// Que l'on ait enregistré des données ou pas...
// On affiche le formulaire puis les 10 derniers messages
// Tout d'abord le formulaire :
?>
<form action="mini_chat.php" method="post">
<div align="center"> Pseudo </div> <div align="center"> <input type="text" name="pseudo" class="maclass" /> </div>
<div align="center"> Message </div> <div align="center"> <textarea cols="15" rows="5" name="message" /></textarea> </div>
<div align="center"><input name="boutonenvoyerimage" type="image" onClick="submit" src="ENVOYER.jpg" ></div>
</form>
<?php
// Maintenant on doit récupérer les 10 dernières entrées de la table
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "****", "*****");
mysql_select_db("****");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM chat ORDER BY Id DESC LIMIT 0,10");
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse))
{
?>
<table>
<thead>
<tr>
<th><strong><?php echo $donnees['pseudo']; ?></strong> </th>
</tr>
</thead>
<br>
<tr>
<td><?php echo $donnees['message']; ?></td>
</tr>
</table>
<?php
// On se déconnecte de MySQL
}
}
}
}
// Fin de la boucle, le script est terminé !
?>
</body>
</html>[/php]
Le double post est maintenant impossible mais je ne peux plus poster du tout.
Je sais que plusieurs ont eu des problèmes pour eviter le double post mais je ne suis pas parvenue à regler mon problème malgès leurs explications.
Si quelqu'un pouvait m'aider à ameliorer mon code. :? :x :D