Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cómo utilizo form_validation de CI cuando los datos los mando con jquery

Estas en el tema de Cómo utilizo form_validation de CI cuando los datos los mando con jquery en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos, estoy tratando de armar una aplicacion utilizando CI y JQuery, tengo una vista de la siguiente manera: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 08/09/2011, 16:26
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Cómo utilizo form_validation de CI cuando los datos los mando con jquery

Hola amigos, estoy tratando de armar una aplicacion utilizando CI y JQuery, tengo una vista de la siguiente manera:

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  7.  
  8.     <title>Inicio</title>
  9.     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript" charset="utf-8"></script>
  10.     <script type="text/javascript" charset="utf-8">    
  11.         $(document).ready(function(){
  12.             $("#login").click(function(event){
  13.                 event.preventDefault();
  14.                 $.ajax({
  15.                     type: "POST",
  16.                     url: "<?php echo base_url();?>index.php/entradas/check_user",
  17.                     data: "user="+$("#user_name").val()+"&clave="+$("#password").val(),
  18.                     success: function(msg){
  19.                         if(msg=="true"){
  20.                             $("#usr_verify").html("<img src='<?php echo base_url();?>imagenes/yes.jpeg' /><h3>Usuario encontrado</h3>");
  21.                         }
  22.                         else{
  23.                             $("#usr_verify").html("<img src='<?php echo base_url();?>imagenes/no.jpeg' /><h3>Usuario no encontrado</h3>");                             
  24.                             //$("#usr_verify").css({ "background-image": "url('<?php echo base_url();?>imagenes/no.jpeg')" });
  25.                         }
  26.                     }
  27.                 });
  28.             });
  29.         });
  30.     </script>
  31. </head>
  32. <body>
  33.     <a id="login_a" href="#">login</a>
  34.     <div id="login_form">
  35.         <div class="err" id="add_err"></div>
  36.         <?php echo form_open('entradas/check_user'); ?>
  37.             <label>User Name:</label>
  38.             <input type="text" id="user_name" name="user_name" />
  39.             <?PHP form_error('userlogin');?>
  40.             <label>Password:</label>
  41.             <input type="password" id="password" name="password" />
  42.             <?PHP form_error('password');?>
  43.             <label></label><br/>
  44.             <input type="submit" id="login" value="Login" />
  45.             <input type="button" id="cancel_hide" value="Cancel" />
  46.        
  47.     </div>
  48.     <div id="shadow" class="popup"></div>
  49.     <div id="usr_verify" class="verify"></div>
  50. </body>
  51. </html>

Como podrán ver, tengo dos campos y los datos los estoy enviando por medio de ajax que ya trae jquery, en mi controlador tengo la siguiente función:

Código PHP:
Ver original
  1. public function check_user(){      
  2.        
  3.         $usr=$this->input->post('user');
  4.         $clv=$this->input->post('clave');
  5.  
  6.         $ExisteUsuarioyPassoword=$this->entradas_model->ValidarUsuario($usr,$clv);
  7.  
  8.         if($ExisteUsuarioyPassoword){          
  9.             if($this->entradas_model->EnabledUser($usr)){
  10.                
  11.                 $_SESSION['usuario']=$usr;
  12.                 echo "true";
  13.                
  14.             }else echo "false";
  15.         }
  16.         else{
  17.             echo "false";
  18.         }        
  19.     }

Bueno, el controlador solamente busca si un usuario existe en una base de datos, por eso lado funciona todo perfecto, cumple con lo que debe, la cuestión es que antes de incorporar jquery, en la función del controlador yo tenía algo parecido a lo siguiente:

Código HTML:
Ver original
  1. $this->form_validation->set_rules('maillogin','e-mail','required|valid_email');        
  2.                 $this->form_validation->set_rules('password','password','required');
  3.                
  4.                 //Verificamos si el usuario superó la validación
  5.                 if(($this->form_validation->run()==FALSE)){
  6.                     //En caso que no, volvemos a presentar la pantalla de login
  7.                     $this->load->view('login');
  8.                 }

Lo cual me servía para validar que no existieran campos vacíos, antes de enviar el formualrio con sus datos, el problema es que ahora que incorporé la funcionalidad de ajax gracias a jquery, no me funciona, o al menos no sé como hacer para que funcionen los métodos de form_validation, para hacer las validaciones con las herramientas que incorpora CI, No me gusta dejar las validaciones del lado del cliente puesto que no es seguro, siempre me gusta hacerlo del lado del servidor.

Me pueden hacer el favor de indicarme cómo podría hacer las validaciones que necesito?

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 10/09/2011, 18:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Cómo utilizo form_validation de CI cuando los datos los mando con jquery

no te funciona porque desde jQuery asignas el password con el nombre "clave" y no con el mismo nombre en el form "password" para CI es trasparente si viene por ajax siempre que sea por POST y con la misma estructura, además ¿para que te complicas la vida?: usa jQuery.serialize() y así te evitas de concatenaciones absurdas y cuando implementes protección CSRF ya lo tendrás cubierto
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 12/09/2011, 09:44
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Cómo utilizo form_validation de CI cuando los datos los mando con jquery

Muchas gracias, jQuery.serialize() si que es un salvavidas, lo que pasa es que estoy empezando con jquery, hablando de otra cosa, comp implementas la protección CSRF?

Desde ya ya agradeciendote tu ayuda
  #4 (permalink)  
Antiguo 12/09/2011, 14:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Cómo utilizo form_validation de CI cuando los datos los mando con jquery

http://codeigniter.com/user_guide/li.../security.html
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 13/09/2011, 10:20
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Cómo utilizo form_validation de CI cuando los datos los mando con jquery

gracias por el dato amigo

Etiquetas: jquery, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:06.