[英]Change Password PHP Issue
我正在下面運行以下代碼,嘗試將數據庫中的當前密碼更新為以允許更改密碼的形式指定的新密碼。 我在兩個字段中都輸入了相同的密碼,所以我不明白為什么會發生錯誤。
<form method='post' action="changepasswordphp.php">
<p align="center"><strong> Complete the form to change your password </strong> </p>
<br/>
<label><strong>Enter Old Password:</strong></label>
<input name='oldpw' type='password' required='required'/>
<br/>
<br/>
<label><strong>Enter New Password:</strong></label>
<input name='newpw' type='password' required = 'required' />
<br/>
<br/>
<label><strong>Confirm New Password:</strong></label>
<input name='conpw' type='password' required = 'required' />
<br/>
<br/>
<input type='submit' value='Submit' class ="submit" id="submit" />
</form>
$mysqli = new mysqli("localhost", "root", "DBPASS", "DBNAME");
if (isset($_POST['newpw'])){
$pw=$mysqli->query("SELECT userPass FROM usertable WHERE userID= '" . $_SESSION['sess_uid'] . "'");
$row = $pw->fetch_object();
$pawo = $row->userPass;
if (md5($_POST['oldpw'])== $pawo){
if (md5($_POST['newpw'])===(md5($_POST['conpw']))){
$mysqli->query("UPDATE usertable SET userPass='" . md5($_POST['newpw']) . "' WHERE userID='" . $_SESSION['sess_uid'] . "'");
}
else { echo "Passwords don't match"; }
}
else { echo "An Error Occured";}
}
?>
我收到錯誤消息“發生錯誤”,我不確定是什么原因導致了此問題。 任何幫助將不勝感激!
謝謝
我不是很熟悉MySQLi代碼,但這看起來是錯誤的:
$pw=@$mysqli->query("SELECT userPass FROM usertable WHERE userID= '" . $_SESSION['sess_uid'] . "'");
$row = $pw->fetch_object();
$pawo = $row->password ;
密碼字段是userPass
還是password
? 另外,請勿使用MD5(使用password_hash ),也不要使用==來比較哈希密碼。 (改用===)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.