Los siguientes adaptadores se incluyen con Zend Framework por defecto.
Zend_Captcha_Word es un adaptador abstracto que sirve como clase
base para la mayoría de los demás adaptadores CAPTCHA. Proporciona mutadores para
especificar la longitud de la palabra, el TTL de sesión, el objeto de espacio de nombres
de sesión a usar, y la clase de espacio de nombres de sesión a usar para la persistencia si
no desea usar Zend_Session_Namespace.
Zend_Captcha_Word encapsula la lógica de validación.
Por defecto, la longitud de la palabra es de 8 caracteres, el tiempo de espera de la sesión es
de 5 minutos, y se usa Zend_Session_Namespace para la persistencia
(usando el espacio de nombres "Zend_Form_Captcha_<captcha ID>").
Además de los métodos requeridos por la
interfaz Zend_Captcha_Adapter,
Zend_Captcha_Word expone los siguientes métodos:
setWordLen($length)ygetWordLen()le permiten especificar la longitud de la "palabra" generada en caracteres, y recuperar el valor actual.setTimeout($ttl)ygetTimeout()le permiten especificar el tiempo de vida de la sesión token, y recuperar el valor actual.$ttldebe especificarse en segundos.setUseNumbers($numbers)ygetUseNumbers()le permiten especificar si se considerarán números como posibles caracteres para la palabra aleatoria, o si solo se usarán letras.setSessionClass($class)ygetSessionClass()le permiten especificar una implementación alternativa deZend_Session_Namespacepara usar en la persistencia del token CAPTCHA, y recuperar el valor actual.getId()le permite recuperar el identificador del token actual.getWord()le permite recuperar la palabra generada para usar con el CAPTCHA. Generará la palabra por usted si aún no se ha generado ninguna.setSession(Zend_Session_Namespace $session)le permite especificar un objeto de sesión a usar para persistir el token CAPTCHA.getSession()le permite recuperar el objeto de sesión actual.
Todos los CAPTCHA de tipo palabra le permiten pasar un array de opciones al
constructor, o, alternativamente, pasarlas a
setOptions(). También puede pasar un objeto
Zend_Config a setConfig(). Por
defecto, se pueden usar las claves wordLen, timeout, y
sessionClass. Cada implementación concreta
puede definir claves adicionales o utilizar las opciones de
otras maneras.
![]() |
Nota |
|---|---|
|
El adaptador Zend_Captch_Dumb es en su mayoría autodescriptivo. Proporciona
una cadena aleatoria que debe escribirse al revés para validarse. Como tal,
no es una buena solución CAPTCHA y solo debe usarse para
pruebas. Extiende Zend_Captcha_Word.
El adaptador Zend_Captcha_Figlet utiliza Zend_Text_Figlet para presentar
un figlet al usuario.
Las opciones pasadas al constructor también se pasarán al objeto Zend_Text_Figlet.
Consulte la documentación de Zend_Text_Figlet
para más detalles sobre qué opciones de configuración están disponibles.
El adaptador Zend_Captcha_Image toma la palabra generada y
la renderiza como una imagen, realizando varias permutaciones de distorsión para hacer
difícil descifrarla automáticamente. Requiere
la extensión GD
compilada con soporte para TrueType o Freetype. Actualmente, el
adaptador Zend_Captcha_Image solo puede generar
imágenes PNG.
Zend_Captcha_Image extiende
Zend_Captcha_Word, y además expone los
siguientes métodos:
setExpiration($expiration)ygetExpiration()le permiten especificar el tiempo de vida máximo que la imagen CAPTCHA puede permanecer en el sistema de archivos. Esto suele ser más largo que el tiempo de vida de la sesión. La recolección de basura se ejecuta periódicamente cada vez que se invoca el objeto CAPTCHA, eliminando todas las imágenes que hayan expirado. Los valores de expiración deben especificarse en segundos.setGcFreq($gcFreq)ygetGcFreg()le permiten especificar con qué frecuencia debe ejecutarse la recolección de basura. La recolección de basura se ejecutará cada 1/$gcFreq llamadas. El valor predeterminado es 100.setFont($font)ygetFont()le permiten especificar la fuente que usará.$fontdebe ser una ruta completa al archivo de fuente. Este valor es obligatorio; el CAPTCHA lanzará una excepción durante la generación si no se ha especificado el archivo de fuente.setFontSize($fsize)ygetFontSize()le permiten especificar el tamaño de fuente en píxeles para generar el CAPTCHA. El valor predeterminado es 24px.setHeight($height)ygetHeight()le permiten especificar la altura en píxeles de la imagen CAPTCHA generada. El valor predeterminado es 50px.setWidth($width)ygetWidth()le permiten especificar el ancho en píxeles de la imagen CAPTCHA generada. El valor predeterminado es 200px.setImgDir($imgDir)ygetImgDir()le permiten especificar el directorio para almacenar las imágenes CAPTCHA. El valor predeterminado es "./images/captcha/", relativo al script de arranque.setImgUrl($imgUrl)ygetImgUrl()le permiten especificar la ruta relativa a una imagen CAPTCHA para usar en el marcado HTML. El valor predeterminado es "/images/captcha/".setSuffix($suffix)ygetSuffix()le permiten especificar el sufijo del nombre de archivo para la imagen CAPTCHA. El valor predeterminado es ".png". Nota: cambiar este valor no cambiará el tipo de la imagen generada.setDotNoiseLevel($level)ygetDotNoiseLevel(), junto consetLineNoiseLevel($level)ygetLineNoiseLevel(), le permiten controlar cuánto "ruido" en forma de puntos y líneas aleatorios contendrá la imagen. Cada unidad de$levelproduce un punto o línea aleatorio. El valor predeterminado es 100 puntos y 5 líneas. El ruido se agrega dos veces: antes y después de la transformación de distorsión de la imagen.
Todas las opciones anteriores pueden pasarse al constructor simplemente eliminando el prefijo 'set' del método y convirtiendo la letra inicial a minúscula: "suffix", "height", "imgUrl", etc.
El adaptador Zend_Captcha_ReCaptcha usa Zend_Service_ReCaptcha
para generar y validar CAPTCHAs. Expone los siguientes
métodos:
setPrivKey($key)ygetPrivKey()le permiten especificar la clave privada a usar con el servicio ReCaptcha. Esto debe especificarse durante la construcción, aunque puede sobrescribirse en cualquier momento.setPubKey($key)ygetPubKey()le permiten especificar la clave pública a usar con el servicio ReCaptcha. Esto debe especificarse durante la construcción, aunque puede sobrescribirse en cualquier momento.setService(Zend_Service_ReCaptcha $service)ygetService()le permiten establecer y obtener el objeto de servicio ReCaptcha.-
isValid($value, $context = null)valida la entrada del usuario contra el servicio ReCaptcha.$valuees un array con las siguientes claves:recaptcha_challenge_field- Valor del campo challenge (oculto) del widget de ReCaptcharecaptcha_response_field- Valor del campo de entrada de usuario del widget de ReCaptcha
![[Note]](images/note.png)