次のようなパスワードを格納するデータベース フィールドがありました。
TeacherPassword
j.lu01
pesci02
cricket01
ユーザーがパスワードを入力するテキストボックスがあり、それが行の1つと一致すると、次のページに移動します。以下は、パスワードをチェックするコードです。
$teacherpassword = (isset($_POST['teacherpassword'])) ? $_POST['teacherpassword'] : '';
if (isset($_POST['submit'])) {
// don't use $mysqli->prepare here
$query = "SELECT * FROM Teacher WHERE TeacherPassword = ? LIMIT 1";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("s",$teacherpassword);
// execute query
$stmt->execute();
// get result and assign variables (prefix with db)
$stmt->bind_result($dbTeacherPassword);
しかし、私が行ったことは、フィールドがパスワードを文字列として表示するのではなく、パスワードが安全であるように一連の文字として表示するように、パスワード フィールドを更新したことです。以下は私が行った更新です:
UPDATE Teacher
SET TeacherPassword = Password(TeacherPassword);
これにより、パスワード フィールドは次のようになります。
TeacherPassword
*6FF132E0666AC8462BC
*FCF5F8CE105D0748315
*FD4FA4B60EEF1E24050
私の質問は、MYsqli コードで、テキスト ボックスに入力された文字列パスワードを取得してj.lu01
、データベース行のハッシュ パスワードと一致させるにはどうすればよい*6FF132E0666AC8462BC
ですか?