Retour arriere quand erreur dans formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Retour arriere quand erreur dans formulaire

par Aureusms » 24 févr. 2009, 13:48

Si javascript est désactivé, tu fais dans la page de validation du formulaire un retour à la page du formulaire via la fonction header où tu redonnes les valeurs envoyées via des variables de sessions enregistrées dans la page de validaion;, Comme un exemple est mieux qu'un grand discours :
<?php
session_start();
if (!isset($_POST["essai"]) or !isset($_POST["essai2"]))
{
  ?>
  <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"
  <label>
   Entrez votre essai
  </label>
  <input type="text" name="essai" value="<?php echo (isset($_SESSION["value_essai"] && !empty($_SESSION["value_essai"])) ? $_SESSION["value_essai"] : "" ;?>"/>
  <input type="text" name="essai2" value="<?php echo (isset($_SESSION["value_essai2"] && !empty($_SESSION["value_essai2"])) ? $_SESSION["value_essai2"] : "" ;?>"/>
  </form>
  <?php
}
else //formulaire posté
{
  $_SESSION["value_essai2"] = $_POST["essai2"];
  $_SESSION["value_essai"] = $_POST["essai"];

  if (empty($_SESSION["value_essai"]) or empty($_SESSION["value_essai2"]))
  header ("Location:".$_SERVER["PHP_SELF"]);
  else
  //suite du traitement
}
?>

par sylvaing26 » 24 févr. 2009, 10:53

Oui avec du Java

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript"> <!-- function validate(){ if ( ( document.form1.nom.value == "" ) ||( document.form1.prenom.value == "" ) ||( document.form1.mail.value == "" )||( document.form1.sujet.value == "" )||( document.form1.contenu.value == "" ) || ( document.form1.mail.value.search("@") == -1 ) || ( document.form1.mail.value.search("[.*]" ) == -1 ) ) { alert( "Assurez-vous d'avoir rempli correctement votre formulaire avant de le valider." ); } else { document.form1.action = "envoi.php" document.form1.method = "post" document.form1.submit(); } } //--> </script> <form name="form1"> <p style="text-indent:-3; margin-top:25; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;">Nom : <input type="text" name="nom" style="font-family:Arial; font-size:8pt;"></span></font></p> <p style="text-indent:-3; margin-top:10; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;">Prénom : <input type="text" name="prenom" style="font-family:Arial; font-size:8pt;"></span></font></p> <p style="text-indent:-3; margin-top:10; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;">E-mail : <input type="text" name="mail" style="font-family:Arial; font-size:8pt;"></span></font></p> <p style="text-indent:-3; margin-top:10; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;">Objet du message : <input type="text" name="sujet" style="font-family:Arial; font-size:8pt;"></span></font></p> <p style="text-indent:-3; margin-top:10; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;">Contenu du message :</span></font></p> <p style="text-indent:-3; margin-top:0; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;"><textarea name="contenu" rows="8" cols="46" style="font-family:Arial; font-size:8pt;"></textarea></span></font></p> <p style="text-indent:-3; margin-top:10; margin-right:24; margin-bottom:0; margin-left:71;" align="left"><font face="Arial"><span style="font-size:8pt;"><input type="submit" name="envoi" value="Envoyer" onclick="validate()" ></span></font></p> </form>
Même âs besoin que ton formulaire soit dans une page PHP :wink:

Retour arriere quand erreur dans formulaire

par fabrice88250 » 24 févr. 2009, 10:14

bonjour,
j'utilise un formulaire avec test des champs pour incrémenté ma base de données.
lorsque un champ a été oublié j'ai un message me disant (le champ XXX n'est pas renseigné. veuillez renseigner ce champ merci)
Donc lorsque ce message apparait je retoune en arrière mais pas de chance il faut re remplire entiérement le formulaire car les infos ne sont pas restées en mémoire.

Existe-il une solution pour que si on a une erreur, en retournant au formulaire on a toujours les infos que l'on a rentrées ?

merci