Problème vérification de formulaire aidez moi !!
Fermé
ferraioli
ferraioli
- Messages postés
- 11
- Date d'inscription
- jeudi 3 février 2011
- Statut
- Membre
- Dernière intervention
- 10 juin 2015
ferraioli
- Messages postés
- 11
- Date d'inscription
- jeudi 3 février 2011
- Statut
- Membre
- Dernière intervention
- 10 juin 2015
A voir également:
- Problème vérification de formulaire aidez moi !!
- Popup js dans php et vérification de formulaire sans effet... ✓ - Forum - PHP
- Php= Vérification login -> formulaire ✓ - Forum - PHP
- Vérificateur de formulaire ✓ - Forum - Webmaster
- Vérification champs formulaire avant envoi ✓ - Forum - Webmaster
- Verifications de formulaire en javascript ✓ - Forum - Javascript
4 réponses
Bonjour
La valeur de $compare que tu utilises pour ton test n'est pas la bonne.
Tu utilises une valeur qui vient d'être tirée au sort pendant la présente exécution du script, alors que ton utilisateur a rempli le formulaire la fois précédente. Je détaille :
Ton script s'exécute pour la 1ère fois. tu présente un formulaire à ton visiteur avec une certaine addition qui donne un certain résultat. Comme le formulaire n'est pas rempli, isset($_POST['inviamo']) est faux et la vérification à la fin du formulaire n'est pas faite.
L'utilisateur remplit et valide le formulaire : ton script est appelé à nouveau.
IL RECALCULE DONC une nouvelle valeur aléatoire pour $compare. Quand tu vérifieras cette valeur par rapport à celle saisie par le visiteur, elle n'a aucune raison d'être égale.
Deux solutions (il y en a certainement d'autres) : tu mémorises la valeur à vérifier dans une variable de session, ou dans un champ hidden de ton formulaire.
La valeur de $compare que tu utilises pour ton test n'est pas la bonne.
Tu utilises une valeur qui vient d'être tirée au sort pendant la présente exécution du script, alors que ton utilisateur a rempli le formulaire la fois précédente. Je détaille :
Ton script s'exécute pour la 1ère fois. tu présente un formulaire à ton visiteur avec une certaine addition qui donne un certain résultat. Comme le formulaire n'est pas rempli, isset($_POST['inviamo']) est faux et la vérification à la fin du formulaire n'est pas faite.
L'utilisateur remplit et valide le formulaire : ton script est appelé à nouveau.
IL RECALCULE DONC une nouvelle valeur aléatoire pour $compare. Quand tu vérifieras cette valeur par rapport à celle saisie par le visiteur, elle n'a aucune raison d'être égale.
Deux solutions (il y en a certainement d'autres) : tu mémorises la valeur à vérifier dans une variable de session, ou dans un champ hidden de ton formulaire.
ferraioli
17 mai 2013 à 15:29
- Messages postés
- 11
- Date d'inscription
- jeudi 3 février 2011
- Statut
- Membre
- Dernière intervention
- 10 juin 2015
17 mai 2013 à 15:29
Bonjour, merci pour ta réponse, effectivement je comprend mieu, des fois aux hasard mon script marche !
Mais je ne vois pas comment faire ça avec une variable session ou hidden :/
Pourrais tu me donner un exemple?
Cordialement
Mais je ne vois pas comment faire ça avec une variable session ou hidden :/
Pourrais tu me donner un exemple?
Cordialement
méthode avec champ hidden :
Oublie ta variable $compare
Tu ajoutes dans ton formulaire
Comme ça, tu recevras la bonne réponse avec le formulaire.
Au lieu de vérifier
tu dois vérifier
Ça n'est pas plus compliqué que ça...
Oublie ta variable $compare
Tu ajoutes dans ton formulaire
<input type="hidden" name="verif" value="<?php echo $numero1+$numero2; ?>" />
Comme ça, tu recevras la bonne réponse avec le formulaire.
Au lieu de vérifier
if ($compare==$verifica)
tu dois vérifier
if ($_POST['verif']==$verifica)
Ça n'est pas plus compliqué que ça...
ferraioli
21 mai 2013 à 02:07
- Messages postés
- 11
- Date d'inscription
- jeudi 3 février 2011
- Statut
- Membre
- Dernière intervention
- 10 juin 2015
21 mai 2013 à 02:07
Merci beaucoup le père :)
Aurais tu des conseil a me donner pour mieu protèger mon code ?
Cordialement
Aurais tu des conseil a me donner pour mieu protèger mon code ?
Cordialement