
Problema al encriptar contraseña y despues hacer login
Publicado por Armando (5 intervenciones) el 12/12/2017 13:12:25
Buenas a toda la comunidad.
He estado siguiendo un curso sobre PHP con el patrón MVC y la verdad que esta bien el curso, pero he tenido un problema al registrar un usuario encriptando la contraseña con la funcion crypt, porque al hacer el login utilizando la misma funcion, me salta el intento fallido de logeo y cuando lo hago sin la funcion crypt se loegea perfectamente.
adjunto el codigo para ver si pueden guiarme en el buen camino.
Muchas gracias a todos y espero hallar la solución para seguir aprendiendo.
También he intentado con la funcion password_verify y me sigue negando el logeo.
La verdad que no se donde esta el fallo si estoy escribiendo mal las funciones o yo no se interpretar el código
He estado siguiendo un curso sobre PHP con el patrón MVC y la verdad que esta bien el curso, pero he tenido un problema al registrar un usuario encriptando la contraseña con la funcion crypt, porque al hacer el login utilizando la misma funcion, me salta el intento fallido de logeo y cuando lo hago sin la funcion crypt se loegea perfectamente.
adjunto el codigo para ver si pueden guiarme en el buen camino.
Funcion de Registro de usuario
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
#Registro de Usuario
#-----------------------------------
public function registroUsuarioController(){
if(isset($_POST["usuarioRegistro"])){
if(preg_match('/^[a-zA-Z0-9]+$/', $_POST["usuarioRegistro"]) &&
preg_match('/^[a-zA-Z0-9]+$/', $_POST["passwordRegistro"]) &&
preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $_POST["emailRegistro"])){
$encriptarRegistro = crypt($_POST["passwordRegistro"], '$2y$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');
$datosController = array("usuario"=>$_POST["usuarioRegistro"],
"password"=>$encriptarRegistro,
"email"=>$_POST["emailRegistro"]);
$respuesta = Datos::registroUsuarioModel($datosController, "usuarios");
if($respuesta == "success"){
header("location:index.php?action=ok");
}
else{
header("location:index.php");
}
}
}
}
Funcion de logeo de usuario
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#Ingreso De Usuario
#---------------------------
public function ingresoUsuarioController(){
if(isset($_POST["usuarioIngreso"])){
if(preg_match('/^[a-zA-Z0-9]+$/', $_POST["usuarioIngreso"]) &&
preg_match('/^[a-zA-Z0-9]+$/', $_POST["passwordIngreso"])){
$encriptarIngreso = crypt($_POST["passwordIngreso"], '$2y$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');
$datosController = array("usuario" => $_POST["usuarioIngreso"], "password" =>$encriptarIngreso);
$respuesta = Datos::ingresoUsuarioModel($datosController, "usuarios");
$intentos = $respuesta["intentos"];
$usuario = $_POST["usuarioIngreso"];
$maximoIntentos = 2;
if($intentos < $maximoIntentos){
if($respuesta["usuario"] == $_POST["usuarioIngreso"] && $respuesta["password"] == $encriptarIngreso){
session_start();
$_SESSION["validar"] = true;
$intentos = 0;
$datosIntentos = array("usuarioActual"=>$usuario, "actualizarIntentos"=>$intentos);
$respuestaActualizarIntentos = Datos::intentosUsuarioModel($datosIntentos, "usuarios");
header("location:index.php?action=usuarios");
}
else{
++$intentos;
$datosIntentos = array("usuarioActual"=>$usuario, "actualizarIntentos"=>$intentos);
$respuestaActualizarIntentos = Datos::intentosUsuarioModel($datosIntentos, "usuarios");
header("location:index.php?action=fallo");
}
}
else{
$intentos = 0;
$datosController = array("usuarioActual"=>$usuario, "actualizarIntentos"=>$intentos);
$respuestaActualizarIntentos = Datos::intentosUsuarioModel($datosController, "usuarios");
header("location:index.php?action=fallo3intentos");
}
}
}
}
Muchas gracias a todos y espero hallar la solución para seguir aprendiendo.
También he intentado con la funcion password_verify y me sigue negando el logeo.
Logeo con passwprd verify
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#---------------------------
public function ingresoUsuarioController(){
if(isset($_POST["usuarioIngreso"])){
if(preg_match('/^[a-zA-Z0-9]+$/', $_POST["usuarioIngreso"]) &&
preg_match('/^[a-zA-Z0-9]+$/', $_POST["passwordIngreso"])){
//$encriptarIngreso = crypt($_POST["passwordIngreso"], '$2y$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$');
$datosController = $_POST["usuarioIngreso"];
$respuesta = Datos::ingresoUsuarioModel($datosController, "usuarios");
$intentos = $respuesta["intentos"];
$usuario = $_POST["usuarioIngreso"];
$maximoIntentos = 2;
if($intentos < $maximoIntentos){
if($respuesta["usuario"] == $_POST["usuarioIngreso"] && password_verify($_POST["passwordIngreso"], $respuesta["password"]) == TRUE){
session_start();
$_SESSION["validar"] = true;
$intentos = 0;
$datosIntentos = array("usuarioActual"=>$usuario, "actualizarIntentos"=>$intentos);
$respuestaActualizarIntentos = Datos::intentosUsuarioModel($datosIntentos, "usuarios");
header("location:index.php?action=usuarios");
}
else{
++$intentos;
$datosIntentos = array("usuarioActual"=>$usuario, "actualizarIntentos"=>$intentos);
$respuestaActualizarIntentos = Datos::intentosUsuarioModel($datosIntentos, "usuarios");
header("location:index.php?action=fallo");
}
}
else{
$intentos = 0;
$datosController = array("usuarioActual"=>$usuario, "actualizarIntentos"=>$intentos);
$respuestaActualizarIntentos = Datos::intentosUsuarioModel($datosController, "usuarios");
header("location:index.php?action=fallo3intentos");
}
}
}
}
La verdad que no se donde esta el fallo si estoy escribiendo mal las funciones o yo no se interpretar el código
Valora esta pregunta


0