我按照本教程為我的網(wǎng)站創(chuàng)建了一個(gè)登錄系統(tǒng),到目前為止它運(yùn)行良好。我完全按照步驟操作,創(chuàng)建了所有需要的文件等。用戶以自己的身份登錄時(shí),可以毫無問題地更改密碼。但是,我現(xiàn)在創(chuàng)建了一個(gè)受保護(hù)的目錄,它允許其他用戶重置其他用戶的密碼(以防他們忘記了密碼)。這段代碼如下:(我已經(jīng)包含了該頁面的所有代碼,除了我的一些樣式元素(例如,位于此代碼其余部分上方的菜單欄)。雖然我知道這可能不是最好的方法,但我想確保我是為您提供盡可能多的信息。)<?php// Initialize the sessionsession_start(); // Check if user is logged in. If N, return to /login/if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){ header("location: /login/"); exit;} ?><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>DAT Room Bookings</title><meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Scales to mobile --><link rel="stylesheet" type="text/css" href="style.css"> <!-- System style --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <!-- Icons --><link href="https://fonts.googleapis.com/css?family=Lato&display=swap" rel="stylesheet"> <!-- System font --><link rel="stylesheet" href="scripts/lightbox2-2.11.1/src/css/lightbox.css" /><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <!-- Drop Down Images --><script src="scripts/lightbox2-2.11.1/src/js/lightbox.js"></script> <!-- Lightbox Images --></head><?php/*EDIT.PHPAllows user to edit specific entry in database*/// creates the edit record form// since this form is used multiple times in this file, I have made it a function that is easily reusablefunction renderForm($id, $username, $password, $error){?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Edit Record</title></head><body><?php// if there are any errors, display themif ($error != '')表單正確顯示,并通過用戶的 ID 和用戶名提取。我設(shè)置的密碼哈希與我在網(wǎng)站的更改密碼功能中看到的一樣(使用默認(rèn)值)。當(dāng)我嘗試重置另一個(gè)用戶的密碼時(shí),我可以在 phpmyadmin 中看到哈希已更改,因此這意味著更改已正確完成。但是,這就是問題所在,當(dāng)該用戶嘗試使用新密碼再次登錄時(shí),他們被告知密碼不正確。我已經(jīng)并排查看了代碼,但我必須承認(rèn),作為 PHP 的新手,我對教程中的大部分代碼的作用知之甚少,這就是我嘗試創(chuàng)建此函數(shù)的原因我自己是一個(gè)簡化版本來執(zhí)行這個(gè)功能。
1 回答

慕少森
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
您在此處保存密碼為
$hashed = password_hash('$password', PASSWORD_DEFAULT);
您不需要在 $password 周圍加上單引號(hào)。此外,您確定在登錄頁面中,在驗(yàn)證憑據(jù)時(shí),使用了類似的邏輯嗎?可能像
$user['password'] == password_hash($_POST['password'],PASSWORD_DEFAULT)
其中 $user 是從數(shù)據(jù)庫中檢索的。
- 1 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報(bào)
0/150
提交
取消