Paroles maiņa PHP
Paroles maiņu nevar vienkārši veikt personīgajā kontā. Lieta tāda, ka lietotājs var atstāt savu datoru bez uzraudzības (piemēram, birojā), būdams autorizējies mūsu mājaslapā. Šajā gadījumā, ja atļaut vienkārši mainīt paroli, tad ļaunprātīgais-nelabvēlīgais varēs nomainīt paroli uz citu, kas, protams, ir ļoti slikti.
Ir jāpanāk, lai paroles maiņa uz jaunu prasītu vecās paroles ievadi.
Realizēsim lapu changePassword.php,
ierodoties kurā lietotājs redzēs formu
ar diviem ievades laukiem - pirmajā viņam būs jā
ievada sava vecā parole, bet otrajā - jaunā:
<form action="" method="POST">
<input name="old_password">
<input name="new_password">
<input type="submit" name="submit">
</form>
Nospiežot nosūtīšanas pogu, mums jāveic sekojošais:
<?php
$id = $_SESSION['id']; // lietotāja id no sesijas
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
$hash = $user['password']; // sālītā parole no datu bāzes
$oldPassword = $_POST['old_password'];
$newPassword = $_POST['new_password'];
// Pārbaudām vecās paroles atbilstību hash no datu bāzes
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 {
// vecā parole ievadīta nepareizi, izvadīsim ziņojumu
}
?>
Realizējiet aprakstīto paroles maiņu.