- Fri
- 5
- Dec
- 08
Zend Framework: Zend_Form con ReCaptcha
Di in Php, Zend Framework Controls: +-close
Utilizzare il webservice ReCaptcha per validare i form
ReCaptcha è un servizio gratuito che mette a disposizione degli sviluppatori delle API per l’utilizzo di una versione sicura del famoso Captcha, ovvero l’immagine che ormai posseggono moltissimi form per assicurarsi che chi effettua la richiesta sia per davvero un essere umano e non un bot.
Per poter utilizzare Recapcha dovete avere due chiavi, public e private, che potete recuperare gratuitamente iscrivendovi al sito http://recaptcha.net, sito dove potete documentarvi più approfonditamente anche sul servizio e su cosa questo offre.
In questo articolo invece vedremo come implementare questo servizio nel componente Zend_Form. Per chi fosse a digiuno sul componente Zend_Form consiglierei prima di dare una lettura a questa pagina in quanto per la comprensione di Zend_Form_Element_Captcha bisogna prima di tutto avere le basi su Zend_Form.
Creare l’elemento CAPTCHA
Per creare un elemento del tipo captcha all’interno di Zend_Form dovremo istanziare la classe Zend_Form_Element_Captcha e passare due argomenti al costruttore, il nome del campo input e un array di parametri, come in questo esempio:
$captcha = new Zend_Form_Element_Captcha('challenge', array(
'captcha' => 'ReCaptcha',
'captchaOptions' => array(
'captcha' => 'ReCaptcha',
'privKey' => [ la vostra chiave privata ],
'pubKey' => [ la vostra chiave pubblica ]
),
));
Come per tutti gli elementi del form possiamo attribuire all’elemento dei decorators, per esempio racchiudere tutto all’interno di un tag P
$captcha->setDecorators(array(
array('HtmlTag',
array('tag' => 'p'))
));
Dopo aver creato l’elemento ricordatevi di aggiungerlo al form richiamando il metodo addElements:
// Se siamo nell'ambito di una classe che estende Zend_Form $this->addElements($captcha); // Se abbiamo istanziato direttamente Zend_Form $form->addElements($captcha);
Usare Zend_Registry per le chiavi
Potreste avere la necessità di dover utilizzare le chiavi in diversi form, quindi potrebbe essere utile inserire i parametri nel file di configurazione:
config.ini
recapcha.public = chiave pubblica; recapcha.private = chiave privata;
quindi il codice di sopra diventerebbe:
// Recuperiamo config
$config = Zend_Registry::get('config');
$captcha = new Zend_Form_Element_Captcha('challenge', array(
'captcha' => 'ReCaptcha',
'captchaOptions' => array(
'captcha' => 'ReCaptcha',
'privKey' => $config->recapcha->private, // recuperiamo le chiavi dal file di configurazione
'pubKey' => $config->recapcha->public
),
));
Il risultato che otterremo sarà la visualizzazione di questo box nel nostro form, potete trovare qualche approfondimento in questa pagina della documentazione ufficiale Zend.
Termina qui questo articolo su Zend_Form_Element_Captcha e ReCaptcha, se l’articolo vi è stato utile votatelo su digg e gli altri siti.
Related posts:
- Zend Framework: introduzione al componente Zend_Form Creare form web con Zend Form Con Zend Framework possiamo...
- Zend Framework: gestione dei moduli ed esempio modulo di amministrazione Come usare Zend_Layout per la gestione dei moduli In quest'articolo...
Related posts brought to you by Yet Another Related Posts Plugin.













grazie, questo era la prima volta che ho profitato per il web dev di aver imparato la lingua italiana. pero l’esempio e chiaro anche senza sapere italiano.
anyways, cool site, I didn’t find any info on zend recaptcha implementation in english or german.
Ciao Markus,
sono contento di esserti stato utile.
Torna a trovarmi presto.
Ciao