Doubles posts PHP

Résolu/Fermé
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 - 27 sept. 2008 à 12:17
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 - 27 sept. 2008 à 15:51
Bonjour,

Je sèche sur ce problème pourtant classique.

Ma méthode pour empêcher le double post (après refresh par exemple): Je compare le dernier message de l'utilisateur dans la BDD avec le contenu de la variable post.

Le problème: ça marche nickel, sauf quand le message contient des retours à la ligne...

Si vous connaissez un truc, je suis preneur !

Merci
A voir également:

6 réponses

Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 450
27 sept. 2008 à 12:21
Certainement un encodage différent. Regarde l'encodage de ta base de donnée et l'encodage des données renvoyer... (tu vas certainement avoir besoin de truc genre utf8_encode ou utf8_decode ...)
0
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 19
27 sept. 2008 à 12:56
J'ai beau modifier l'encodage du champ ou se trouve le commentaire (utf-8; ASCII) ça ne change rien au problème, idem si je met l'encodage de la page ou se trouve le formulaire en utf-8 ou en ISO-8859.
0
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 450
27 sept. 2008 à 12:58
avec des vard_dump, tu vois al différence ou pas entre les deux ? (variables reçu de la bdd et variable reçu via le post ou get selon ton form...)?
0
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 19
27 sept. 2008 à 13:06
Non, var_dump de la BDD répond string(8), pareil que var_dump($_POST)
0
Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 450
27 sept. 2008 à 14:58
Je désirais plutot savoir ce que tu recevais comme valeur plutôt que comme type....
Est-ce que tu peux repérer à l'oeil les différences? si oui, cela signifie bien qu'il y a une différence du codage (désiré ou non... peu importe ;) ). D'ailleurs si tu utilises des fonctions du genre htmlentities pour insérer les valeurs dans ta bdd, n'oublie aps d'utiliser les fonctions inverses genre html-entity-decode afin de pouvoir comparer... (ou tu compares après avoir exécute les mêmes transformations sur la valeur reçu par post...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 19
27 sept. 2008 à 15:32
arg t'as raison

quand je poste: "ggg[return]" dans mon formulaire

si je fais un echo de ma variable post, j'ai: "ggg\r\n"
par contre si je fais un echo du message une fois inséré dans la bdd, j'ai: "ggg "

donc forcément, c'est différent, donc mon if autorise l'insertion
0
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 19
27 sept. 2008 à 15:51
Problème résolu...

ma variable post était affublée de mysql_real_escape_string() et de htmlspecialchars() d'où les \r\n qui embêtaient.

Merci Archeus01
0