Login con hash
Publicado por raquel (27 intervenciones) el 20/08/2018 14:34:47
Muy buenas gente!! A ver si me pueden echar un cable.
Estoy realizando un sistema de registro de usuarios y Login con hash y me está dando un fallito a la hora de loguearse, a ver si vosotros veis algo que yo no estoy viendo, porque lo he hecho ya de 3 formas distintas y siempre me sale el mismo fallo, "el usuario no está registrado" (y es obvio que si lo está).
Os dejo el código del formulario de login:
y por aqui el código que comprueba el login:
La conexión va bien y lo que me muestra en este echo => echo "Correo: " . $registro['email_usuario'] . " Contraseña: " . $registro['clave_usuario'] . "<br>";
es esto: Correo: [email protected] Contraseña: $2y$10$DeaPPSPNeKfzbEEU8NQ6EecCwSu.seQHbB
es decir que el usuario está registrado, peeeeero no incrementa el contador y no me entra en el if... con lo cual siempre sale por el else :'( me podeis ayudar xfis???
Millones de gracias!!!!
Estoy realizando un sistema de registro de usuarios y Login con hash y me está dando un fallito a la hora de loguearse, a ver si vosotros veis algo que yo no estoy viendo, porque lo he hecho ya de 3 formas distintas y siempre me sale el mismo fallo, "el usuario no está registrado" (y es obvio que si lo está).
Os dejo el código del formulario de login:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<title>Login de usuarios</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-6">
<h2 class="ml-2 my-4 font-weight-bold">Login</h2>
</div>
</div>
</div>
<div class="container">
<form action="class/acceder.php" method="post">
<div class="form-group">
<div class="form-row col-md-6">
<label for="inputemail">Email</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Introduzca su email" pattern="^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" required>
</div>
<div class="form-row col-md-6 mt-3">
<label for="inputpassword">Contraseña (entre 6 y 8 caracteres)</label>
<input type="password" class="form-control" id="clave" name="clave" placeholder="Introduzca su contraseña" pattern="[A-Za-z0-9!?-]{6,8}" required>
<div class="invalid-tooltip">Please choose a unique and valid username.</div>
</div>
</div>
<button type="submit" id ="registro" class="btn btn-success ml-2">ACCEDER</button>
</form>
</div>
</body>
y por aqui el código que comprueba el login:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
include_once 'Conexion/conexion.php';
try{
//almacenamos en variables lo que el usuario ha introducido en el formulario
$contra=htmlentities(addslashes($_POST['clave']));
$correo=htmlentities(addslashes($_POST['email']));
$contador=0;//para saber si el login introducido esta o no en la bbdd
$sql="SELECT * FROM usuario WHERE email_usuario = :email";
$resultado=$pdo->prepare($sql);
$resultado->execute(array(":email"=>$correo));
while($registro=$resultado->fetch(PDO::FETCH_ASSOC)){
if(password_verify($contra,$registro['clave_usuario'])){
$contador++;
}
echo "Correo: " . $registro['email_usuario'] . " Contraseña: " . $registro['clave_usuario'] . "<br>";
}
if($contador>0){
session_start();//creamos sesion de usuario
$_SESSION['user']=htmlentities(addslashes($_POST['email']));
header('location:../admin.php');
}else{
echo "usuario no registrado";
}
$resultado->closeCursor();
}catch(Exception $e){
die("Error: " . $e->getMessage());
}
La conexión va bien y lo que me muestra en este echo => echo "Correo: " . $registro['email_usuario'] . " Contraseña: " . $registro['clave_usuario'] . "<br>";
es esto: Correo: [email protected] Contraseña: $2y$10$DeaPPSPNeKfzbEEU8NQ6EecCwSu.seQHbB
es decir que el usuario está registrado, peeeeero no incrementa el contador y no me entra en el if... con lo cual siempre sale por el else :'( me podeis ayudar xfis???
Millones de gracias!!!!
Valora esta pregunta


0