PierreR Posté 4 Octobre 2005 Posté 4 Octobre 2005 (modifié) Bonjour à tous, Je cherche à modifier un script tout fait, pour faire en sorte qu'un formulaire puisse se réafficher avec les champs pré-rempli en cas d'erreur de saisie grace à une fonction JS history.back (par exemple). Je fais un controle de saisie de champ sur un formulaire et je n'arrive pas ajouter un include pour la mise en page : Comme ceci, sans le include, le history.back fonctionne très bien : if($_POST["pseudo"]==""){ echo "Il faut choisir un pseudo !!<a href=\"java script:history.back(1)\">Retour</a>"; exit;} Quand j'ajoute un include, le history.back ne fonctionne plus (en tout cas sur mon PC IE6/XP Home) : if($_POST["pseudo"]==""){ include 'entete.php3'; echo "Il faut saisir un pseudo !!<a href=\"java script:history.back(1)\">Retour</a>"; exit;} Mon exemple est ici : http://www.monjardinenligne.com/futursite/protec/ajout.php3 Une autre solution pour moi (encore plus satisfaisante) serait de réafficher directement le formulaire avec l'indication des champs mal saisis, sans passer par l'affiche d'une page avec un lien "Retour". Je suis débutant en php et j'ai fouillé partout depuis 3 jours, sans trouver de solutions que j'arrive à intégrer à mon script. Merci beaucoup pour votre aide. PierreR Modifié 4 Octobre 2005 par PierreR
Portekoi Posté 4 Octobre 2005 Posté 4 Octobre 2005 Bonjour, Tu as une autre solution. Sur ta page "ajout.php3", tu as un formulaire. Change l'adresse de ton formulaire <form action="" method="post"> par <form action="ajout.php3" method="post"> Rajoute en plus un champ 'hidden' qui s'appelle action et qui aura pour valeur 1 En haut de ton fichier ajout.php3 tu fais : $erreur = 0; if $action!= "" .... 1 - Tu récupères les variables 2 - Si un champ obligatoire est vide, tu mets $erreur = 1; If $erreur = 0 tu fais ton traitement tu rediriges la personne vers une page de confirmation Si erreur = 1, tu ne fais pas de redirection et, implicitement, tu vas réafficher la page ajout.php3. A toi de rajouter dans tes champs value=<?=$login?> par exemple Portekoi
PierreR Posté 4 Octobre 2005 Auteur Posté 4 Octobre 2005 Merci pour ton aide, Mais comme je suis archi débutant en php, c'est pas facile pour moi de dérouler dans ma page ce que tu me proposes de faire, même si je crois comprendre que cela me permettrai déviter une page "Retour", ce qui me plairai bien ! Modifier le form en ajoutant action="ajout.php3", jusqu'à la, ca va, mais à partir de Rajoute en plus un champ 'hidden'... ça se complique sérieusement pour moi Peut tu me donner plus d'explication ? Si c'est plus facile, je peux te fournir mon fichier ajout.php3... Merci encore PierreR
Portekoi Posté 6 Octobre 2005 Posté 6 Octobre 2005 Salut, J'ai vu que tu voulais essayer avec un pop up mais beaucoup d'internaute ont un anti-popup Reprends le fichier ci dessous : Fichier ajout.php3 <?//Fonction de paranofunction secu_variable($variable) { $variable = strip_tags($variable); $variable = addslashes($variable); $variable = trim($variable); $variable = str_replace("select","",$variable); $variable = str_replace("insert","",$variable); $variable = str_replace("update","",$variable); $variable = str_replace("delete","",$variable); $variable = str_replace("union","",$variable); $variable = str_replace("=","",$variable); return $variable; }//Le traitement ce fait ici//on récupère les variables $pseudo = secu_variable($_POST["pseudo"]);$passe = secu_variable($_POST["passe"]);$passe2 = secu_variable($_POST["passe2"]);$url = secu_variable($_POST["url"]);$pays = secu_variable($_POST["pays"]);$email = secu_variable($_POST["email"]);$action = secu_variable($_POST["action"]);//On fait notre traitement si action = add if ($action == "add") { //On vérifie que les variables ne soient pas vides if ($pseudo == "") { //si c'est le cas, on le note $erreur = $erreur . "pseudo_"; } if ($passe == "") { //si c'est le cas, on le note $erreur = $erreur . "passe_"; } if ($passe2 == "") { //si c'est le cas, on le note $erreur = $erreur . "passe2_"; } if ($email == "") { //si c'est le cas, on le note $erreur = $erreur . "email_"; } //On vérifie que la personne a bien saisie les meme mdp if ($passe != $passe2) { //si c'est le cas, on le note $erreur = $erreur . "diff_"; } //Si erreur = "", c'est que tout c'est bien passé if ($erreur == "") { //Tu fais ton traitement dans la base de données ici //On peut rediriger vers une page de confirmation header("location:confirmation.php"); exit; } }?><html><head><title>Inscription</title><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"><META NAME="ROBOTS" CONTENT="follow,index,all"><META HTTP-EQUIV="Content-Language" CONTENT="fr"><META NAME="Description" CONTENT="monjardinenligne"><META NAME="Keywords" CONTENT="Jardin, jardinier"><META NAME="Author" CONTENT=""><LINK REL=stylesheet TYPE="text/css" HREF="../styleContent.css"></head><body bgcolor="#66AA99"><table width="90%" border="0" cellspacing="2" cellpadding="10" align="center"><tr><td width="100%" colspan="2" bgcolor="#FFFFFF" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td rowspan="2" width="77"><img src="../images/transatVisuelPetitOK3.jpg" width="77" height="49"></td><td rowspan="2" width="10"><img src="../images/vide.gif" width="10" height="10"></td><td><p class="titre"><b><i>MonJardinEnLigne.com</i></b></td><td align="right" nowrap rowspan="2" valign="top"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"></font></b><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"></font></b></td></tr><tr><td valign="top"><p class="titre"><b><i>Bienvenue</i></b></td></tr></table></td></tr><tr><td width="100%" colspan="2" bgcolor="#FFFFFF" height="150"> </div><form action="ajout.php" method="post">DATE ET HEURE <table border="0" cellspacing="0" cellpadding="1" bgcolor="#669999" align="center"><tr><td><table border="0" align="center" cellpadding="3" cellspacing="2" class="bordure2" bgcolor="#FFFFFF"><tr align="center"><td colspan="2" nowrap><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3">Abonnez-vous gratuitement à MonJardinEnLigne.com</font></B><br><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En remplissant le formulaire ci-dessous</font></b><br><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Les champs marqués d'une * sont requis</font><br><br></td></tr><tr> <td colspan="2"> <? if ($erreur) { //On transforme erreur en tableau $erreur = split("_",$erreur); for($i=0;$i<sizeof($erreur)-1;$i++) { echo "Erreur sur le champ ".$erreur[$i] . "<br>"; } } ?> </td></tr> <tr> <td align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Chosissez un pseudo </font></strong></td><td width="50%" align="left"><font size="3"> <input name="pseudo" type="text" size="20" style="background-image: url(images/ombre_form2.gif); border: 1 solid #000000" value="<?=$pseudo?>"> <strong>*</strong> </font></td></tr> <tr> <td align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Chosissez un mot de passe </font></strong></td><td align="left"><font size="3"> <input name="passe" type="password" size="20" style="background-image: url(images/ombre_form2.gif); border: 1 solid #000000" value="<?=$passe?>"> <strong>*</strong> </font></td></tr> <tr> <td align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Confirmez le mot de passe </font></strong></td><td align="left"><font size="3"> <input name="passe2" type="password" size="20" style="background-image: url(images/ombre_form2.gif); border: 1 solid #000000" value="<?=$passe2?>"> <strong>*</strong> </font></td></tr> <tr> <td align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Adresse de site</font></strong></td><td align="left"><font size="3"> <input name="url" type="text" size="20" style="background-image: url(images/ombre_form.gif); border: 1 solid #000000" value="<?=$url?>"> </font></td></tr> <tr> <td align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Pays </font></strong></td><td align="left"><font size="3"> <input name="pays" type="text" size="20" style="background-image: url(images/ombre_form.gif); border: 1 solid #000000" value="<?=$pays?>"> </font></td></tr> <tr> <td align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">email </font></strong></td><td align="left"><font size="3"> <input name="email" type="text" size="20" style="background-image: url(images/ombre_form2.gif); border: 1 solid #000000" value="<?=$email?>"> <strong>*</strong> </font></td></tr> <tr> <td align="right"> </td><td align="center"> </td></tr> <tr> <td colspan="2" align="center"><font size="3"> <input type="hidden" name="action" value="add"> <input name="submit" type="submit" value="Envoyer"> </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><input type="button" value="Retour" onClick="history.go(-1)" name="button"></font></td></tr> </table></td></tr></table></form></td></tr></table></body></html> -------------------------------------------------------------------------------------------------- Fichier confirmation.php <html><head><title>Inscription</title><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"><META NAME="ROBOTS" CONTENT="follow,index,all"><META HTTP-EQUIV="Content-Language" CONTENT="fr"><META NAME="Description" CONTENT="monjardinenligne"><META NAME="Keywords" CONTENT="Jardin, jardinier"><META NAME="Author" CONTENT=""><LINK REL=stylesheet TYPE="text/css" HREF="../styleContent.css"></head><body bgcolor="#66AA99">Ok tout va bien :)</body></html> Vala, tu as tout ce qu'il faut Portekoi
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant