大家早上好,我是新來的如此裸請與我...密碼數據庫沒有更新
我創建了一個名爲password_reset功能
我recover_password頁面完美的作品,併發送電子郵件和更新場所謂validation_code因爲我希望它...
現在當我收到的電子郵件發送該鏈接
要重置您的密碼,請訪問 http://localhost/cms/account/reset-password.php?email=myemail.net&code=313893625577
現在我有一個網頁叫做reset-password.php
如您在鏈接
看到當你點擊它後進入的網頁完全
我的HTML
<?php display_message();?>
<?php password_reset();?>
<form role="form" action="reset-password.php" method="post">
<div class="form-group">
<label>Verification Code</label>
<input class="form-control" type="text" id="verification_code" name="verification_code" value="<?php echo isset($_GET['code']) ? $_GET['code'] : '';?>">
</div>
<div class="form-group">
<label>Email Address</label>
<input class="form-control" type="text" id="email" name="email" value="<?php echo isset($_GET['email']) ? $_GET['email'] : '';?>">
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" type="text" id="password" name="password" placeholder="Password">
</div>
<div class="form-group">
<label>Confirm New Password</label>
<input class="form-control" type="text" id="confirm_password" name="confirm_password" placeholder="Confirm Password">
</div>
<input type="submit" name="submit" id="btn-login" class="btn btn-custom btn-lg btn-block" value="Reset Password">
<input type="hidden" class="hide" name="token" id="token" value="<?php echo token_generator();?>">
</form>
我用
value="<?php echo isset($_GET['code']) ? $_GET['code'] : '';?>">
value="<?php echo isset($_GET['email']) ? $_GET['email'] : '';?>">
從url中拉出值並放入字段中...問題在於它當你在新的密碼
我有復位頁面上4場
驗證碼 電子郵件 密碼 confirm_password
現在當我把密碼保存在我點擊類型將不會更新密碼提交它不會更新密碼。
function password_reset()
{
if (isset($_COOKIE['temp_access_code'])) {
if (isset($_POST['email']) && isset($_POST['code'])) {
if (isset($_SESSION['token']) && isset($_POST['token'])) {
if ($_POST['token'] === $_SESSION['token']) {
if ($_POST['password'] === $_POST['confirm_password']) {
$updated_password = password_hash($_POST['password']);
$sql = "UPDATE users SET user_pwd = '" . escape($updated_password) . "', validation_code = 0 WHERE user_email = '" . escape($_GET['email']) . "'";
query($sql);
set_message("your password was updated");
}
}
}
}
} else {
set_message("Sorry your time has expired");
redirect("../account/request-password-reset.php");
}
}// End Function
這裏是個什麼樣子,當你點擊電子郵件
謝謝您的回覆我已經試過,但得到相同的結果 – Phpfreak
錯誤是顯而易見的,你通過發佈sendung表單,並請求GET參數。你應該用'<?php echo $ _GET ['email'];'用'<?php echo isset($ _ GET ['email'])'來改變這兩行。 $ _GET ['email']:'';'這應該處理錯誤,但不存儲不受此影響。 –
我已經對代碼進行了編輯,因爲您已經建議表單如何運行,它不會更新密碼或顯示set_message(「您的密碼已更新」);或重定向 – Phpfreak