問題がどこにあるかを見つけました。非常に厄介なエラー500が発生した場合は、ログを確認してください。ログを確認すると、メソッドcheckhashSSHA()
が見つかりました。 使用されていなかったため、次のエラーが発生していました:
PHP Fatal error: Call to undefined function checkHashSSA() in /xxx/xxx/xxx/xxx/UserFunctions.php on line 54
そのため、パスワードを復号化するために次のコードを追加しました。
public function getUserByEmailAndPassword($email, $password) {
$stmt = $this->conn->prepare("SELECT * FROM users WHERE UserEmail = ?");
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
$user = $stmt->get_result()->fetch_assoc();
$salt = $user['salt'];
$userPassword = $user['UserPassword'];
$hash = $this->checkhashSSHA($salt, $password);
if ($userPassword == $hash) {
return $user;
}
$stmt->close();
} else {
return NULL;
}
}
これで私のエラーは解決しました。
念のため、このようなエラーのログは通常、次の場所にあります:var/log/apache2/error.log
これらのエラーをログに記録するには、php.iniファイルに変更を加える必要がある場合があります。
これが500エラーのある人に役立つことを願っています;)