generer captcha et verifier saisie dans formulaire [RESOLU]

generer captcha et verifier saisie dans formulaire [RESOLU] - PHP - Programmation

Marsh Posté le 12-04-2005 à 12:44:14    

slt.  :hello:  
j'ai une page qui crée une image php dite captcha avec des lettre dedans du style --> aYnFcsL
 
lors de l'inscription le visiteur doit saisir ces lettres dans un champ de saisie et je veux que mon formulaire verifie la validite de ce code, en gros si code de l'image == code saisi par l'internaute.
 
dans mon formulaire j'ai ça
<img src="codeverif.php" />
 
qui affiche l'image
puis un input
<input type="text" name="verif" />
 
merci


Message édité par pmusa le 13-04-2005 à 17:50:52
Reply

Marsh Posté le 12-04-2005 à 12:44:14   

Reply

Marsh Posté le 12-04-2005 à 12:57:56    

et alors ??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 12-04-2005 à 18:04:36    

bah j'arrive pas a me demerder.  [:aloy]  
 
en fait il faudrait que je trouve un moyen de trouver/creer une variable qui contienne le code, par exemple aYnFcsL  
comme ça j'aurai un truc du style $chaine = aYnFcsL; et ça sera super facile de verfier si le code qu'il a saisi correspond au captcha.
 
edit:
et commme codeverif.php a un header () de type image je sais pas du tout comment faire.
je me suis dit ouèèè, vu que je fais un <img src="codeverif.php" /> je pourrai aussi recuperer la chaine, c'est comme une inclusion.... mais non.
 
@+


Message édité par pmusa le 12-04-2005 à 18:07:57
Reply

Marsh Posté le 12-04-2005 à 18:13:07    

pour avoir le "code" dans différentes pages : sessions (pas coockies, sinon possibilité de tricher)
 
pour generer les code : uniqueid


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 12-04-2005 à 18:17:39    

'vais essayer les sess.
ça marche même si le fichier est un header image? :/
 
edit:
j'annonce l'echec de cette idee. variable de session non-envoyée.  [:airforceone]


Message édité par pmusa le 12-04-2005 à 18:26:35
Reply

Marsh Posté le 12-04-2005 à 18:57:30    

faut faire un session_start :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 12-04-2005 à 19:58:43    

yééé sèèèè.  :kaola:  
 
je tiens a souligner le fait que j'ai un

Code :
  1. header('Content-type: image/png');


donc est ce que ça pourrait en être la cause. et l'inclusion de ce fichier ne sea fiat que  sous forme d'IMAGE.
 
<img src="codeverif.php" />
 
codeverif.php etant le fichier php qui GENERE l'IMAGE.
 
voilà, en fait j'en sais rien.  :pt1cable:  
 
à la fin de codeverif.php ça se présente comme ça:

Code :
  1. $_SESSION['code'] = $chaine;
  2. header('Content-type: image/png');
  3. imagepng($image);
  4. imagedestroy($image);


 
sachant que j'ai déjà essayé de bouger la place de la creation de la variable de session un peu partout dans le fichier des fois que.  :D  
 
merci :hello:


Message édité par pmusa le 12-04-2005 à 19:59:41
Reply

Marsh Posté le 12-04-2005 à 20:36:43    

j'ai trouvé un source sur le web ricain. je vais me debrouiller avec.  ;)  
 
merci.  :hello:

Reply

Marsh Posté le 13-04-2005 à 12:30:02    

KangOl a écrit :

faut faire un session_start :o


je corrige:
 
en re-re-re-re-lisant (!) mon source, je me suis rendu compte que le problème n'etait pas dans la fichier qui genere le captcha mais... dans le fichier formulaire.
 
j'avais omis de solliciter la session dans ce dernier.  [:aloy]  


Message édité par pmusa le 13-04-2005 à 13:29:13
Reply

Marsh Posté le 13-04-2005 à 13:32:21    

j'ai un nouveau prob.
 
en fait, la session enregistrer le code precedent et pas celui du captcha ACTUEl et ainsi de suite quand on recharge la page. :/
 
par exemple, dans l'image c'est ecrit bdBgV, je fais un echo de la session pour voir ce que ça donne et j'ai, bizarrement, 1gh45. quand je rafraichi la page, c'ette fois j'ai jh6fgh et dans le echo j'ai bdBgV. vous comprenez? le echo a en fait un temps de retard et je ne vois pas à quoi il pourrai être du.
 
merci de m'aider, c'est lourd ce truc.  :pfff:

Reply

Marsh Posté le 13-04-2005 à 13:32:21   

Reply

Marsh Posté le 13-04-2005 à 15:01:00    

:bounce:

Reply

Marsh Posté le 13-04-2005 à 15:51:10    

le comportement que tu décris est normal, tu affectes $_SESSION['code'] à la fin de codeverif.php, hors l'image est chargée après ton formulaire.
de plus ce n'est pas bien grave car j'imagine que tu verifies le code après dans une page de validation, et dans cette page là $_SESSION['code'] aura la bonne valeur.

