php如何实现登录
PHP 实现登录功能的方法
创建登录表单
在 HTML 中创建一个表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件,method 设置为 post。

<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>
处理登录请求
在 login.php 文件中,接收表单提交的数据,验证用户名和密码是否匹配数据库中的记录。

<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
// 连接数据库
$conn = new mysqli('localhost', 'db_user', 'db_password', 'db_name');
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询用户
$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
header("Location: dashboard.php");
} else {
echo "密码错误";
}
} else {
echo "用户不存在";
}
$stmt->close();
$conn->close();
?>
使用会话保持登录状态
登录成功后,将用户 ID 存储在 $_SESSION 中,以便在其他页面验证用户是否已登录。
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
?>
密码哈希处理
在注册或修改密码时,使用 password_hash 函数对密码进行哈希处理,确保安全性。
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
安全建议
- 使用预处理语句防止 SQL 注入。
- 启用 HTTPS 保护数据传输安全。
- 对敏感操作增加 CSRF 防护。
以上步骤实现了基本的 PHP 登录功能,可以根据实际需求进一步扩展和完善。






