我正在使用 Mac OS、mamp、phpmyadmin 创建一个简单的登录表单。我在 php myadmin 和第一个用户中创建了我的数据库。我确定用户名和密码正确(根据我的数据库),但我收到密码不正确的错误。我松散地遵循本教程https://www.tutorialrepublic.com/php-tutorial/php-mysql-login-system.php我相信这可能会导致错误,但我不确定。$hashed_password = $row["password"]; if(password_verify($password, $hashed_password)){<?php// Initialize the sessionsession_start();// Check if the user is already logged in, if yes then redirect him to welcome pageif(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){ header("location: welcome.php"); exit;}// Include config filerequire_once "config.php";// Define variables and initialize with empty values$username = $password = "";$username_err = $password_err = "";// Processing form data when form is submittedif($_SERVER["REQUEST_METHOD"] == "POST"){ // Check if username is empty if(empty(trim($_POST["username"]))){ $username_err = "Please enter username."; } else{ $username = trim($_POST["username"]); } // Check if password is empty if(empty(trim($_POST["password"]))){ $password_err = "Please enter your password."; } else{ $password = trim($_POST["password"]); } // Validate credentials if(empty($username_err) && empty($password_err)){ // Prepare a select statement $sql = "SELECT id, username, password FROM users WHERE username = :username"; if($stmt = $pdo->prepare($sql)){ // Bind variables to the prepared statement as parameters $stmt->bindParam(":username", $param_username, PDO::PARAM_STR); // Set parameters $param_username = trim($_POST["username"]);?>我希望被带到我的欢迎屏幕。
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
修复我更换
$hashed_password = $row["password"];
if(password_verify($password, $hashed_password)){
和
$hashed_password = password_hash( $_POST["password"], PASSWORD_DEFAULT);
if(password_verify($_POST["password"], $hashed_password)){
此哈希密码在将它们存储在数据库中之前,然后根据哈希密码验证计划文本
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
验证方法需要散列密码。您$row["password"]包含散列密码(如果您password_hash()在用户注册中使用函数),而收到的密码$_POST是纯文本密码。
使用以下内容:
if (password_verify($_POST["password"], $row["password"])) {
// User authorized
} else {
// User non authorized
}
- 2 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消