Reply

Marsh Posté le 13-04-2005 à 16:35:45    

je ne suis pas ton raisonnement. tu affirme que ce n'est pas grave:
si, le code que le visiteur tape n'est plus celui qu'il voit en fait, c'est le "précedent". :/
 
ça m'embête.
 
qqn a une alternative?

Reply

Marsh Posté le 13-04-2005 à 16:39:00    

pmusa a écrit :

si, le code que le visiteur tape n'est plus celui qu'il voit en fait, c'est le "précedent".

non, l'utilisateur tapera le code qu'il voit, tu penses que c'est le précedent car tu affiches $_SESSION['code'] avant de l'avoir affecter (affectation dans dans codeverif.php)

Reply

Marsh Posté le 13-04-2005 à 16:48:53    

ouep. puteinnggg uè je comprend.  :wahoo: faut être sacrément rigoureux avec PHP heinggg...
 
d'accord, mais dans ce cas je fais comment pour verfier si le code est juste DANS le formulaire?  :D eh!

Reply

Marsh Posté le 13-04-2005 à 16:57:36    

pmusa a écrit :

d'accord, mais dans ce cas je fais comment pour verfier si le code est juste DANS le formulaire?  :D eh!

cette question n'a pas de sens car lorsque tu vas verifier la validité du code saisi par l'utilisateur, $_SESSION['code'] aura la bonne valeur.

Reply

Marsh Posté le 13-04-2005 à 17:04:29    

chu perdu soju.  [:aloy] largué.
 
matte mon code
 

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <form method="post" action="">
  5. <input type="hidden" name="tour" />
  6. <img src="codeverif.php" />
  7. <input type="text" name="code" />
  8. <input type="Submit" value="valider" />
  9. </form>
  10. <?php
  11. if($tour){
  12. if(($_SESSION['code']) == ($_POST['code'])){
  13. echo "code ok, ici mon INSERT mysql...<br />\n";}
  14. else{
  15. echo "code incorrect!";}
  16. }
  17. else{
  18. echo "complètez le formulaire<br />\n";
  19. echo $_SESSION['cap']; }?>


 
le echo de $_SESSION['cap'] c'est pour voir si ça correspond à l'image et comme je te le dis, ça n'est pas identique.
ensuite, le traitement du formulaire ne marche jamais. :/
 
merci de m'éclairer, je crois que je tiens un bout là mais tu tiens des propos relativement philosophiques "cette question n'a pas de sens" alors moi je -->  :pt1cable:  
 
merci pour ta comprehension.

Reply

Marsh Posté le 13-04-2005 à 17:17:54    

hou là... un peu de rigueur !
 
c'est quoi $_SESSION['cap'] ? tu utilises $_SESSION['code'] normalement non ?
et $tour est toujours vide donc normal que tu n'es rien...

Reply

Marsh Posté le 13-04-2005 à 17:29:10    

ouep c'est bien $_SESSION['code']  :pfff:  
ah $tour est vide?  :whistle:  
 
je pensais qu'en mettant

Code :
  1. <input type="hidden" name="tour" />


je pouvais savoir si le submit de formulaire avait été executé. si oui, j'indique le resultat, ok ou incorrect, sinon on demande au visiteur de compléter.
 
faut que je rajoute le "value" c'est ça?  :??:

Reply

Marsh Posté le 13-04-2005 à 17:33:52    

<input type="submit" name="submit" value="valider" />

et utilise

$_POST['submit']


voilà, je laisse tomber pour aujourd'hui, on n'est pas là pour t'apprendre le html...

Reply

Marsh Posté le 13-04-2005 à 17:37:40    

oui forcément c'est plus astucieux. :/
 
bah mon xhtml je le connais très très bien.  [:aloy] je tâte aussi beaucoup de CSS. et comme je faisait pas beaucoup de formulaire (vu que ça necessite du PHP derrière et que je ne connaissais pas) je ne me suis pas attardé dessus.  :)  
 
 
enfin merci beaucoup, tu m'en as dis plus qu'il n'en faut je crois, je vais tester.
 
merci beaucoup Soju.  :hello:
 
edit:
 
hmmm... c'était en fait ce batard de $tour.  :o quand je pense a combien de fois j'ai relu mon code...  :(  
bref, là ça roxx baÿbaÿ!
 
merci un dernière fois.   ;)  
 
je crois que le probleme est definitivement resolu


Message édité par pmusa le 13-04-2005 à 17:43:24
Reply

Marsh Posté le 01-07-2005 à 16:51:44    

Up
 
Pourrais tu m'expliquer comment faire passer la variable de session stp ?
Je n'arrive pas à récupèrer le code de l'image, j'ai essayé d'ouvrir une session sur la page qui génère l'image mais ça ne fonctionne pas, je ne sais pas où placer le :
 
session_start();
session_register("code" );

Reply

Marsh Posté le 01-07-2005 à 17:33:56    

contacté par MP.  :jap:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed