Empecher les message double
anthony
-
Tonyjim Messages postés 71 Statut Membre -
Tonyjim Messages postés 71 Statut Membre -
Bonjour,
pouvez vous me dire comment empécher les message double dans ce code:
pouvez vous me dire comment empécher les message double dans ce code:
<!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">
form
{
text-align:center;
}
</style>
<body>
<?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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
// 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="minichat.php" method="post">
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
// On se déconnecte de MySQL
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
<?php
}
// Fin de la boucle, le script est terminé !
?>
</body>
</html>
A voir également:
- Empecher les message double
- Double ecran - Guide
- Whatsapp double sim - Guide
- Recuperer message whatsapp supprimé - Guide
- Message absence thunderbird - Guide
- Double driver - Télécharger - Pilotes & Matériel
8 réponses
ben on faite ce code sert juste a afficher les message poster par des personne mais moi je veut modifier ce code pour que les message ne peuvent pas se poster 2 fois le même c'est tout j'ai essayer de le modifier un peu mais sans succes donc voila je c'est pas comment faire
bonjour à tous ;)
en faite anthony, tu ne veux pas de double a la suite c'est ca ou tu ne veux pas de double dans toute la base de donnée?
parce que si tu ne fais pas de double dans la base de donnée, comme c'est un mini chat, le samedi le gars il viens et il dit bonjour et le dimanche il sais plus ! il doit dire salut et le lundi, ........ :-))
donc a mon avis, fais comme ca ......
Je t'ai ajoute aussi ceci :
se qui permet que ton utilisateur ne doive pas retaper son pseudo a chaque fois .....
Bonne journée ;)
en faite anthony, tu ne veux pas de double a la suite c'est ca ou tu ne veux pas de double dans toute la base de donnée?
parce que si tu ne fais pas de double dans la base de donnée, comme c'est un mini chat, le samedi le gars il viens et il dit bonjour et le dimanche il sais plus ! il doit dire salut et le lundi, ........ :-))
donc a mon avis, fais comme ca ......
<!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">
form
{
text-align:center;
}
</style>
<body>
<?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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
/*********** On Vérifie si le message précedent est identique *********************/
// On utilise la requête suivante pour selectionner le message précedant
$sql = mysql_query("SELECT * FROM minichat WHERE pseudo='$pseudo' ORDER BY ID DESC;");
$tableau_sql = mysql_fetch_array($sql);
// si le message précendent du memes utilisateur est identique au nouveau
if ($tableau_sql['message'] == $message)
{
echo "<script>alert(\"Vous avez déja écrit ce message\")</script>";
}
else
{
echo "<script>alert(\"Votre message a bien été envoyer\")</script>";
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
}
// 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="minichat.php" method="post">
<p>
Pseudo : <input type="text" name="pseudo" value="<?php echo $_POST['pseudo']; ?>" /><br />
Message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
// On se déconnecte de MySQL
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
<?php
}
// Fin de la boucle, le script est terminé !
?>
</body>
</html>
Je t'ai ajoute aussi ceci :
Pseudo : <input type="text" name="pseudo" value="<?php echo $_POST['pseudo']; ?>" /><br />
se qui permet que ton utilisateur ne doive pas retaper son pseudo a chaque fois .....
Bonne journée ;)
j'ai pas compris grand chose a ton explications. Pourrais tu reformuler pour que l'on comprenne et souligné les trucs correspondant dans ton code.
Merci
Merci
donc si j'ai bien compris tu veux un programme qui empéche un utilisateur de mettre 2 fois le meme message dans ta BDD.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je n'ai paseu le temps de tester le programme mais tu me diras si il marche. Je suis actuellement au boulot et je n'ai pas de logiciel pour tester mais code.
<!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">
form
{
text-align:center;
}
</style>
<body>
<?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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
************ ON VA FAIRE UNE REQUETE POUR VOIR SI LE TEXTE EXISTE DEJA ********
// Une requête SQL avec un "order by" sur un champ permettant une comparaison nette pour détecter le doublon.
$select="SELECT message FROM coursphp";
$resultat=mysql_query($select);
if ($resultat==$message)
{echo "<script>alert(\"Vous avez déja écrit ce message\")</script>";
}
else
{echo "<script>alert(\"Votre message a bien été envoyer\")</script>";
header('Location: ');
}
?>
// location: tu peux rediriger l'utilisateur sur la page désiré
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
// 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="minichat.php" method="post">
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
// On se déconnecte de MySQL
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
<?php
}
// Fin de la boucle, le script est terminé !
?>
</body>
</html>
<!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">
form
{
text-align:center;
}
</style>
<body>
<?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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
************ ON VA FAIRE UNE REQUETE POUR VOIR SI LE TEXTE EXISTE DEJA ********
// Une requête SQL avec un "order by" sur un champ permettant une comparaison nette pour détecter le doublon.
$select="SELECT message FROM coursphp";
$resultat=mysql_query($select);
if ($resultat==$message)
{echo "<script>alert(\"Vous avez déja écrit ce message\")</script>";
}
else
{echo "<script>alert(\"Votre message a bien été envoyer\")</script>";
header('Location: ');
}
?>
// location: tu peux rediriger l'utilisateur sur la page désiré
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
// 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="minichat.php" method="post">
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message : <input type="text" name="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</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", "sdz", "mot_de_passe");
mysql_select_db("coursphp");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
// On se déconnecte de MySQL
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']; ?></p>
<?php
}
// Fin de la boucle, le script est terminé !
?>
</body>
</html>