Foros del Web » Programando para Internet » PHP » CodeIgniter »

[SOLUCIONADO] Comprobar si un email existe y verificar la contraseña

Estas en el tema de Comprobar si un email existe y verificar la contraseña en el foro de CodeIgniter en Foros del Web. queria sustituir esto: Código PHP: $result  =  $this -> db -> query ( "SELECT * FROM user WHERE email ='" . $email . "' LIMIT 1" );  por esto: Código PHP: $result  =  ...
  #1 (permalink)  
Antiguo 22/05/2015, 10:28
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Comprobar si un email existe y verificar la contraseña

queria sustituir esto:
Código PHP:
$result $this->db->query("SELECT * FROM user WHERE email ='".$email."' LIMIT 1"); 
por esto:
Código PHP:
$result $this->db->get('user',['email'=>$email]); 
Pero el segundo permite logearse solo con la contraseña lo cual no debería pasar

login.php
Código PHP:
<?php
defined
('BASEPATH') OR exit('No direct script access allowed');

class 
Login extends CI_Controller {

    public function 
index()
    {
        
$email        $this->input->post('email');
        
$password    $this->input->post('password');

        
$this->load->model('user');
        
$fila $this->user->getUser($email);

        if (
$fila != null) {
            if (
$fila->password == $password) {
                
$data = [
                    
'email'    => $email,
                    
'id'    => $fila->id,
                    
'login'    => true
                
];
                
$this->session->set_userdata($data);
                
header('Location: '.base_url());

            } else {
                
header('Location: '.base_url());
            }
        } else {
            
header('Location: '.base_url());
        }
    }

    public function 
logout()
    {
        
$this->session->sess_destroy();
        
header('Location: '.base_url());
    }

}
user.php
Código PHP:
<?php
defined
('BASEPATH') OR exit('No direct script access allowed');

class 
User extends CI_Model {

    public function 
getUser($email '')
    {
        
$result $this->db->query("SELECT * FROM user WHERE email ='".$email."' LIMIT 1");
        
#$result = $this->db->get('user',['email'=>$email]); /*FALLA*/
        
return $result->num_rows() ? $result->row() : null ;
    }

}

Última edición por quico5; 22/05/2015 a las 10:33
  #2 (permalink)  
Antiguo 22/05/2015, 10:54
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: Comprobar si un email existe y verificar la contraseña

Deberías usar get_where en lugar de get, si vas a pasar la condición como segundo parámetro. Si después sigues obteniendo el mismo error, haz un var_dump a lo que te retorna getUser.
  #3 (permalink)  
Antiguo 22/05/2015, 11:55
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Comprobar si un email existe y verificar la contraseña

Funciono, muchas gracias

Etiquetas: contraseña, email, verificar
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 06:39.