Conserver les champs d'un formulaire en cas d'erreur

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 : Conserver les champs d'un formulaire en cas d'erreur

par Patriboom » 11 déc. 2007, 03:17

Dans un tel cas, je choisis habituellement de mettre mon code de traitement dans la même page que le formulaire, dans ton cas: formulaire.php

La structure de ma page est donc:
 
  if (!isempty($_POST)) {

//Comme j'aime bien être sûr en double, je mets dans mon formulaire un repère vérifiable que j'appelle toujours fct=inscrit  (ci-bas)

  code de traitement 


  message de réussite ou d'échec

 }


cas d'échec ou de non-définition de $_POST, on affiche le formulaire, chaque case étant ayant un contenu de ce style:

Code : Tout sélectionner

<FORM name="formulaire" ACTION="formulaire.php?fct=inscrit" METHOD="POST" ...> <input name="blabla" value="<?php echo @$_POST["CaseRempliePrecedemment"]; ?>" >

en cas de réussite: tu affiches le message de réussite, l'avis d'envoi courriel et un lien vers la page de ton choix.

par Invité » 11 déc. 2007, 02:43

Je souhaiterais (en cas d'erreur de saisi du code de sécurité) que le visiteur évite de retaper tous les champs correctement remplis. Sous Netscape, ces champs restent visibles.

par Patriboom » 11 déc. 2007, 02:23

Pourquoi veux-tu récupérer les informations?

Si c'est pour d'éventuelles corrections, tu n'as qu'à rappeler ton enregistrement de la base de données et afficher son contenu dans les différentes cases.

Si c'est pour autre chose ... est-ce aussi bien dans le cas de succès que d'échec ou dans les seuls cas d'échec ou seuls les cas de succès nécessitent le retour du formulaire complété?

Conserver les champs d'un formulaire en cas d'erreur

par Zothique » 11 déc. 2007, 02:09

Bonjour à tous !
Sous IE 7 et Firefox, je ne parviens pas à conserver la saisie des champs de mon formulaire après qu'il soit validé.
J'utilise cryptograph comme CAPTCHA qui fonctionne très bien d'ailleurs, tout comme mes codes de saisis obligatoires.
J'ai essayé pas mal de trucs, comme l'insertion dans chaque champ de la propriété VALUE :
value= "<? echo $_POST [nom_de_mon_champ]; ?>"
J'ai tenté également l'utilisation des sessions afin de conserver mes variables, mais sans succès.
Lorsque je clique sur retour, en cas d'erreur du code de sécurité, les valeurs saisies disparaissent.
J'aimerais qu'elle restent à l'écran afin que le visiteur n'ait pas à tout retaper.
Quelle page dois-je modifier, celle du formulaire, celle de la vérification ou bien les deux ?
Quelqu'un pourrai-t-il m'aider ?
Voici le lien :
http://zothique.free.fr/crypt/formulaire.php
Cordialement.