|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Benoit Développeur Web Inscription : janvier 2006 Messages : 69 ![]() |
Bonjour à tous,
Je voudrais vous soumettre un problème génant mais surtout très étrange, que je rencontre pour la première fois. J'ai un forlumaire à renseigner avec certains champs obligatoires. La validation de celui-ci se fait sur une autre page. Lorsque je ne renseigne pas tous les champs obligatoires, la page de validation me l'indique. Sur celle-ci j'ai un bouton Retour qui permet de revenir au formulaire. Code :
<input type="button" value="Retour" onClick="window.history.back();"> J'ai déjà fait des dizaines de formulaires, avec validation PHP ou ASP et je n'ai jamais rencontré ce cas de figure... D'habitude, le retour sur le formulaire ne pose aucun problème. Je ne comprend pas. Est-ce que c'est déjà arrivé à l'un d'entre vous et comment cela peut il se résoudre ? Je précise que je ne veux pas utiliser le javascript pour valider les champs. Je me demande si le problème ne vient pas de cette ligne de code qui se trouve sur la ligne 1 du formulaire, mais qui est indispensable puisqu'il s'agit d'un formulaire admin. Lorsque j'enlève cette ligne, le retour sur le formulaire semble ne plus poser aucun problème... Merci de votre aide. |
|
00
|
|
|
#2 | ||
|
Nouveau Membre du Club
![]() Inscription : septembre 2007 Messages : 43 ![]() |
Salut à toi,
Premièrement je tiens à te signaler que tout mes formulaire ne sont vérifiés que sur la même page je trouve ça plus pratique et que je n'ai jamais eu se genre de problème. Secondement si le session_start suprimme les champs de ton formulaire je ne sais pas non plus pourquoi, maitenant tu n'a pas précisé le mode d'envoi du formulaire Get, Post mais si il y a une solution facile, celle de te remettre les variables reçues dans la page de validation dans tes champs du formulaire, à l'aide de variables sessions vu que tu en utilise et en fesant un header("page de formulaire") ou en stockant ces variables dans l'adresse, et de traiter cette adresse ou ces variables sessions au début de ta page de formulaire. Je résume : -Dans ta condition "$formu=false;" (le formulaire est mal rempli) tu rajoute une ligne "$_SESSION[$formu]=$_POST[];" et tu remplace le "history.back();" par un "<? header("formulaire.php"); ?>" - dans ta page de formulaire au début tu rajoute pour chaque élement de ton formulaire dans value= ou default= tu ecrit par exemple pour le pseudo d'une personne: Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : novembre 2005 Messages : 122 ![]() |
J'ai exactement le même problème.
J'avais posté un topic il y a quelques semaines...sans réponses. Ce que je fais: j'enregistre tout dans des variables de session et quand l'utilisateur fait un history.back, je remplis le formulaire grace au $_session. Si quelqu'un a mieux, je suis preneur. |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : janvier 2007 Messages : 47 ![]() |
idem,je ne trouve pas ca logique de devoir utiliser les sessions
|
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 454 ![]() |
Bonjour,
+1 pour kaari kosaku au sujet du traitement du formulaire qui se trouve sur la même page que le formulaire. En cas d'erreur sur celui-ci celà évite une requête supplémentaire au serveur. Par contre je ne vois pas l'utilité de la session (même si je le faisais avant
__________________
Règle n°1 du forum francophone : Parler le français... Pas de question technique par MP, le forum est fait pour çà, merci. |
|
|
00
|
|
|
#6 | ||||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2007 Messages : 36 ![]() |
bonjour,
je ne traite qu'en PHP et j'ai le meme problème, cela fait un mois que je "poste" partout. voila le début de la résolution pour un formulaire de plusieurs pages. lorsque cela sera résolu je le mettrai en ligne pour tous. pour les listes déroulantes et les radio boutons je n'ai pas encore résolu le problème de l'affichage de la ligne saisie. ce que je fais est certainement lourd, mais j'attends que l'on m'éclaire - critiques bienvenues (si constructives ).J'ai ouvert une session dans la page d'appel du formulaire. Code :
page 1 je vérifie si la session est ouverte, puis je vérifies si je viens de la page de controle (car si je viens de la page 2 -de controle- c'est que j'ai eu une ou des erreurs) Code :
pour les champs texte de la page 1 Code :
![]() mais cela fonctionne ! page 2 dans cette page de controle, si j'ai une erreur je la stocke dans la table erreur : Code :
Code :
cela fonctionne. je souhaiterais savoir comment ne pas voir le code php dans le champ. et 2/ savoir comment faire pour une liste. @ +
|
||||||||||
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2007 Messages : 36 ![]() |
pour ceux qui sont intéressés :
pour eviter de voir le code dans le champ, j'ai déclaré la variable notée dans le champ, en $_SESSION["nomp"]=""; et le code a disparu du champ. cela fonctionne bien. pour réafficher une liste déroulante, basée sur un fichier.txt, je n'ai pas encore résolu le problème. @+ |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 11 ![]() |
Bonjour,
La vrai solution consiste à modifier le fichier de configuration php.ini et mettre session.cache_limiter = private au lieu de nocache ( vous pouvez mettre aussi public mais je garantis rien, lisez la doc officiel) !! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com