⊗ppPmAuPCh 429 of 447 menu

Cambio de contraseña en PHP

No se puede simplemente cambiar la contraseña en la cuenta personal. El problema es que el usuario puede dejar su computadora desatendida (por ejemplo, en la oficina), estando autorizado en nuestro sitio web. En este caso, si permitimos cambiar simplemente la contraseña, un intruso malintencionado podría cambiar la contraseña por otra, lo que, por supuesto, es muy malo.

Es necesario hacer que el cambio de contraseña a una nueva requiera ingresar la contraseña anterior.

Implementemos la página changePassword.php, al acceder a la cual el usuario verá un formulario con dos inputs: en el primero deberá ingresar su contraseña anterior, y en el segundo, la nueva:

<form action="" method="POST"> <input name="old_password"> <input name="new_password"> <input type="submit" name="submit"> </form>

Al presionar el botón de envío debemos hacer lo siguiente:

<?php $id = $_SESSION['id']; // id del usuario desde la sesión $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // contraseña con hash de la BD $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Verificamos la correspondencia del hash de la base de datos con la contraseña anterior ingresada if (password_verify($oldPassword, $hash)) { $newPasswordHash = password_hash($newPassword, PASSWORD_DEFAULT); $query = "UPDATE users SET password='$newPasswordHash' WHERE id='$id'"; mysqli_query($link, $query); } else { // la contraseña anterior se ingresó incorrectamente, mostraremos un mensaje } ?>

Implemente el cambio de contraseña descrito.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar