php 实现登录
PHP 实现登录功能
创建登录表单
在 HTML 文件中创建一个表单,用于提交用户名和密码:
<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>
处理登录请求
在 login.php 文件中处理表单提交的数据,验证用户信息:
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
// 假设从数据库获取的用户信息
$valid_username = 'admin';
$valid_password_hash = password_hash('123456', PASSWORD_DEFAULT);
// 验证用户名和密码
if ($username === $valid_username && password_verify($password, $valid_password_hash)) {
$_SESSION['user'] = $username;
header('Location: dashboard.php');
exit;
} else {
echo '用户名或密码错误';
}
?>
数据库验证(扩展)
实际应用中通常从数据库验证用户:
<?php
session_start();
$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $db->prepare('SELECT id, password FROM users WHERE username = ?');
$stmt->execute([$_POST['username']]);
$user = $stmt->fetch();
if ($user && password_verify($_POST['password'], $user['password'])) {
$_SESSION['user_id'] = $user['id'];
header('Location: dashboard.php');
} else {
echo '登录失败';
}
?>
密码安全处理
始终使用密码哈希函数存储密码:
$hashed_password = password_hash($plain_password, PASSWORD_DEFAULT);
会话管理
登录成功后使用会话来维持用户状态:
session_start();
$_SESSION['user_id'] = $user_id;
登出功能
实现登出功能销毁会话:

<?php
session_start();
session_destroy();
header('Location: login.php');
?>
安全注意事项
- 使用 HTTPS 保护传输数据
- 对用户输入进行过滤和验证
- 使用预处理语句防止 SQL 注入
- 设置合理的会话过期时间
- 实现 CSRF 保护
完整示例结构
/login.html # 登录表单
/login.php # 处理登录
/dashboard.php # 登录后页面
/logout.php # 退出登录
以上实现涵盖了基本的 PHP 登录功能,可根据实际需求扩展验证码、记住我等功能。






