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 12: | Línea 12: | ||
== Pasos == | == Pasos == | ||
− | * Creamos un controlador | + | * Creamos un controlador para el captcha: |
<source lang=php > | <source lang=php > | ||
<?php | <?php | ||
Línea 39: | Línea 39: | ||
// 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 61: | Línea 60: | ||
− | * Por último, creamos la vista | + | * Por último, creamos la vista: |
<source lang=php > | <source lang=php > | ||
<strong>Rellena el cuadro con tu nombre: </strong> | <strong>Rellena el cuadro con tu nombre: </strong> | ||
Línea 80: | Línea 79: | ||
He metido los comentarios que creo necesarios, pero por si acaso, el funcionamiento es el siguiente: | He metido los comentarios que creo necesarios, pero por si acaso, el funcionamiento es el siguiente: | ||
# Se carga la liberia, para tener las funciones disponibles. No usamos Load::Lib() porque KumbiaPHP espera que haya una clase definida, y no es el caso de la librería reCaptcha. Si en un futuro los desarrolladores de reCaptcha proporcionan una clase, lo haremos con Load::Lib(), pero el objetivo es usar la clase tal cual nos la den. | # Se carga la liberia, para tener las funciones disponibles. No usamos Load::Lib() porque KumbiaPHP espera que haya una clase definida, y no es el caso de la librería reCaptcha. Si en un futuro los desarrolladores de reCaptcha proporcionan una clase, lo haremos con Load::Lib(), pero el objetivo es usar la clase tal cual nos la den. | ||
+ | |||
# Generamos en index() el HTML necesario, y lo mostramos en la vista. | # Generamos en index() el HTML necesario, y lo mostramos en la vista. | ||
+ | |||
# El formulario nos envia a comprobar(), la cual comprueba si hemos recibido una respuesta (vía POST) del formulario. | # El formulario nos envia a comprobar(), la cual comprueba si hemos recibido una respuesta (vía POST) del formulario. | ||
+ | |||
# De haberla recibido, pedimos al API de reCapcha que nos compruebe la respuesta, El resultado lo tenemos en ''is_valid'', y el mensaje de error (si lo hubiera) en ''error''. | # De haberla recibido, pedimos al API de reCapcha que nos compruebe la respuesta, El resultado lo tenemos en ''is_valid'', y el mensaje de error (si lo hubiera) en ''error''. | ||
+ | |||
# Si la respuesta es válida, hariamos un redirect(), un route(), o grabariamos una sesion, cookie, etc. para seguir con nuestra aplicación. En caso contrario seguimos la ejecución. | # Si la respuesta es válida, hariamos un redirect(), un route(), o grabariamos una sesion, cookie, etc. para seguir con nuestra aplicación. En caso contrario seguimos la ejecución. | ||
+ | |||
# Posteriomente, si tuvieramos más datos del formulario (nombre, apellidos, telefono, mail, etc), los volvemos a cargar para que la vista los tenga. Esto lo hago porque si se rellenan 10 datos, pero falla el captcha, que el usuario no tenga que volver a rellenar todo otra vez. | # Posteriomente, si tuvieramos más datos del formulario (nombre, apellidos, telefono, mail, etc), los volvemos a cargar para que la vista los tenga. Esto lo hago porque si se rellenan 10 datos, pero falla el captcha, que el usuario no tenga que volver a rellenar todo otra vez. | ||
+ | |||
# Por último, generamos otro captcha para mostrarlo como siguiente prueba y llamamos a la misma vista, para no repetir. | # Por último, generamos otro captcha para mostrarlo como siguiente prueba y llamamos a la misma vista, para no repetir. | ||