PHP - Fallo al cambiar contraseña contraseña con PHP

 
Vista:
sin imagen de perfil
Val: 93
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fallo al cambiar contraseña contraseña con PHP

Publicado por code (38 intervenciones) el 16/02/2021 23:50:54
Hola a todos tengo un formulario para que el usuario pueda cambiar la contraseña cuando lo desee, El problema que tengo es que no logro que me funcione , no se en que estaría fallando; tengo la contraseña encriptada con Md5.

Código del formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form method="post" action="">
 
    <div class="mt-2"><?php if(isset($message)) { echo $message; } ?></div>
 
    <label class="mt-2">Contraseña Actual</label>
    <input type="password" name="currentPassword" class="form-control"><span id="currentPassword" class="required"></span>
 
 
    <label class="mt-2">Contraseña Nueva</label>
    <input type="password" name="newPassword" class="form-control"><span id="newPassword" class="required"></span>
 
 
    <label class="mt-2">Repetir Contraseña</label>
    <input type="password" name="confirmPassword" class="form-control"><span id="confirmPassword" class="required"></span>
 
    <input type="submit" class="btn btn-success mt-3 text-uppercase text-white font-weight-bold" style="font-size: 13px;
    letter-spacing: 2px; background-color: #096AA2; border-color: #096AA2;
    border-radius: 0px;" value= "Guardar" >
</form>


y aquí tengo el código que me genera dicha acción pero no logro que la cambie pues siempre me sale error: La contraseña no se pudo cambiar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start();
$id = $_SESSION["iduser"];
require_once"conexion.php";
if(count($_POST)>0) {
$result = mysqli_query($conn,"SELECT * from usuario WHERE nombre='" . $id . "'");
$row=mysqli_fetch_array($result);
if($_POST["currentPassword"] == $row["clave"] && $_POST["newPassword"] == $row["confirmPassword"] ) {
mysqli_query($conn,"UPDATE usuario set clave='" . $_POST["newPassword"] . "' WHERE nombre='" . $id . "'");
$message = "Contraseña cambiada exitosamente";
} else{
 $message = "La contraseña no se pudo cambiar";
}
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Fallo al cambiar contraseña contraseña con PHP

Publicado por anonymous (53 intervenciones) el 17/02/2021 00:09:42
Estás diciendo: "WHERE nombre='" . $id ."

Ese $id es el iduser que tienes guardado en sesión

Le estás diciendo que cuando el nombre sea igual a ese ID, no se sabe con certeza cual es tu primary key en la tabla pero en el where debería ir es esa columna, a fin de garantizar que si actualice el usuario que es.

Te recomiendo que mejores la forma en que estás realizando esa transacción, así como está queda susceptible de que te inyecten sql maligno

Mira la encriptación de datos de MySQL con las funciones; aes_encrypt y aes_decrypt en el siguiente enlace para que mejores tu seguridad.

https://www.tutorialesprogramacionya.com/mysqlya/temarios/descripcion.php?inicio=63&cod=86&punto=84

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar