reCAPTCHA con PHP

Email this to someoneShare on FacebookShare on Google+Share on LinkedInTweet about this on Twitter

En alguna otra ocasión ya hemos hablado de cómo meter un captcha en tu web utilizando el servicio gratuito que nos ofrece Google reCAPTCHA. En el siguiente artículo vamos a ver cómo podemos utilizar reCAPTCHA con PHP.

Incluir reCAPTCHA a un Formulario

Para utilizar la protección mediante captcha, necesitamos añadir reCAPTCHA a nuestro formulario, por lo tanto incluimos el archivo recaptchalib.php y agregamos variables con los valores de nuestros key recién obtenidos.

require_once(‘recaptchalib.php’);
$publickey = “2LdB4goAArAOFRtfrtRlvfyrE-_zv6RETDfgdgdkj”;
$privatekey = “2LdB4goAgdgdfAAAF1GFHFghfhftrtrydgfdUfghkj”;
$error = null;

Ahora utilizamos la función recaptcha_get_html para mostrar el captcha.

<form method=”post”>
<label for=”username”>Usuario</label><br />
<input name=”username” type=”text” class=”casilla” id=”username” /><br />
<label for=”usermail”>Email</label><br />
<input name=”usermail” type=”text” class=”casilla” id=”usermail” /><br />
<label for=”usercheck”>Verificaci&oacute;n</label><br />
<?php echo recaptcha_get_html($publickey, $error); ?>
<input type=”hidden” name=”action” value=”register” />
<input type=”submit” name=”btsend” value=”Enviar” />
</form>

Validar Captcha

Cuando el formulario haya sido enviado verificamos que el texto de captcha se ha ingresado correctamente en cuyo caso procesamos los datos del formulario de lo contrario mostramos un mensaje de error.

if ($_POST[‘action’] == “register”) {
$re_ip = $_SERVER[“REMOTE_ADDR”];
$re_challenge = $_POST[“recaptcha_challenge_field”];
$re_response = $_POST[“recaptcha_response_field”];
$re_valid = recaptcha_check_answer($privatekey, $re_ip, $re_challenge, $re_response);
if ($re_valid->is_valid) {
// procesar registro
} else {
$error = $resp->error;
}
}
Uniendo estos pasos en un archivo, se obtiene una buena protección anti-spam.
reCAPTCHA

Sé la primera persona en comentar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

De conformidad con lo establecido en la LOPD, Adpv Advertising Provider S.L. garantiza la adopción de las medidas necesarias para asegurar el tratamiento confidencial de los datos de carácter personal. Así mismo le informamos de la inclusión de sus datos en un fichero con la finalidad de mantener su relación negocial o contractual con Adpv Advertising Provider S.L. y de la posibilidad de ejercer los derechos de acceso, rectificación, cancelación y oposición en la siguiente dirección: Ercilla, 26, 1Dcha., 48011, Bilbao, Bizkaia. Privacidad.