Problème vérification de formulaire aidez moi !!
ferraioli
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
ferraioli Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
ferraioli Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonsoir, ça fait 4h que j'essaye de faire un script que celon moi est correct ! mais ça va paaas !!!
J'ai fait genre un rapport de bug avec deux textarea
type de bug et explication du bug.
ça marche niquel quand j'écrit dans les textarea le type et l'explication et je click sur le bouton envoyer, ça envoi bien le bug dans ma base de donné.
Aprés j'ai voulut faire une vérification avant d'envoyer le bug dans la base de donné.
Donc il faut répondre a une addition en gros au hasard genre 5+5 ou 1+3 etc..
Si la réponse est corrécte le bug est envoyé dans la base de donné sinon echo ' Votre addition est fausse';
Bref voici le code je vous en prie aidez moi :)
Cordialement ferraioli.
J'ai fait genre un rapport de bug avec deux textarea
type de bug et explication du bug.
ça marche niquel quand j'écrit dans les textarea le type et l'explication et je click sur le bouton envoyer, ça envoi bien le bug dans ma base de donné.
Aprés j'ai voulut faire une vérification avant d'envoyer le bug dans la base de donné.
Donc il faut répondre a une addition en gros au hasard genre 5+5 ou 1+3 etc..
Si la réponse est corrécte le bug est envoyé dans la base de donné sinon echo ' Votre addition est fausse';
Bref voici le code je vous en prie aidez moi :)
<?php $numero1 = rand(0, 10); $numero2 = rand(0, 10); $addition = "+"; $compare = $numero1 + $numero2; ?> <!DOCTYPE html> <div id="top"> <p><span>» Bug tracker</span>» Bug tracker</p> </div> <div id="content"> <img src="style/img/topContent.png"> <div id="text"> <div class="title">Aidez nous à résoudre nos bugs, envoyez par ticket le bug que vous avez rencontré !</div> <br> <br> <center> <div class="right" style="float:center; text-align:center;">Type de bug : </div> <form method="post" action="" id="fallo"> <textarea name="textarea" id="textarea" rows="2" style="background-color:cyan; opacity:0.5;"></textarea> <br> <br> <br> <div class="right" style="float:center; text-align:center;">Explication du bug : </div> <textarea name="textarea2" id="textarea2" rows="3" style="background-color:cyan; opacity:0.5;" ></textarea> <br> <br> <br> <?php echo $numero1; ?> <?php echo $addition; ?> <?php echo $numero2; ?>= <input name="verifica" id="verifica" type="text" style="background-color:white; text-align:center;"> <br> <br> <br> <input name="inviamo" id="inviamo" type="submit" class="btn btn-inverse" value="Envoyer"/ > </form> </center> <div class="clear_right"></div></div> <img src="style/img/bottomContent.png"> </div> <?php //Si on click sur le bouton envoyer// if(isset($_POST['inviamo'])) { //construction de varable// $textarea = htmlentities($_POST['textarea']); $textarea2 = htmlentities($_POST['textarea2']); $verifica = htmlentities($_POST['verifica']); $connexion = mysql_connect("localhost", "root", ""); $database = mysql_select_db("ancestra_all"); // si les champs sont vides // if($textarea==NULL OR $textarea2==NULL OR $verifica==NULL) { echo'<center>'; echo "Vos champs sont vides"; echo'</center>'; } //Sinon envoyer la requete dans la base de donnéé// else { if ($compare==$verifica) { $riquesta='insert into cms_bug_tracker (type, explication, author) values ("'.$textarea.'", "'.$textarea2.'", "pseudo" )'; $resultato=mysql_query($riquesta); echo"Votre message a eté envoyer"; } else { echo"Votre addition est fausse"; } } } ?>
Cordialement ferraioli.
A voir également:
- Problème vérification de formulaire aidez moi !!
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Verification lien internet - Guide
- Verification windows 11 - Guide
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.
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...