Aller au contenu

Pb contrôle formulaire avec include+history.back


Sujets conseillés

Posté (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é par PierreR
Posté

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

Posté

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 :wacko:

Peut tu me donner plus d'explication ? Si c'est plus facile, je peux te fournir mon fichier ajout.php3...

Merci encore

PierreR

Posté

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 parano
function 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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...