php页面登录实现
实现 PHP 页面登录功能
创建登录表单
在 HTML 文件中创建一个表单,包含用户名和密码输入字段。表单的 action 属性应指向处理登录的 PHP 文件,method 设置为 POST。
<form action="login.php" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<button type="submit">登录</button>
</form>
数据库连接
创建一个 PHP 文件用于数据库连接。使用 PDO 或 mysqli 扩展与数据库建立连接。

<?php
$host = 'localhost';
$dbname = 'your_database';
$username = 'db_username';
$password = 'db_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}
?>
登录验证处理
创建 login.php 文件处理登录请求。验证用户输入并检查数据库中的匹配记录。
<?php
session_start();
require 'db_connection.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $username);
$stmt->execute();
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header('Location: dashboard.php');
exit;
} else {
$error = "用户名或密码错误";
}
}
?>
密码哈希存储
在用户注册时应使用 password_hash() 函数对密码进行哈希处理后再存储到数据库。

$hashed_password = password_hash($plain_password, PASSWORD_DEFAULT);
会话管理
登录成功后使用 $_SESSION 存储用户信息,其他受保护页面通过检查会话变量来验证用户是否已登录。
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
?>
安全注意事项
- 使用 HTTPS 加密传输数据
- 对用户输入进行验证和过滤
- 使用预处理语句防止 SQL 注入
- 设置合理的会话过期时间
- 实现 CSRF 保护
完整登录流程
- 用户访问登录页面并填写表单
- 表单提交到 login.php
- PHP 脚本验证用户凭证
- 验证成功创建会话并重定向
- 验证失败返回错误信息
错误处理
在登录页面显示可能的错误信息,帮助用户了解登录失败原因。
<?php if (isset($error)): ?>
<div class="error"><?php echo htmlspecialchars($error); ?></div>
<?php endif; ?>
以上代码和步骤提供了 PHP 页面登录功能的基本实现框架,可以根据具体需求进行扩展和优化。






