Un tchat avec une vérification des données
Résolu/Fermé
Utilisateur anonyme
-
Modifié par jordane45 le 2/05/2015 à 17:36
Utilisateur anonyme - 2 mai 2015 à 18:09
Utilisateur anonyme - 2 mai 2015 à 18:09
A voir également:
- Un tchat avec une vérification des données
- Tchat adulte ✓ - Forum Réseaux sociaux
- Vérification lien - Guide
- Germain veut gérer les activités de son association avec une base de données. il a commencé à créer des tables dans un fichier, mais il n’est pas sûr du résultat. le fichier à télécharger contient uniquement le schéma de cette base de données. en l’état actuel, que peut-on en déduire ? - Forum Outlook
- Coco tchat - Forum Réseaux sociaux
- T'chat gratuit pour adulte - Forum Mail
1 réponse
jordane45
Messages postés
38109
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mars 2024
4 634
Modifié par jordane45 le 2/05/2015 à 18:21
Modifié par jordane45 le 2/05/2015 à 18:21
Bonjour,
$_POST est envoyé à ton fichier d'insertion en BDD ... il n'est pas présent sur la page de ton formulaire....
A la limite, tu peux :
Soit faire une requête SELECT (en mettant le pseudo du gars dans le WHERE) pour voir s'il a déjà posté un message ...
Soit utiliser les variables de SESSION ( ou les COOKIES) pour "mémoriser" le fait qu'il ait déjà écrit.
Quoi qu'il en soit, je pense que tu devrais mettre TOUT ton code PHP directement dans ta première page au lieu de renvoyer vers minichat_post.php
A ce momment là .. la variable $_POST sera présente sur cette même page.....
Petit conseille, place ton code PHP au début de ta page plutôt qu'au milieu de ton code html...
ça rendra ton code plus simple à maintenir.
par exemple :
Cordialement,
Jordane
$_POST est envoyé à ton fichier d'insertion en BDD ... il n'est pas présent sur la page de ton formulaire....
A la limite, tu peux :
Soit faire une requête SELECT (en mettant le pseudo du gars dans le WHERE) pour voir s'il a déjà posté un message ...
Soit utiliser les variables de SESSION ( ou les COOKIES) pour "mémoriser" le fait qu'il ait déjà écrit.
Quoi qu'il en soit, je pense que tu devrais mettre TOUT ton code PHP directement dans ta première page au lieu de renvoyer vers minichat_post.php
<form action="" method="post">
A ce momment là .. la variable $_POST sera présente sur cette même page.....
Petit conseille, place ton code PHP au début de ta page plutôt qu'au milieu de ton code html...
ça rendra ton code plus simple à maintenir.
par exemple :
<?php //démarrage de la session session_start(); // Connexion à la base de données require_once "connexion_bdd.php"; //récupération des variables $pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $message = isset($_POST['message']) ? $_POST['message'] : NULL; // traitement du submit if($pseudo && $message){ // Insertion du message à l'aide d'une requête préparée $sql = "INSERT INTO minichat (pseudo, message) VALUES(?, ?)"; $params = array($pseudo, $message); $req = $bdd->prepare($sql); $req->execute($params); $_SESSION['a_poste'] = true; } //récupération des messages if($_SESSION['a_poste'] == true){ // Récupération des 10 derniers messages $sql = "SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0, 10"; $req = $bdd->prepare($sql); $req->execute($params); $reponse = $req->fetchAll(); } $reponse->closeCursor(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <form action="minichat_post.php" method="post"> <p> <label for="pseudo">pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br /> <label for="message">message</label> : <input type="text" name="message" id="message" /><br /> <input type="submit" value="Envoyer" /> </p> </form> <?php if($_SESSION['a_poste'] == true){ // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars) foreach($reponse as $donnees ){ echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>'; } }else{// Sinon, on affiche un message d'erreur echo '<p>Problème </p>'; } ?> </body> </html>
Cordialement,
Jordane
2 mai 2015 à 18:09