Edición de «Ejemplo de reCAPTCHA en KumbiaPHP»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
− | + | '''Nota previa''' Este ejemplo esta sacado de la documentacion de reCAPTCHA y adaptado a un controlador/vista de KumbiaPHP de forma básica. Seguramente, la inclusion de la librería se podrá hacer de alguna otra forma con funciones própias de KumbiaPHP, pero esta es mi forma de hacerlo con los conocimientos que tengo de KumbiaPHP. | |
− | + | ||
− | |||
− | |||
− | |||
− | '''Nota previa''' Este ejemplo esta sacado de la documentacion de reCAPTCHA y adaptado a un controlador/vista de KumbiaPHP de forma básica. | ||
* Descargar la libreria [http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest reCAPTCHA], descomprimela y copia el fichero '''recaptchalib.php''' en ''/app/libs'' de tu arbol de directorios de KumbiaPHP. | * Descargar la libreria [http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest reCAPTCHA], descomprimela y copia el fichero '''recaptchalib.php''' en ''/app/libs'' de tu arbol de directorios de KumbiaPHP. | ||
− | * Si no lo has hecho ya, [https://admin.recaptcha.net/accounts/signup/?next= registrate] y solicita una key de API en la web de reCAPTCHA | + | |
+ | * Si no lo has hecho ya, [https://admin.recaptcha.net/accounts/signup/?next= registrate] y solicita una key de API en la web de reCAPTCHA. | ||
− | + | * Crea el fichero '''recaptcha.php''' en ''app/libs/'' con el siguiente contenido, sustituyendo '''X''' e '''Y''' por tus API Key obtenidas. | |
− | * | + | <source lang=php > |
+ | <?php | ||
+ | include ("recaptchalib.php"); | ||
+ | $publickey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; | ||
+ | $privatekey = "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"; | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | |||
+ | * Ahora creamos un controlador para el captcha: | ||
<source lang=php > | <source lang=php > | ||
<?php | <?php | ||
− | |||
− | |||
− | |||
class CaptchaController extends ApplicationController { | class CaptchaController extends ApplicationController { | ||
− | + | // Incluimos el fichero con la libreria y nuestra API Key | |
− | + | require_once APP_PATH. '/libs/recaptcha.php'; | |
public function index() { | public function index() { | ||
// Generamos el reCAPTCHA | // Generamos el reCAPTCHA | ||
− | $this->Captcha = recaptcha_get_html($ | + | $this->Captcha = recaptcha_get_html($publickey); |
} | } | ||
public function comprobar() { | public function comprobar() { | ||
// Comprobamos que se haya rellenado el reCAPTCHA | // Comprobamos que se haya rellenado el reCAPTCHA | ||
− | if ($ | + | if ($_POST["recaptcha_response_field"]) { |
// Realizamos la comprobacion | // Realizamos la comprobacion | ||
− | $resp = recaptcha_check_answer ($ | + | $resp = recaptcha_check_answer ($privatekey, |
− | $_SERVER[ | + | $_SERVER["REMOTE_ADDR"], |
− | $ | + | $_POST["recaptcha_challenge_field"], |
− | $ | + | $_POST["recaptcha_response_field"]); |
if ($resp->is_valid) { | if ($resp->is_valid) { | ||
// Aqui seguría nuestra comprobacion del resto de los | // Aqui seguría nuestra comprobacion del resto de los | ||
// datos del formulario | // datos del formulario | ||
− | + | echo "You got it!"; die; | |
− | echo " | ||
} else { | } else { | ||
// Capturamos el error para mostrarlo | // Capturamos el error para mostrarlo | ||
Línea 51: | Línea 53: | ||
// Generamos un nuevo reCAPTCHA con el codigo de error obtenido | // Generamos un nuevo reCAPTCHA con el codigo de error obtenido | ||
− | $this->Captcha = recaptcha_get_html($ | + | $this->Captcha = recaptcha_get_html($publickey, $error); |
// Mostramos la misma vista que en el index | // Mostramos la misma vista que en el index | ||
− | $this->render( | + | $this->render("index"); |
} | } | ||
} | } | ||
Línea 61: | Línea 63: | ||
− | * Por último, creamos la vista | + | * Por último, creamos la vista: |
+ | |||
<source lang=php > | <source lang=php > | ||
− | < | + | <b>Rellena el cuadro con tu nombre: </b> |
<?php | <?php | ||
echo form_tag('captcha/comprobar'); | echo form_tag('captcha/comprobar'); | ||
− | echo input_field_tag(' | + | echo input_field_tag('DatosForm.nombre'); |
echo $Captcha; | echo $Captcha; | ||
echo submit_tag('Enviar datos'); | echo submit_tag('Enviar datos'); | ||
Línea 73: | Línea 76: | ||
− | |||
* Ya esta! Ahora ya puedes visitar la URL de tu controlador en http://''<tuhost>''/captcha y probarlo. | * Ya esta! Ahora ya puedes visitar la URL de tu controlador en http://''<tuhost>''/captcha y probarlo. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Saludos, | Saludos, |