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 3: | Línea 3: | ||
|texto ='''Este Artículo cumple con todos los quererimientos de los Kumbieros.'''<br /> | |texto ='''Este Artículo cumple con todos los quererimientos de los Kumbieros.'''<br /> | ||
}} | }} | ||
− | |||
'''Nota previa''' Este ejemplo esta sacado de la documentacion de reCAPTCHA y adaptado a un controlador/vista de KumbiaPHP de forma básica. Se puede mejorar creando un helper, pero queda fuera del ejemplo :) | '''Nota previa''' Este ejemplo esta sacado de la documentacion de reCAPTCHA y adaptado a un controlador/vista de KumbiaPHP de forma básica. Se puede mejorar creando un helper, pero queda fuera del ejemplo :) | ||
+ | |||
* 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 | ||
// Incluimos el fichero con la libreria y nuestra API Key | // Incluimos el fichero con la libreria y nuestra API Key | ||
− | require_once APP_PATH. '/libs/ | + | require_once APP_PATH. '/libs/recaptcha.php'; |
class CaptchaController extends ApplicationController { | class CaptchaController extends ApplicationController { | ||
− | |||
− | |||
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 58: | ||
// 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 68: | ||
− | * 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 81: | ||
− | |||
* 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, |