Estoy usando Active Record en CodeIgniter. Estoy confundido sobre qué enfoque debo tomar. Actualmente, nuestro sistema de inicio de sesión permite que el usuario use el nombre de usuario/correo electrónico para el inicio de sesión junto con la contraseña. Pero mi registro activo actual parece permitir que el usuario inicie sesión si elige usar el correo electrónico + sin contraseña.codeigniter active record where, or_where?
En este momento este es mi consulta:
$this->db->select('id,level,email,username');
$this->db->where('email',$user);
$this->db->or_where('username',$user);
$this->db->where('password',$pass);
$query = $this->db->get('users');
if($query->num_rows>0)
return TRUE;
else
return FALSE;
entradas de ejemplo:
- Nombre de usuario: prueba | Contraseña: pase | Resultado: éxito
- Nombre de usuario: prueba | Contraseña: vacío | Resultado: No se ha podido
- Nombre de usuario: [email protected] | Contraseña: pase | Resultado: éxito
- Nombre de usuario: [email protected] | Contraseña: vacío | Resultado: éxito
La cuarta entrada de prueba debe ser Error en consecuencia, pero parece que se registra el usuario, incluso si la contraseña está vacía.
Gran! Gracias por esta rápida respuesta. –
¿esto no derrota el propósito del registro activo y abre la aplicación para inyección SQL? –