double post sur un refresh.

Petit nouveau ! | 6 Messages

10 nov. 2007, 00:48

bonsoir a tous,
Je suis en train de creer un systeme de commentaire sur mon site, j'ai cependant un petit probleme concernant le double post. Cet a dire que la personne peut poster plusieur fois le meme commentaire... et si par megarde elle refresh la page, elle repost malgres elle une fois de plus le commentaire...
je m'y prends comme ceci

Code : Tout sélectionner

//on verifie que un commentaire a ete poste, si oui on l'insere if(isset($_POST['commentaire']) && (!empty($_POST['commentaire']))) { $client = $_POST['client']; $article = $_POST['article']; $commentaire = nl2br($_POST['commentaire']); $note = $_POST['note_client']; mysql_query ("INSERT INTO shop_commentaire VALUES ('','$article', '$client', now(), '$note', '$commentaire')"); }
j'ai essaye en faisant une autre requete qui scan toute la table contenant les commentaires et dans le premier if de mettre un

Code : Tout sélectionner

&& ($_POST['commentaire'] != $resultat_premiere_requete['commentaire'])
mais sans succes, si quelqun pourrait me mettre sur le voie.
meci d'avance pour votre aide
Modifié en dernier par amnysia le 10 nov. 2007, 01:33, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

10 nov. 2007, 01:26

Inutile d'aller vérifier si le commentaire à déjà été posté... si on ajoute ne serait-ce qu'une lettre ou espace c'est mort.
Effectue une redirection (header() )vers ta page après l'enregistrement.

N'hésite pas à compléter le titre du sujet "Double post quoi ? comment ? à quel moment ?" :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

10 nov. 2007, 01:35

J'ai un peu de mal a saisir comment marche la fonction header(). Serait tu m'eclairer sur la maniere de creer une redirection vers ma page? parce que c'est vraiment nouveau pour moi , je n'en ai jamais entendu parler ;) effectivement je debute un peu ^^
meric ;)

Eléphant du PHP | 248 Messages

10 nov. 2007, 11:39

header('Location: tapage.php');

exit(); aussi si possible

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

10 nov. 2007, 11:50

Dans ce cas je déplace dans le Forum Débuter en PHP (les réponses sont par défaut plus adaptées aux débutants :wink: )

moileraz montre un bonne utilisation que tu dois ajouter juste après le traitement de l'insertion en base. Il y a des exemples dans la doc ou ici

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

10 nov. 2007, 14:07

Un grand merci pour vos reponse, je pense que avec la doc plus le tuto je devrais m'en sortir