PHP හි මුරපදය වෙනස් කිරීම
මුරපදය වෙනස් කිරීම සරලව තනි ගිණුම තුළ කළ නොහැකිය. එයට හේතුව වන්නේ, පරිශීලකයාට අපගේ වෙබ් අඩවියට ප්රවේශය ලබා සිටියදී (උදාහරණයක් ලෙස, කාර්යාලයේදී) ඔහුගේ පරිගණකය නිරීක්ෂණය නොකර තැබිය හැකි බැවිනි. මෙම අවස්ථාවේදී, සරලව මුරපදය වෙනස් කිරීමට ඉඩ දුන්නේ නම්, අයහපත් අදහස් ඇති අයුක්තිකරුවෙකුට වෙනත් මුරපදයකට වෙනස් කළ හැකිය, එය ඇත්ත වශයෙන්ම ඉතා නරක දෙයකි.
නව මුරපදයකට වෙනස් කිරීමට පැරණි මුරපදය ඇතුළු කිරීම අවශ්ය වන පරිදි සකස් කළ යුතුය.
අපි changePassword.php පිටුව ක්රියාත්මක කරමු,
එයට පිවිසෙන පරිශීලකයාට ආදාන දෙකක් සහිත පෝරමයක්
දකිනු ඇත - පළමුවැන්නෙන් ඔහු ඔහුගේ පැරණි මුරපදය
ඇතුළු කළ යුතු අතර දෙවැන්නෙන් - නව මුරපදය:
<form action="" method="POST">
<input name="old_password">
<input name="new_password">
<input type="submit" name="submit">
</form>
යොමු කිරීමේ බොත්තම ක්ලික් කිරීමෙන් අප විසින් පහත දේ කළ යුතුය:
<?php
$id = $_SESSION['id']; // සැසියෙන් පරිශීලක ID
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
$hash = $user['password']; // දත්ත සමුදායෙන් ලුණු කරන ලද මුරපදය
$oldPassword = $_POST['old_password'];
$newPassword = $_POST['new_password'];
// දත්ත සමුදායේ හැෂ් එක සමඟ ඇතුළත් කළ පැරණි මුරපදයේ ගැලපීම පරීක්ෂා කරන්න
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 {
// පැරණි මුරපදය වැරදි ලෙස ඇතුළු කර ඇත, පණිවිඩය ප්රදර්ශනය කරන්න
}
?>
විස්තර කර ඇති මුරපද වෙනස් කිරීම ක්රියාත්මක කරන්න.