Verificar contraseña actual guardada en la bd
Publicado por yoclens (20 intervenciones) el 23/03/2023 01:52:23
Hola actualmente tengo un problema para proceder al cambio de contraseña, resulta que si ingreso una contraseña que no es la que esta guardada en mi bd igualmente me cambia la contraseña y no debería porque no es la que esta guardada en mi bd y debería saltar la alerta de: Contraseña Actual Incorrecta. !.
todo lo demás funciona bien. Anexo código.
todo lo demás funciona bien. Anexo código.
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<!-- cambiar contraseña-->
<?php
{
if(isset($_POST['modificar'])) {
// consulto campos vacios
$pass = $_POST['pass'];
$nuevaclave = $_POST['nuevaclave'];
$nuevaclaveconfirme = $_POST['nuevaclaveconfirme'];
if(strlen(trim($pass)) < 1 || strlen(trim($nuevaclave)) < 1 || strlen(trim($nuevaclaveconfirme)) < 1) {
$alert = "<div class='col-md-4 mb-2 offset-md-4 alert alert-warning' role='alert'>
! <strong>Ups Aviso:</strong> No pueden haber campos vacíos. !
</div>";
} else {
// consulto la contrasena actual guardada en la bd
$user = $_SESSION['id_nivel'];
$pass = $_POST['pass'];
// Preparamos la consulta y la ejecutamos
$sql = "SELECT * FROM usuarios WHERE user = :user AND pass = :pass LIMIT 1"; //Creamos la select
$sql = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
$sql->bindParam(':user', $_POST['user']);
$sql->bindParam(':pass', $_POST['pass']);
$sql->execute();
// Comprobamos si ha devuelto algun registro
if($sql->rowCount()>0){
$check->closeCursor();
$alert = "<div class='col-md-4 mb-2 offset-md-4 alert alert-warning' role='alert'>
! <strong>Ups Aviso:</strong> Contraseña Actual Incorrecta. !
</div>";
} else {
if($_POST['nuevaclave'] != $_POST['nuevaclaveconfirme']) {
$alert = "<div class='col-md-4 mb-2 offset-md-4 alert alert-warning' role='alert'>
! <strong>Ups Aviso:</strong> Las Contraseñas Ingresadas no Coinciden. !
</div>";
} else {
// todo va bien actualizo la contraseña
$user = $_SESSION['user'];
$pass = $_POST['pass'];
$sql = "UPDATE usuarios SET pass= :pass WHERE user= :user"; //Creamos la select
$perfil = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
$perfil->bindParam(':pass',$pass,PDO::PARAM_STR);
$perfil->bindParam(':user', $_SESSION['user'],PDO::PARAM_STR);
$perfil->execute();
if($perfil) {
$alert = "<div class='col-md-4 mb-2 offset-md-4 alert alert-primary' role='alert'>
! <strong>Exelente:</strong> Contraseña Actualizada Correctamente. !
</div>";
} else {
$alert = "<div class='col-md-4 mb-2 offset-md-4 alert alert-warning' role='alert'>
! <strong>Aviso:</strong> No se Pudo Cambiar la Contraseña. !
</div>";
}
}
}
}
}
}
?>
<!-- fin cambiar contraseña-->
Valora esta pregunta


0