oct
20
2009

Defiendete de los robots que se aporvechan de tu web – reCaptcha

Captcha

Agrega un captcha a tu web

Sabemos que no falta el robot que nos este jodiendo con mucho spam de comentario en nuestros formularios de la web, eso casi siempre pasa, de echo da dolor de cabeza estar borrando el span que te llega a tu correo desde tu web, y peor aun desde tus formularios mal programados pueden enviar correos masivos a miles de personas, pero eso no es todo, cuando desees enviar un mail desde tu dominio, te daras cuenta o tus amigos o clientes te dirán “no me llego tu correo” y con la inicencia de siempre te matas a buscar que esta pasando, hasta que te das cuenta que tu servidor ya esta en la lista negra de gmail, hotmail y demás, por lo mismo de no atender a tiempo la emergencia de un formulario mal programado, pro eso si tanto choro, les dejo una librería hecha en php para poder generar un captcha muy seguro, este muy bueno. a continuación les voy a explicar su funcionamiento.

Estas instrucciones deben empezar rápidamente si sabes algo de PHP. (Si usted es un principiante, esta entrada de blog hace un buen trabajo en explicar los fundamentos.)

Descargar la Biblioteca reCAPTCHA, descomprimirlo, y recaptchalib.php copia al directorio donde sus formas vivas.

Si no lo han hecho, abrir una clave de API.

Ahora estamos listos para empezar a modificar su código. En primer lugar, vamos a añadir código para mostrar el CAPTCHA:

 
  require_once ( 'recaptchalib.php'); 
  $ PublicKey = "..."; / / Te contagiaste de la página de registro 
  echo recaptcha_get_html ($ clave pública);

En el código que procesa el envío del formulario, es necesario agregar el código para validar el CAPTCHA. De lo contrario, aparecerá el CAPTCHA, pero las respuestas no serán verificadas. El código de validación es así:

require_once ( 'recaptchalib.php'); 
  = $ PrivateKey "..."; 
  $ Resp = recaptcha_check_answer ($ privateKey, 
                                  $ _SERVER [ "REMOTE_ADDR"] 
                                  $ _POST [ "Recaptcha_challenge_field"] 
                                  $ _POST [ "Recaptcha_response_field"]); 
 
  if ($ resp-> is_valid) ( 
    die ( "El reCAPTCHA no se ha escrito correctamente. Volver atrás e inténtelo de nuevo.". 
         "(reCAPTCHA dijo:". $ resp-> error. ")"); 
  )

Este es un ejemplo de codigo completo:

  <html> 
    <body> 
      <form action="" method="post"> 
  <? Php 
 
  require_once ( 'recaptchalib.php'); 
  $ PublicKey = "..."; 
  = $ PrivateKey "..."; 
 
  # La respuesta de reCAPTCHA 
  $ Resp = null; 
  # El código de error de reCAPTCHA, en su caso 
  $ Error = null; 
 
  # ¿Somos la presentación de la página? 
  if ($ _POST [ "submit"]) ( 
    $ Resp = recaptcha_check_answer ($ privateKey, 
                                    $ _SERVER [ "REMOTE_ADDR"] 
                                    $ _POST [ "Recaptcha_challenge_field"] 
                                    $ _POST [ "Recaptcha_response_field"]); 
 
    if ($ resp-> is_valid) ( 
      echo "You got it!"; 
      # En una aplicación real, usted debe enviar un correo electrónico, crear una cuenta, etc 
    Else () 
      # Establecer el código de error para que podamos mostrarlo.  También puede utilizar 
      # Die ( "reCAPTCHA no"), pero utilizando el mensaje de error es 
      # Más fácil de usar 
      $ Error = $ resp-> error; 
    ) 
  ) 
  echo recaptcha_get_html ($ error clave pública, $); 
  ?> 
      <br/> 
      <input type="submit" name="submit" value="Enviar" /> 
      </ Form> 
    </ Body> 
  </ Html>

Espero que le ayude y dejen sus comentarios

Related Posts

About the Author: Miguel Angel Ortega Acosta

1 Comment + Add Comment

  • ¿Ofreces algo que no esté en la página oficial de recapcha? Ni siquiera te has molestado en corregir las traducciones automáticas ¿Te contagiaste en la página de registro? Deberías intentar que tu trabajo sea comprensible y molestarte en poner “Lo obtuviste en la página de registro” eso sí tiene sentido.

Leave a comment

Patrocinador

Siguenos

Suscribete

Escribe tu correo:

Recibirás un correo con todos los articulos escritos en ZoneArtCss durante el día.

Correo @zoneartcss.com

Obtén una cuenta de @zoneartcss.com gratuita