martes, 28 de junio de 2011

Tutorial: ReCAPTCHA y Codeigniter, sacando a los bots de tus aplicaciones.



En este articulo voy a explicar cómo usar ReCAPTCHA en codeigniter, ReCAPTCHA es un sistema anti-bot ampliamente usado en múltiples páginas web, este sistema también se puede implementar con codeigniter y en este tutorial tratare de explicar cómo se debe usar.

Primero es descargarnos el archivo con la libreria http://www.box.net/shared/hid2ch2i70my9z0vlz5u abajo hay un link donde esta el archivo original, este link tiene el archivo original más la traduccion de la libreria al español.

Les recomiendo que para probar lo agreguen en un proyecto nuevo y despues pues si lo agreguen al que ya tengan echo. 

Después tenemos que entrar en http://www.google.com/recaptcha/whyrecaptcha y solicitar una Api key, te darán dos una privada y una publica, las dos deberemos entrar en application/config/recaptcha.php y hay colocar respectivamente la public y la private key. 

Ya con esto tendremos todo listo para probar nuestro captcha, solo demos entrar en /recaptchademo, y ya veremos como sale nuestra imagen recaptcha y si lo probamos debe funcionar a la perfección.

Si deseamos ponerlo en español y hemos descargado el que esta en box.net solo debemos ir a application/config/config.php y cambiarlo el lenguaje por espanol, español con N, lo hice con n porque la ñ en algunos servidores da problemas. Y también deben buscar la función $this->recaptcha->get_html() y pasar el parametro 'es' ya que con esto tendremos el recaptcha en español.

El recaptcha tiene la posibilidad de configurar el tema posee 4 temas ya configurados (red, white, blackglass y clean) o también podemos crear nuestro propio reCaptcha. aquí están las opciones que podemos cambiar: http://code.google.com/intl/es-ES/apis/recaptcha/docs/customization.html.


Aquí les dejo unos links que pueden resultar importantes.



4 comentarios:

  1. Excelente ahora lo pruebo y si es todo ok automáticamente lo pongo en todos los proyectos que tengo. Hasta ahora usaba el del propio CodeIgniter pero 0 patatero, recaptcha tampoco es que me guste mucho, pero una cosa que aunque nos quejemos de recaptcha es al que mas acostumbrados estamos y la gente en general también. Es que esta por todo.

    ResponderEliminar
  2. Si bueno realmente eso es una cuestión mas que todo de necesidad, por el área de seguridad. y no es tan complicado

    ResponderEliminar
  3. Disculpa, pero yo lo tengo instalado en un foro hecho con codeIgniter y no es bien como dices, habrá que validar el sistema de recaptcha con una función callback no?
    Es que si no lo válidas no sé donde está la gracia de tener un sistema de captcha en nuestro formulario.
    Te has saltado bastantes pasos, no sé si por desconocimiento o porque sí, pero no ayudas mucho de está forma, por lo menos yo, si vengo buscando esta info y encuentro esto, lo que hago es coger un buen rebote, de todos modos saludos.

    ResponderEliminar
    Respuestas
    1. El captcha se comprueba en esta función, Isra.

      function check_captcha($val) {
      if ($this->recaptcha->check_answer($this->input->ip_address(),$this->input->post('recaptcha_challenge_field'),$val)) {
      return TRUE;
      } else {
      $this->form_validation->set_message('check_captcha',$this->lang->line('recaptcha_incorrect_response'));
      return FALSE;
      }
      }

      Eliminar