实现php登录功能实现
PHP 登录功能实现步骤
数据库准备
创建用户表,包含字段如 id、username、password(需哈希存储)、email 等。示例 SQL:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);
注册功能
处理用户注册时,密码需使用 password_hash 加密:
$hashed_password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$_POST['username'], $hashed_password, $_POST['email']]);
登录验证
验证用户输入的密码与数据库存储的哈希是否匹配:
$sql = "SELECT id, username, password FROM users WHERE username = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$_POST['username']]);
$user = $stmt->fetch();
if ($user && password_verify($_POST['password'], $user['password'])) {
session_start();
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: dashboard.php");
} else {
echo "无效的用户名或密码";
}
会话管理
使用 session_start() 开启会话,登录后存储用户信息:
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
安全措施
- 使用预处理语句防止 SQL 注入。
- 密码必须哈希存储,推荐
password_hash和password_verify。 - 登录页面启用 HTTPS 保护数据传输。
- 设置会话过期时间并验证用户代理一致性。
前端表单示例
<form action="login.php" method="POST">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
退出登录
销毁会话并重定向到登录页:

session_start();
session_destroy();
header("Location: login.php");






