Bonjour,
je développe un module sous zend et j'aimerai mettre en place un captcha à mon formulaire, par contre je n'ai aucune idée sur le manière de procéder,
si quelqu'un peut bien me guider , merci d'avance.![]()
Bonjour,
je développe un module sous zend et j'aimerai mettre en place un captcha à mon formulaire, par contre je n'ai aucune idée sur le manière de procéder,
si quelqu'un peut bien me guider , merci d'avance.![]()
Je viens de trouver un tuto qui parle de ca:http://khayyam.developpez.com/articl...work/captchas/
Mais ce n'est pas toujours réglé, j'aurai besoin de l'aide tout de même.
La documentation de zend sur ce composant explique pourtant bien comment procéder, as tu regarder cette documentation
Bonjour,
j'ai bien suivi le tuto mais j'ai le message d'erreur suivant qui s'affiche :
j'ai accédé aux dossiers indiqués mais je ne vois vraiment pas le problème des images.Warning: imageftbbox() [function.imageftbbox]: Invalid font filename in D:\workspace\thermidor\library\php\Zend\Captcha\Image.php on line 489
Warning: imagefttext() [function.imagefttext]: Invalid font filename in D:\workspace\thermidor\library\php\Zend\Captcha\Image.php on line 492
Warning: imagepng() [function.imagepng]: Unable to open 'out/6bf44e6d9019b63b0073a6acb4de5111.png' for writing: No such file or directory in D:\workspace\thermidor\library\php\Zend\Captcha\Image.php on line 563
merci pour votre aide.
J'ai utilisé une autre solution qui est comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <? require_once 'Zend/Form.php'; require_once 'Zend/View.php'; $form = new Zend_Form(); $view = new Zend_View(); $form->setView($view); $form->addElement('captcha', 'captcha', array( 'label' => 'Please enter the 5 letters displayed below:', 'required' => true, 'captcha' => array( 'captcha' => 'Figlet', 'wordLen' => 5, 'timeout' => 300 ) )); echo $form->__toString(); $form->addElement($captcha); } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <form enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form"> <dt id="captcha-label"><label for="captcha-input" class="required">Please enter the 5 letters displayed below:</label></dt> <dd> <pre> _ _ ______ _ __ ______ __ __ | | | || /_ _// | |/ // /_ _// \ \\ / // | |/\| || -| ||- | ' // -| ||- \ \/ // | /\ || _| ||_ | . \\ _| ||_ \ // |_// \_|| /_____// |_|\_\\ /_____// \// `-` `-` `-----` `-` --` `-----` ` </pre> <input type="hidden" name="captcha[id]" value="ed23885c3b9c6963a1d7534be3655bed" id="captcha-id"> <input type="text" name="captcha[input]" id="captcha-input" value=""></dd></dl></form>
MON PROBLÈME c que je ne sais pas comment contrôler la saisie du captcha afin de valider le formulaire après cette saisie.
merci de m'aider.
Affiche nous les lignes du fichier qui sont indiquées dans ton erreur.
Il semblerait aussi que tu aie des problème de droit
Bonjour,
un moyen de vérifier si la saisie de ton captcha est correcte c'est de faire le test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ($form->isValid($_POST){ // saisie ok } else { //mauvaise saisie => affichage d'un message d'erreur! }
pour tester mets le même lien pour "imgDir" et" imgUrl":
'imgDir' => PUBLIC_PATH.'/images/captcha/',
'imgUrl' => Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/',
BONJOUR,
j'ai testé ce que tu m'as dit, voici le message d'erreur qui est affiché:
Warning: imagepng() [function.imagepng]: Unable to open '/captcha/3b28c7c2737c0a531a4d5268a8feaca9.png' for writing: No such file or directory in D:\workspace\thermidor\library\php\Zend\Captcha\Image.php on line 563
si je metssi je mets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 'imgDir' => Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/', 'imgUrl' => Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/',pas de message d'erreur mais l'image ne s'affiche pas, y a juste le label et le champ text qui s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'imgDir' => PUBLIC_PATH.'\images\captcha', 'imgUrl' => PUBLIC_PATH.'\images\captcha',
Je me pose une autre question
comment tester la valeur du captcha saisie, cat j'ai fait un auttre avecmais lorsque je saisi les mauvais caractères le formulaire est validé et ma candidature est insérée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $element = new Zend_Form_Element_Captcha('foo', array( 'label' => "Merci de confirmer que vous êtes humain", 'captcha' => 'Figlet', 'captchaOptions' => array( 'captcha' => 'Figlet', 'wordLen' => 6, 'timeout' => 300, ), )); echo $element;
merci pour vos réponses.
Au moment ou tu gères la validation de ton formulaire, fais-tu un test pour vérifier que les données saisies sont valides, du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if($form->isValid()){ // là alors tu insères ta candidature } else{ //affichage d'un message d'erreur! }
Partager