Edición de «Ejemplo de reCAPTCHA en KumbiaPHP v2»

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 37: Línea 37:
 
     */
 
     */
 
     private static $_privateKey = 'TU_CLAVE_PRIVADA';   
 
     private static $_privateKey = 'TU_CLAVE_PRIVADA';   
    /**
 
    * Errores del reCaptcha
 
    */
 
    private static $_error = NULL;
 
  
 
     /**
 
     /**
 
     * Genera el HTML con el código reCaptcha
 
     * Genera el HTML con el código reCaptcha
 
     *  
 
     *  
 +
    * @param $error
 
     * @return string  
 
     * @return string  
 
     */
 
     */
     public static function html()
+
     public static function html($error = NULL)
 
     {
 
     {
         return recaptcha_get_html(self::$_publicKey, self::$_error);
+
         return recaptcha_get_html(self::$_publicKey, $error);
 
     }
 
     }
 
     /**
 
     /**
 
     * Valida que el código colocado sea el correcto
 
     * Valida que el código colocado sea el correcto
     * @return boolean
+
     * @return Response
 
     */
 
     */
     public static function isValid()
+
     public static function validate()
 
     {
 
     {
 
         $ret = recaptcha_check_answer (self::$_privateKey,
 
         $ret = recaptcha_check_answer (self::$_privateKey,
Línea 61: Línea 58:
 
                 $_POST['recaptcha_challenge_field'],
 
                 $_POST['recaptcha_challenge_field'],
 
                 $_POST['recaptcha_response_field']);
 
                 $_POST['recaptcha_response_field']);
         if ( $ret->is_valid ){
+
 
            return TRUE;
+
         return $ret;
        }else{
 
            self::$_error = $ret->error;
 
            return FALSE;
 
        }
 
 
     }
 
     }
 
}
 
}
Línea 76: Línea 69:
 
<?php
 
<?php
 
Load::Lib("recaptcha");
 
Load::Lib("recaptcha");
class CaptchaController extends AppController
+
class CaptchaController extends ApplicationController
 
{
 
{
 
         public function index()
 
         public function index()
 
         {               
 
         {               
 
// Si vienen datos de formulario, los enviamos a la vista de nuevo
 
// Si vienen datos de formulario, los enviamos a la vista de nuevo
if (Input::hasPost('Datos')) $this->Datos = Input::post('Datos');
+
if ($this->has_post('Datos')) $this->Datos = $this->post('Datos');
  
 
// Comprobamos que se haya rellenado el reCAPTCHA
 
// Comprobamos que se haya rellenado el reCAPTCHA
                 if (Input::hasPost("recaptcha_response_field"))
+
                 if ($this->has_post("recaptcha_response_field"))
 
                 {
 
                 {
 
// Realizamos la comprobacion
 
// Realizamos la comprobacion
                         if (reCaptcha::isValid() {
+
                         $ret = reCaptcha::validate();
$this->Datos = Input::post('Datos');
+
                        if ($ret->is_valid) {
View::select("validado");
+
$this->Datos = $this->post('Datos');
 +
$this->render("validado");
 
}
 
}
 +
// Enviamos el error a la vista
 +
$this->previousError = $ret->error;
 +
                }else{
 +
                        //si no se ha enviando el captcha declaramas la variable a NULL
 +
                        $this->previousError = NULL;
 
                 }
 
                 }
 
         }
 
         }
Línea 101: Línea 100:
 
<strong>Rellena el cuadro con tu nombre: </strong>
 
<strong>Rellena el cuadro con tu nombre: </strong>
 
<?php  
 
<?php  
echo Form::open();
+
echo form_tag('captcha/');
echo Form::text('Datos.nombre');
+
echo input_field_tag('Datos.nombre');
 
 
echo reCaptcha::html();
 
  
echo Form::submit('Enviar datos');
+
// Cargamos la librería y le pedimos un código html
 +
Load::Lib("recaptcha");
 +
echo reCaptcha::html($previousError);
  
        echo Form::close();
+
echo submit_tag('Enviar datos');
 
?>
 
?>
 
</source>
 
</source>
  
  
Y por último, para de paso mostrar el método ''View::select()'' de KumbiaPHP, creamos la vista que se mostrará en cuanto validemos correctamente el captcha.  
+
Y por último, para de paso mostrar el método ''render'' de KumbiaPHP, creamos la vista que se mostrará en cuanto validemos correctamente el captcha.  
  
 
La vista es ''app/views/captcha/validado.phtml'':
 
La vista es ''app/views/captcha/validado.phtml'':

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: