Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/06/2018, 17:35
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: al guardar mi contraseña encriptada no loguea

Mysqli es sólo la versión actualizada de mysql.

Sigue siendo necesario sanitizar los datos de entrada, ya sea mediante consultas preparadas o bien mediante el uso de funciones como mysql_real_escape_string.


Por otra parte, como ya te indiqué:
Código PHP:
Ver original
  1. $result = "SELECT * FROM registro WHERE email = '" . $_POST['email'] . "' AND password = '" . $_POST['password'] . "' ";

Esta condición nunca se va a dar, salvo que dentro de la variable $_POST['password'] guardes el hash de la contraseña, y sólo funcionará si el usuario mete bien el usuario y la contraseña, si se equivoca en alguno no sabrás en cuál de los dos datos se equivocó.

1. Consulta los datos del usuario, si no existe el usuario devuelves el error, si existe, vas al paso 2
Código PHP:
Ver original
  1. if(!mysql_num_rows($result = mysql_query("SELECT * FROM registro WHERE email = '" . $_POST['email'] . "'  "))
  2.         die("No existe el usuario");

2. Obtienes el hash del password, no he leído detalladamente cómo lo haces, pero impleméntalo en este paso:
Código PHP:
Ver original
  1. $hash=obtenerHash($_POST['password']);

3. De la fila de datos obtenida de la tabla de usuarios compara la columna del hash del password guardado con el hash nuevo:
Código PHP:
Ver original
  1. if($hash!=$row['password'])
  2.     die('Error password incorrecto');