这是一个PHP实现的用户登录系统,包含会话管理、数据库连接和密码验证功能。
<?php
session_start(); //启动PHP会话,用于在用户登录后保存会话数据。
require 'db_connect.php'; //引入数据库连接文件,建立与数据库的连接。
if ($_SERVER['REQUEST_METHOD'] === 'POST') { //检查当前请求是否为POST方法。
if (isset($_POST['login'])) { //验证表单中是否有提交的登录按钮。
$username = trim($_POST['username']); //获取并去除用户名的前后空格。
$password = trim($_POST['password']); //获取并去除密码的前后空格。
//准备SQL查询语句,防止SQL注入。
$stmt = $conn->prepare("SELECT id, username, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username); //绑定用户名参数到SQL语句。
$stmt->execute(); //执行SQL查询。
$result = $stmt->get_result(); //获取查询结果。
if ($result->num_rows === 1) { //检查查询结果是否只有一行。
$user = $result->fetch_assoc(); //获取关联数组形式的用户数据。
if (password_verify($password, $user['password'])) { //验证密码是否正确。
$_SESSION['user_id'] = $user['id']; //将会话数据保存到当前会话中。
$_SESSION['username'] = $user['username']; //保存用户名到会话。
header("Location: dashboard.php"); //重定向到仪表盘页面。
exit(); //终止脚本执行。
} else {
$error = "Invalid username or password"; //设置错误信息。
}
} else {
$error = "Invalid username or password"; //如果没有找到用户,同样设置错误信息。
}
}
}
?>
评论