Introduction au Zend Framework

 Apprendre Zend Framework

appendix

 Guide de référence Zend Framework


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 61.2% Update 2010-11-28 - Revision 23149 - Version ZF 1.11.x

    63.25. Zend_Service_ReCaptcha

    63.25.1. Introduction

    Zend_Service_ReCaptcha fournit un client pour le Service Web reCAPTCHA. D'après le site de reCAPTCHA, "reCAPTCHA est un service gratuit de CAPTCHA qui aide à la numérisation de livres." Chaque reCAPTCHA requière que l'utilisateur saisisse 2 mots, le premier est le CAPTCHA, et le second est issu de texte scanné que les OCR (Optical Character Recognition) ne peuvent identifier.

    Pour utiliser le service reCAPTCHA, vous devez créer un compte et enregistrer un ou plusieurs domaines d'utilisation afin de générer une clé publique et une privée.

    63.25.2. Utilisation la plus simple

    Instanciez un objet Zend_Service_ReCaptcha en lui passant vos clés publique et privée :

    Exemple 63.123. Créer une instance de service ReCaptcha

    $recaptcha = new Zend_Service_ReCaptcha($pubKey$privKey);

    Pour rendre le reCAPTCHA, appelez simplement la méthode getHTML() :

    Exemple 63.124. Afficher le ReCaptcha

    echo $recaptcha->getHTML();

    Lorsque le formulaire est envoyé, vous devriez recevoir 2 champs 'recaptcha_challenge_field' et 'recaptcha_response_field'. Passez les alors à la méthode verify() :

    $result $recaptcha->verify(
        
    $_POST['recaptcha_challenge_field'],
        
    $_POST['recaptcha_response_field']
    );

    Une fois que vous possédez le résultat, vérifiez sa validité. Il s'agit d'un objet Zend_Service_ReCaptcha_Response qui possède une méthode isValid().

    Exemple 63.125. Vérifier les champs de formulaire

    if (!$result->isValid()) {
        
    // Validation échouée
    }

    Encore plus simple : utilisez l'adaptateur ReCaptcha de Zend_Captcha, ou utilisez cet adaptateur comme backend pour l'élément formulaire Captcha. Dans ces 2 cas, le rendu et la validation du reCAPTCHA sont assurés pour vous.

    63.25.3. Hiding email addresses

    Zend_Service_ReCaptcha_MailHide can be used to hide email addresses. It will replace a part of an email address with a link that opens a popup window with a ReCaptcha challenge. Solving the challenge will reveal the complete email address.

    In order to use this component you will need an account, and generate public and private keys for the mailhide API.

    Exemple 63.126. Using the mail hide component

    // The mail address we want to hide
    $mail 'mail@example.com';

    // Create an instance of the mailhide component, passing it your public and private keys as well as
    // the mail address you want to hide
    $mailHide = new Zend_Service_ReCaptcha_Mailhide();
    $mailHide->setPublicKey($pubKey);
    $mailHide->setPrivateKey($privKey);
    $mailHide->setEmail($mail);

    // Display it
    print($mailHide);

    The example above will display "m...@example.com" where "..." has a link that opens up a popup windows with a ReCaptcha challenge.

    The public key, private key and the email address can also be specified in the constructor of the class. A fourth argument also exists that enables you to set some options for the component. The available options are listed in the following table:

    Tableau 63.19. Zend_Service_ReCaptcha_MailHide options

    Option Description Expected Values Default Value
    linkTitle The title attribute of the link string 'Reveal this e-mail address'
    linkHiddenText The text that includes the popup link string '...'
    popupWidth The width of the popup window int 500
    popupHeight The height of the popup window int 300


    The configuration options can be set by sending it as the fourth argument to the constructor or by calling the setOptions($options) which takes an associative array or an instance of Zend_Config.

    Exemple 63.127. Generating many hidden email addresses

    // Create an instance of the mailhide component, passing it your public and private keys as well as
    // well the mail address you want to hide
    $mailHide = new Zend_Service_ReCaptcha_Mailhide();
    $mailHide->setPublicKey($pubKey);
    $mailHide->setPrivateKey($privKey);
    $mailHide->setOptions(array(
        
    'linkTitle' => 'Click me',
        
    'linkHiddenText' => '+++++',
    ));

    // The addresses we want to hide
    $mailAddresses = array(
        
    'mail@example.com',
        
    'johndoe@example.com',
        
    'janedoe@example.com',
    );

    foreach (
    $mailAddresses as $mail) {
        
    $mailHide->setEmail($mail);
        print(
    $mailHide);
    }

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...