Implementando reCAPTCHA
Lunes, 4. Enero 2010
Para poder usar recaptcha necesitamos registrarnos para que nos prooporcionen una public key y una private key nos damos de alta aqui
Despues de tener las keys debemos de descargar la libreria de aqui
la incluimos en nuestro documento
1 2 3 | <?php require_once("recaptchalib.php"); ?> |
Debemos de utilizar la funcion “recaptcha_get_html()” para poder imprimirel captcha, en esta funcion consta de los siguientes parametrso: $publickey (proporcionada al registro), is_valid (verifica si el captcha es correcto), erro (muestra un error si no es correcto), quedaria de la siguiente manera:
1 2 3 4 | <?php $captcha = recaptcha_get_html($publickey); echo $captcha; ?> |
Para poder validar nuestro captcha haremos uso de la funcion “recaptcha_check_answer()” que es donde usaremos nuestra private key, esta funcion requiere de los siguientes parametros: $privatekey (porporcionada al registro), $remoteip (la ip remota), $challenge (un campo del captcha) y $response (un campo oculto del captcha), esta funcion quedaria de la siguiente manera:
1 2 3 4 5 6 | <?php $check = recaptcha_check_answer($privatekey, $remoteip = $_SERVER['REMOTE_ADDR'], $challenge = $_POST['recaptcha_challenge_field'], $response = $_POST['recaptcha_response_field']); ?> |
La validacion quedaria asi:
1 2 3 4 5 6 7 | <?php if($check->is_valid) { echo "Captcha is correct"; } else { echo $check->error; } ?> |
El documento completo seria asi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>reCAPTCHA</title> </head> <body> <form action="" method="POST"> <?php require_once("recaptchalib.php"); function recaptcha($publickey) { $captcha = recaptcha_get_html($publickey); echo $captcha; } recaptcha("Tu public key"); function check($privatekey) { $error = "FALSE"; $check = recaptcha_check_answer($privatekey, $remoteip = $_SERVER['REMOTE_ADDR'], $challenge = $_POST['recaptcha_challenge_field'], $response = $_POST['recaptcha_response_field']); if ($check->is_valid) { echo "Captcha is correct"; } else { echo $check->error; } } ?> <input type="submit" name="verify" value="Verify" /> </form> <?php if ($_POST['verify']) { check("Tu private key"); } ?> </body> </html> |