Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/03/2013, 05:30
Avatar de aalleexx81
aalleexx81
 
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 15 años
Puntos: 0
SOLUCIONADO:: Respuesta: Problema pantalla de login

No he conseguido que funcione el código anterior, pero gracias a la web de David Rojas y un poco de paciencia he conseguido crear un código que realiza la validación de un mail y una contraseña introducidos en un formulario.

Para conseguir que funcione, debéis crear una tabla usuario, con los campos mail y password.

A continuación muestro el código de los diferentes ficheros:

Controlador formulario.php

Código PHP:
class Formulario extends CI_Controller {

   public function 
__construct(){
        
        
parent:: __construct();        
        
$this->load->helper(array('url''form'));
        
$this->load->library('form_validation');
        
$this->load->model('Formulario_model');
   } 

   function 
index()
   {
      
//establezco las reglas de validación 
      
$this->form_validation->set_rules('email''EMail''required|valid_email|max_length[50]');            
      
$this->form_validation->set_rules('password''Password''required|max_length[20]');
      
      
//Si no supera las reglas de validación se recarga la vista inciail del formulario
      
if($this->form_validation->run() == FALSE){ 
            
          
$this->load->view('formulario_login/vista_formulario');
      }
      else{
         
//Si la validación es correcta , recogemos los datos y procedeermos a la validación mediante el código insertado en el modelo 
         
$data['email'] = $this->input->post('email');
         
$data['password'] = $this->input->post('password');         
         
/*otra posible opción para enviar los datos recibidos mediante el formulario sería:
           $data['email'] = $_POST['email'];
           $data['password'] = $_POST['password'];*/
         
         
$numrows $this->Formulario_model->ValidarUsuario($this->input->post('email'), $this->input->post('password'));
         
//otra opción sería: $numrows = $this->Formulario_model->ValidarUsuario($_POST['email'], $_POST['password']);
         
         
if(!$numrows){//si el número de filas devueltas en la consulta es 0
             
$this->load->view('formulario_login/vista_formulario_error');
         }
         else{
              
$this->load->view('formulario_login/vista_formulario_exito'$data); 
         }
      }
      
      
   }

Modelo: vista_formulario

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulario Login</title>
</head>

<body>

<?php 
echo validation_errors();//muestra los errores al enviar los datos del formulario
echo form_open('formulario'); 
echo 
form_label('Usuario','email');
echo 
form_input(array('name' => 'email''id' => 'email''size' => '50''value' => set_value('email')));
echo 
form_label('Password','password');
echo 
form_password(array('name' => 'password''id' => 'password''size' => '20''value' => set_value('password')));
echo 
form_submit('enviar','Enviar');
echo 
form_close();
?>
</body>
</html>
¡Las tres vistas están dentro de la carpeta formulario_login, fíjense en que la ruta lo indica!

Vista del formulario: vista_formulario.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulario Login</title>
</head>

<body>

<?php 
echo validation_errors();//muestra los errores al enviar los datos del formulario
echo form_open('formulario'); 
echo 
form_label('Usuario','email');
echo 
form_input(array('name' => 'email''id' => 'email''size' => '50''value' => set_value('email')));
echo 
form_label('Password','password');
echo 
form_password(array('name' => 'password''id' => 'password''size' => '20''value' => set_value('password')));
echo 
form_submit('enviar','Enviar');
echo 
form_close();
?>
</body>
</html>
Vista Éxito: vista_formulario_exito.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<h1>"Welcome home <?php echo $email ?>!!!"</h1> 
<?php
echo "Usuario: ".$email."<br>";
echo 
"Password: ".$password['password']."<br>";

echo 
anchor('formulario''Volver al formulario');?>
</body>
</html>
Vista Error: vista_formulario_error.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Vista Login Error</title>
</head>

<body>

<h1>ERROR al insertar el usuario o la password!!!</h1> 
<?php echo anchor('formulario''Volver al formulario');?>
</body>
</html>
Espero que os sirva de ayuda.

Muchas gracias y un cordial saludo a tod@s.


Última edición por aalleexx81; 04/03/2013 a las 20:27