[résolu] traiter 2 formulaires imbriqués

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 : [résolu] traiter 2 formulaires imbriqués

Re: [résolu] traiter 2 formulaires imbriqués

par sam12 » 30 sept. 2011, 16:22

Si tu peux me montrer un exemple, je serais intéressé.
Je ne vois pas comment tu peux rappeler le 2e form si certains champs sont faux, sur la même page. Normalement tu seras bloqué par le fait que tu n'as pas rappelé le 1er form avant.
Peux-tu me mettre un petit bout de code pour que je comprenne mieux? Tu m'intrigues :D

Merci ;)

Re: [résolu] traiter 2 formulaires imbriqués

par Mazarini » 30 sept. 2011, 15:40

Pas sur une même page html, mais par un même script php.

Re: [résolu] traiter 2 formulaires imbriqués

par sam12 » 30 sept. 2011, 12:49

Au fait j'ai vu le probleme autrement.
Vu que le second formulaire apparait que si l'upload réussit, j'ai décidé de traiter le 2nd formulaire sur une autre page, tout en gardant les valeurs entrées par le membre en post.
Donc soit il a tout bon du 1er coup et je rentre les infos dans la bdd, soit je reaffiche les valeurs déjà indiquées et je traite sur la 2nde page.
Le seul inconvénient avec cette méthode est que je suis "obligé" de passer le nom du fichier en hidden.

Sinon je comprends ta solution, merci pour l'explication ;)
Je pense que cette solution n'était pas envisageable dans ma situation. Si je comprends bien cette solution est plutôt pour un traitement sur la même page.

Re: [résolu] traiter 2 formulaires imbriqués

par Mazarini » 30 sept. 2011, 10:00

La variable cachée permet de savoir ce que tu dois faire pour traiter la réponse de l'utilisateur.

Si la variable caché n'est pas défini : affichage du premier formulaire vide ou avec les valeurs par défaut

Si la variable cachés est "traitement formulaire 1" tu controles la saisie, fait le traitement et réaffiche le formulaire 1 en cas de problème ou si c'est ok, affiche le formulaire 2

Si la variable cachés est "traitement formulaire 2" tu controles la saisie, fait le traitement et affiche le formulaire 2 si problème ou ce que tu veux si tout est ok.

Re: traiter 2 formulaires imbriqués

par sam12 » 29 sept. 2011, 02:09

On s'est mal compris, ce ne sont pas les formulaires qui sont imbriqués mais leur traitement.
Je pensais que le bout de code était assez explicite :?

Sinon probleme résolu.
Merci pour vos réponses.

Re: traiter 2 formulaires imbriqués

par Cyrano » 28 sept. 2011, 20:56

En HTML, l'imbrication de formulaire est interdite.

La solution serait que le formulaire imbriqué se trouve dans un iframe à l'intérieur de l'autre formulaire, autrement, c'est invalide. Mais de cette manière, le formulaire « imbriqué » serait traité indépendamment.

Re: traiter 2 formulaires imbriqués

par sam12 » 28 sept. 2011, 13:00

Tout d'abord, merci pour ta réponse.

Si je comprends bien, tu veux me faire traiter sur la même page (ou une autre). Je n'ai par contre pas compris le pourquoi de l'input caché.
Si j'ai bien compris, ta solution n'est pas envisageable vu que le form est dans le if(isset($_FILES['monfichier'])) donc pour atteindre le formulaire, il faudrait renvoyer un fichier et en même temps appuyer sur le submit du formulaire (si tu vois ce que je veux dire), solution déjà impossible mais ne marchera pas vu qu'il faut valider toutes les étapes précédentes (fichier existant, taille etc...).
Comme tu peux le voir, le form est dans un else qui vérifie l'extension du fichier.

Re: traiter 2 formulaires imbriqués

par Mazarini » 28 sept. 2011, 11:36

Dans le nouveau formulaire, tu dois préciser le parametre action et traiter le formulaire dans la page PHP associée.

Le plus simple est d'ajouter un input caché "OPERATION" dans tes formulaires et de faire le traitement en fonction de sa valeur.

[résolu] traiter 2 formulaires imbriqués

par sam12 » 28 sept. 2011, 02:19

Bonjour à tous,

Je souhaite après qu'un upload de fichier soit effectué, afficher un formulaire (une sorte de fiche de renseignements). Le probleme est que ce formulaire est dans le isset du $_FILES.
En gros voici le code:
if(isset($_FILES['monfichier']))
{
....

if(!(in_array($extensionFichier, $extensionsAutorisees)))
					{
						echo "<br/>Le fichier n'a pas l'extension attendue";
					}
		
					elseif ($tailleFichier > $maxTaille)
					{
						echo " <br />Le fichier est trop gros";
					}
		
		
					else
					{
					echo "Votre fichier a été uploadé avec succès. Merci de remplir ce formulaire.";	
						      ?>
<form>....</form>

<?php } } ?>
Je passe les détails. Donc le formulaire étant imbriqué dans le $_FILES, je ne peux pas le traiter.
Avez-vous une solution ou plutôt une alternative à mon probleme?

Merci.