IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

mise en place d'un captcha


Sujet :

Zend_Form PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut mise en place d'un captcha
    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.

  2. #2
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    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.

  3. #3
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    La documentation de zend sur ce composant explique pourtant bien comment procéder, as tu regarder cette documentation

  4. #4
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    j'ai bien suivi le tuto mais j'ai le message d'erreur suivant qui s'affiche :

    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
    j'ai accédé aux dossiers indiqués mais je ne vois vraiment pas le problème des images.
    merci pour votre aide.

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    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.

  6. #6
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Affiche nous les lignes du fichier qui sont indiquées dans ton erreur.

    Il semblerait aussi que tu aie des problème de droit

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Points : 119
    Points
    119
    Par défaut
    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!
    }

  8. #8
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Comme je suis bloqué, j'ai essayé une autre classe comme suit dans le controleur:
    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
    22
    23
    24
     
    $captcha = new Zend_Form_Element_Captcha('captcha', array(
        		'label' => "Merci de confirmer que vous êtes humain :",
        		'captcha' => array(
            		'captcha' 	=> 'Image',
            		'imgDir'	=> './captcha/',
                    	'imgUrl'	=> Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/',
                    	'wordLen' 	=> 6,
                    	'fsize'		=> 40,
                    	'height'	=> 50,
                    	'width'	=> 200,
                    	'gcFreq'	=> 10,
                    	'expiration' => 300,
                    	'dotNoiseLevel' => 5,
                    	'lineNoiseLevel' => 5,
                    	'font' 		=> './fonts/arial.ttf'
        			),
    			));
    		$captcha->setDecorators(array(
    			'Label', 
    			array('HTMLTag', array('tag'=>'p'))
    		));
     
    		echo $captcha;
    le message d'erreur qui s'affiche est le suivant:
    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 './captcha/bcd05ef5a6ce1c5f86fb77d86613147e.png' for writing: No such file or directory in D:\workspace\thermidor\library\php\Zend\Captcha\Image.php on line 563

    Merci de confirmer que vous êtes humain :
    merci pour votre aide, avec toute la doc sur le net, je n'arrive pas à m'ensortir.

  9. #9
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    en fait J'ai modifié un peu le code, les messages d'erreurs ne s'affiche plus par contre l'image ne s'affiche pas:
    ce que j'ai fait 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
    22
    23
    24
     
    $captcha = new Zend_Form_Element_Captcha('captcha', array(
        		'label' => "Merci de confirmer que vous êtes humain :",
        		'captcha' => array(
            		'captcha' 	=> 'Image',
            		'imgDir'	=> PUBLIC_PATH.'/images/captcha/',
                    	'imgUrl'	=> Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/',
                    	'wordLen' 	=> 6,
                    	'fsize'		=> 40,
                    	'height'	=> 50,
                    	'width'	=> 200,
                    	'gcFreq'	=> 10,
                    	'expiration' => 300,
                    	'dotNoiseLevel' => 5,
                    	'lineNoiseLevel' => 5,
                    	'font' 		=> MEDIA_PATH.'/arial.ttf'
        			),
    			));
    		$captcha->setDecorators(array(
    			'Label', 
    			array('HTMLTag', array('tag'=>'p'))
    		));
     
    		echo $captcha;
    le résultat est les suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <p><label for="captcha-input" class="required">Merci de confirmer que vous êtes humain :</label>
     
    <img width="200" height="50" alt="" src="/captcha/ecbc7252768ca8da29e0ad7bb952e14d.png" />
    <input type="hidden" name="captcha[id]" value="ecbc7252768ca8da29e0ad7bb952e14d" id="captcha-id" />
    <input type="text" name="captcha[input]" id="captcha-input" value="" /></p>
    On voit bien à partir de ce source que l'image est bien récupérée par contre elle ne s'affiche pas.
    j'ai juste le message de confirmation et le champx de saisie.

  10. #10
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Tu es sur que le lien vers l'image est correcte ? Car là ça à l'air d'être ton problème

  11. #11
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Oui c'est mon probleme, je n'arrive pas à récupérer l'url du dossier captcha meme si j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PUBLIC_PATH.'\images\captcha'
    qui me rend le chemin suivant:
    D:\workspace\thermidor\public\images\captcha
    les images s'enregistre bien dans le dossier captcha de ce répertoire.

  12. #12
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Travail avec baseUrl

  13. #13
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    C'est ce que j'ai utilisé au débu sans résultat comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'imgUrl'	=> Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/',

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    une question comme ça par hasard: as-tu téléchargé le fichier "font": arial.ttf. Si oui le chemin que tu précises est-il correcte?
    'font' => MEDIA_PATH.'/arial.ttf'

  15. #15
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Ce que je ne comprend pas c'est qu'en affichant le source, le chemin de l'image est correcte, je n'arrive pas à voir pourquoi elle ne s'affiche pas.
    le source est comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <p><label for="captcha-input" class="required">Merci de confirmer que vous êtes humain :</label>
     
    <img width="200" height="50" alt="" src="D:\workspace\thermidor\public\images\captcha/c27e7f8c67c4f411558e4096b67ef71a.png" />
    <input type="hidden" name="captcha[id]" value="c27e7f8c67c4f411558e4096b67ef71a" id="captcha-id" />
    <input type="text" name="captcha[input]" id="captcha-input" value="" /></p>
    le source de l'image est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     src="D:\workspace\thermidor\public\images\captcha/c27e7f8c67c4f411558e4096b67ef71a.png"

  16. #16
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    pour répondre a ta question le font je l'ai copié à partir du dossier Windows et je l'ai mis dans le répertoire media comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    D:\workspace\thermidor\public\media\arial.ttf

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Points : 119
    Points
    119
    Par défaut
    pour tester mets le même lien pour "imgDir" et" imgUrl":
    'imgDir' => PUBLIC_PATH.'/images/captcha/',
    'imgUrl' => Zend_Controller_Front::getInstance()->getBaseUrl() .'/captcha/',

  18. #18
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    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

  19. #19
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    si 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/',
    si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'imgDir'	      			=> PUBLIC_PATH.'\images\captcha',
    	            'imgUrl'	      			=> PUBLIC_PATH.'\images\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.

  20. #20
    Membre du Club
    Femme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Novembre 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur étude et développement

    Informations forums :
    Inscription : Novembre 2009
    Messages : 125
    Points : 55
    Points
    55
    Par défaut
    Je me pose une autre question
    comment tester la valeur du captcha saisie, cat j'ai fait un auttre avec
    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;
    mais lorsque je saisi les mauvais caractères le formulaire est validé et ma candidature est insérée.
    merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AD]Mise en place de Active Directory
    Par guiguisi dans le forum Windows Serveur
    Réponses: 9
    Dernier message: 29/07/2004, 08h50
  2. [C#] Mise en place d'un site multilingue
    Par regbegpower dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/03/2004, 19h15
  3. mise en place serveur web intranet
    Par gui4593 dans le forum Installation
    Réponses: 7
    Dernier message: 01/01/2004, 18h18
  4. Mise en place d'index....??
    Par liv dans le forum Requêtes
    Réponses: 6
    Dernier message: 18/12/2003, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo