Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/03/2016, 15:01
Avatar de Javier01
Javier01
 
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 17 años
Puntos: 31
Respuesta: No trae password de base de datos

buenas tardes,

El problema de tener más de un return en un método o función, es que a veces, en lenguajes débilmente tipados o no tipados (como PHP)
devolvemos distintos tipos de datos, los cuales no podemos tratar de la misma manera al recibirlos.

En la clase user tienes el siguiente código
Código PHP:
if($query -> num_rows() >= 1

 return 
$query->result_array(); 

else 

 return 
false

donde, en el caso de encontrar un registro, devuelve un array, pero en caso contrario, devuelve un dato booleano de valor false.
Yo supongo que el problema está en que al entrar en el else, y devolver false, $data que es la variable que recibe esta respuesta, no
se comporta como array, sino que se comporta como booleano.
Por esa razón, en la siguiente línea, donde intentas acceder a un valor de $data como array, da un error.
Código PHP:
$data $this->user->getPasswordUser($user); 
$passw $data['userPass']; 
Mi recomendación es, primero, declarar en getPasswordUser una variable que sea tu return al final (fuera del if).
Esta variable es la que cambia según entre en una condición o en otra.
Segundo, devolver siempre el mismo tipo de datos. Array por ejemplo. Puedes devolver el array con el índice “userPass” vacío
Y cuando lo recibas poner una condición “si viene vacío, el usuario no existe”, “sino, verifico password”

Espero haberte ayudado

Saludos!
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.