[RESOLU] Comment associer ensemble deux formulaires?

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 : [RESOLU] Comment associer ensemble deux formulaires?

Re: Comment associer ensemble deux formulaires?

par niconicochan » 28 juil. 2014, 13:41

Merci Elie,

J'ai en fait trouvé le problème. :D
Au préalable, j'avais écrit toute fonction session_start(); tout en haut de page,
afin de m'assurer qu'elle précède tout code générant une sortie vers le navigateur.

Ensuite, j'ai inséré cette page dans une autre page en utilisant la fonction <?php include("mon_fichier.php");?>
Dès lors, tout code générant une sortie vers le navigateur sur cette autre page entre le haut de la page
jusqu'à la fonction include(); dérangeait l'exécution de la fonction session_start();
J'ai donc dû sortir la fonction session_start(); de l'include pour le mettre tout en haut
de la page contenant la fonction include();

Je crois que include dit bien ce qu'il veut dire: il permet d'inclure une page B dans une page A,
ce qui signifie qu'on se retrouve alors avec plus qu'une seule page, la page A alors qu'avant on en avait deux: page A et page B.

Re: Comment associer ensemble deux formulaires?

par Elie » 25 juil. 2014, 20:08

Hello,

Beaucoup de trop de texte et pas assez de blabla ...
Tu peux nous montrer tes 2 formulaires ?

Re: Comment associer ensemble deux formulaires?

par niconicochan » 25 juil. 2014, 18:28

Bon, moi je suis vraiment bloqué! #-o
dur,dur,...

J'ai essayé de continuer toujours dans la même voie.
Je tente d'incorporer le code de la page du formulaire du CAPTCHA dans la page du formulaire d'identification (nom d'utilisateur et mot de passe),
ainsi que d'incorporer le code de la page de traitement de formulaire du CAPTCHA dans la page de traitement de formulaire d'identification.

J'ai ensuite fait des tests:
dans la page de traitement de formulaire il existe des variables pour le nom d'utilisateur, pour le mot de passe et pour la réponse à la question du CAPTCHA
(c'est un CAPTCHA question/réponse). Ces variables fournies par l'utilisateur sont donc bien passées "de l'autre côté" (côté page de traitement de formulaire),
ce qui est bien. Mais il y a une variable qui ne passe pas de la page du formulaire à la page de traitement de formulaire: c'est la variable de la question
qui a été posée à l'utilisateur (le programme choisi une question au hasard).
C'est en fait embêtant car sans cette variable, dans la page traitement de formulaire l'ordinateur ne sait pas avec quelle question posée il faut comparer
la réponse, et ne peut donc pas dire si le résultat est juste ou pas.
Je cherche un moyen d'envoyer la variable de la question choisie de la page de formulaire à la page de traitement de formulaire.
La chose chose à laquelle j'ai pensé pour cela ce sont les champs cachés. J'ai essayé vainement d'écrire le nom de la variable dans nom=""
et valeur="" en pensant au petit bonheur la chance mais ca ne fonctionne pas.
Je ne sais pas si je suis dans la bonne voie mais j'ai la conviction que si j'arrive à envoyer cette varible manquante dans la page de traitement
de formulaire alors c'est réussi.
Mais ça, je n'y arrive pas :(
Si quelqu'un peut m'aider c'est vraiment sympa.

Comment associer ensemble deux formulaires?

par niconicochan » 25 juil. 2014, 13:29

Bonjour,

1)J'ai un formulaire d'identification (avec une page pour le formulaire et une autre pour le traitement du formulaire) nom d'utilisateur/mot de passe.
Ce programme fonctionne avec une session.
Ca marche très bien.
2)J'ai un formulaire pour un CAPTCHA (avec une page pour le formulaire et une autre pour le traitement du formulaire).
Ce programme fonctionne aussi avec une session.
Ca marche très bien aussi.


Les deux programmes fonctionnent parfaitement mais ils sont dissociés. J'aimerais maintenant pouvoir les associer ensemble.
Hors, je voudrais éviter à l'utilisateur de saisir le champs du CAPTCHA sur une page et ceux de ses données d'identification sur une deuxième page.
Je voudrais que tout soit sur une seule page.

Que me conseilleriez-vous sur la manière d'associer les deux programmes ensemble?



Ce que j'ai essayé de faire:

I. J'ai essayé d'intégrer le programme du CAPTCHA dans le programme d'identification.
J'ai pour cela intégré la page du formulaire du CAPTCHA dans la page du formulaire d'identification avec un include
et j'ai intégré la page du traitement de formulaire du CAPTCHA dans la page de traitement de formulaire d'identification avec un include.

II. J'ai fait du bouton envoi pour l'identification un bouton envoi à la fois pour l'identification et le CAPTCHA. Pour cela, dans la page
de formulaire du CAPTCHA j'ai supprimé le bouton envoi et les balises form afférentes et du coup le bouton pour écrire la réponse
du CAPTCHA est rattaché au bouton envoi initialement prévu que pour les données d'identification nom d'utilisateur et mot de passe.
Vous suivez?

J'ai alors un problème causé par la ligne de code session_start() se trouvant dans la page de formulaire du CAPTCHA:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at
"nom de la page du formulaire d'identification qui contient l'include avec la page du formulaire du captcha")
in "page de formulaire du captcha" à la ligne où est écrit session_start;
Si je fais fis de cette ligne, en la mettant en commentaire session_start => /*session_start*/
je n'ai plus d'indication, je peux rentrer toutes mes données sur mon site mais le CAPTCHA permet d'entrer
dans la session à accès réservé que la réponse au CAPTCHA soit juste ou non.
En fait, je crois que le navigateur ne considère pas toute réponse comme juste mais je crois
qu'il ne regarde tout simplement pas du tout la réponse tapée par l'utilisateur.



Si vous pouvez m'aider c'est gentil car je bloque depuis un bon moment.
Je ne sais pas si la piste aventureuse que j'ai prise est adéquate ou non.
Si oui, pouvez-vous m'aider à continuer dans ce sens car je bloque?
Si non, pouvez-vous me dire comment envisager une autre manière de permettre l'association des programmes?