Instalar un captcha en un formulario de Symfony 2

Un resumen con los pasos para añadir un captcha en un formulario de Symfony 2.  En este ejemplo utilizamos Gregwar’s Captcha Bundle .

 

1 – Utilizamos Composer para la instalación (hay otras formas pero esta es la mas fácil para mi). Agregar a la sección “require” de composer.json lo siguiente:

  "gregwar/captcha-bundle": "dev-master"

Luego se debe hacer un update de las dependencias para que se carguen las librerías y archivos correspondientes.

2 – Habilitar el bundle en el archivo app/appKernel.php del proyecto:

<?php
// app/appKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
    );
}

3 – Configurar el bundle en el archivo app/config/config.yml.  En el proyecto he agregado lo siguiente:

gregwar_captcha:
    width: 200
    height: 50
    length: 4

De esta forma  se define alto, largo y cantidad de caracteres de la imagen del captcha.
Estos parametros también se pueden definir donde se agrega el captcha enel formulario.
El listado completo se puede encontrar en : https://github.com/Gregwar/CaptchaBundle#options

4 – Agregar el captcha en la clase del formulario usado  (FormularioNewType.php):

->add('captcha', 'captcha', array( 'as_url' => true, 'reload' => true,))

Se utilizaron los siguientes parametros opcionales:

– ‘reload’ permite agregar un link para refrescar y cambiar la imagen del captcha.
– ‘as_url’  si esta en true una URL será usada en el tag de la imagen y permitirá la generación del captcha.

Para habilitar la opción ‘as_url’ se debe agregar la ruta al archivo app/routing.yml:

gregwar_captcha_routing:
    resource: "@GregwarCaptchaBundle/Resources/config/routing/routing.yml"

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Time limit is exhausted. Please reload CAPTCHA.