Pb de recupération de variable
Résolu
Aeyrin
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Aeyrin Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Aeyrin Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un formulaire d'inscription à remplir et je dois vérifier dans la BDD que l'adresse mail et le pseudo saisies ne sont pas déjà existant, jusque là pas de problème.
la vérification se fait sur une page où on doit accepter les CGV avec un checkbox. Si celui ci n'est pas coché, on script JavaScript est appelé pour le signaler. Seulement, après affichage de ce message, je perds mes variables (mail, pseudo et mot de passe).
J'ai tenté de les insérer directement dans la BDD seulement après le message il m'affiche "pseudo déjà existant" (ce qui est logique). J'ai donc essayé de "gruger" un peu en passant par des variables de session (je sais que ce n'est pas propre mais je n'ai plus d'idée) mais encore une fois, et là je ne sais pas pourquoi, après affichage du message, je perds ma variable de session.
je vous mets mon code si vous avez une idée pour me dépanner ça serait vraiment très sympathique parce que je deviens folle:
Merci d'avance
j'ai un formulaire d'inscription à remplir et je dois vérifier dans la BDD que l'adresse mail et le pseudo saisies ne sont pas déjà existant, jusque là pas de problème.
la vérification se fait sur une page où on doit accepter les CGV avec un checkbox. Si celui ci n'est pas coché, on script JavaScript est appelé pour le signaler. Seulement, après affichage de ce message, je perds mes variables (mail, pseudo et mot de passe).
J'ai tenté de les insérer directement dans la BDD seulement après le message il m'affiche "pseudo déjà existant" (ce qui est logique). J'ai donc essayé de "gruger" un peu en passant par des variables de session (je sais que ce n'est pas propre mais je n'ai plus d'idée) mais encore une fois, et là je ne sais pas pourquoi, après affichage du message, je perds ma variable de session.
je vous mets mon code si vous avez une idée pour me dépanner ça serait vraiment très sympathique parce que je deviens folle:
<?php session_start(); ?> <html> <head>...</head> <?php include("connect.php"); ?> <script type="text/javascript"> /*Vérifie si les CGV ont été acceptées*/ function gid(element) { return document.getElementById(element); } function verif_condition() { if(gid('condition').checked==true) { document.forms['formulaire'].action='paiement_inscr.php'; gid('formulaire').submit(); } else if(gid('condition').checked==false) { alert('Vous devez accepter les termes de conditions générales de vente'); return false; } } </script> <body> <?php include("header.php"); include("menu.php"); include("gauche.php"); ?> <div id="corps"> <?php /*Coordonnées du formulaire d'inscription*/ $email=htmlspecialchars($_POST['mail']); $pseudo=htmlspecialchars($_POST['pseudo']); $pass=htmlspecialchars($_POST['pass']); $news=$_POST['news']; /*Vérification de l'existance*/ $query_donnes="SELECT COUNT(*) FROM adherent WHERE pseudo='".$pseudo."' OR mail_adh='".$mail."';"; $result_donnes=mysql_query($query_donnes,$connect); $nb=mysql_result($result_donnes,$result_donnes["pseudo"]); echo $_SESSION['email']=$email; if($nb!=0){ echo '<p>Pseudo déjà pris ou adresse mail déjà existante</p> <a href="javascript:history.go(-1)">Retour</a>'; } else if ($nb==0){ echo "ok"; } ?> <!--Choix de l'abonnement--> <p>Pour vous inscrire, vous devez souscrire à une de nos offres :</p> <form method="post" name="formulaire"> ... <!--CGV--> <input type="checkbox" name='condition' id='condition' /> Veuillez accepter les <a href="cga.pdf" target="_blank">Conditions Générales d'Utilisation</a> <br/> <input type="submit" value="Valider" name="valid" onClick="verif_condition();" /> </form> </div> <?php include('footer.php'); ?> </body> </html>
Merci d'avance
A voir également:
- Pb de recupération de variable
- Récupération de déchets - Guide
- Convertisseur récupération de texte - Guide
- Impossible de récupérer mon compte gmail - Guide
- Recuperation video youtube - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
2 réponses
je t'ai un peu modifié ton code et mis un principe de ré-affichage des valeurs déjà saisies
<html> <head>...</head> <?php include("connect.php"); ?> <script type="text/javascript"> /*Vérifie si les CGV ont été acceptées*/ function verif_condition(element1) { var obj1=document.getElementById(element1); if obj1.checked == false){ alert('Vous devez accepter les termes de conditions générales de vente'); return false; //ce qui bloque l'envoi du form }else{ document.forms['formulaire'].action='paiement_inscr.php'; return true; //ce qui autorise l'envoi du from } } </script> <body> <?php include("header.php"); include("menu.php"); include("gauche.php"); ?> <div id="corps"> <?php //init des variables à vide $email=""; $pseudo=""; $pass=""; $news=""; $cgv=""; $affiche_form=true; //il ne faut faire le traitement de la verif exitence email que quand le bouton valid a été cliqué if(isset($_POST['valid'])){ /*Coordonnées du formulaire d'inscription*/ $email=mysql_realescape_string($_POST['mail']); $pseudo=mysql_realescape_string($_POST['pseudo']); $pass=mysql_realescape_string($_POST['pass']); $news=mysql_realescape_string($_POST['news']); $cgv=$_POST['condition']; /*Vérification de l'existance*/ $query_donnes="SELECT COUNT(*) FROM adherent WHERE pseudo='".$pseudo."' OR mail_adh='".$mail."';"; $result_donnes=mysql_query($query_donnes,$connect); $nb=mysql_result($result_donnes,$result_donnes["pseudo"]); if($nb!=0){ $affiche_form=true; echo '<p>Pseudo déjà pris ou adresse mail déjà existante</p>'; } else if ($nb==0){ $affiche_form=false; //on ne réaffiche pas le formulaire //et la tu enregistre dans ta BDD } } ?> <!--Choix de l'abonnement--> <?php //affichage du formulaire if($affiche_form ==true){ ?> <p>Pour vous inscrire, vous devez souscrire à une de nos offres :</p> <form method="post" name="formulaire" action="" onsubmit="return verif_condition('condition');" > <input type="text" name="email" value="<?php echo $email; ?>" /> <!-- même principe pour les autres champs --> ... <!--CGV--> <input type="checkbox" name='condition' id='condition' value="oui" <?php if($cgv=="oui") echo "checked"; ?>/> Veuillez accepter les <a href="cga.pdf" target="_blank">Conditions Générales d'Utilisation</a> <br/> <input type="submit" value="Valider" name="valid" /> </form> <?php } ?> </div> <?php include('footer.php'); ?> </body> </html>
Deja merci pour la reponse.
Je ne m'etais peut etre pas bien fait comprendre, mes variables venaient de la page préédente et je devais les garder jusqu'à la page suiavnte (donc sur 3 pages en gros).
Une solution a été trouvé, j'ai changer le javascript par:
ce qui permet de bloqué le bouton tant que le checkbox n'est pas coché.
Encore merci
Je ne m'etais peut etre pas bien fait comprendre, mes variables venaient de la page préédente et je devais les garder jusqu'à la page suiavnte (donc sur 3 pages en gros).
Une solution a été trouvé, j'ai changer le javascript par:
function ChangeStatut(formulaire) { if(formulaire.regagree.checked == true) { formulaire.validation.disabled = false } if(formulaire.regagree.checked == false) { formulaire.validation.disabled = true } }
ce qui permet de bloqué le bouton tant que le checkbox n'est pas coché.
Encore merci