php实现登录退出代码
以下是一个基于PHP的登录和退出功能的实现示例,包含表单处理、会话管理和安全性考虑:
登录功能实现
创建登录表单(login.php):
<form method="POST" action="auth.php">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
处理登录逻辑(auth.php):

<?php
session_start();
// 模拟用户数据(实际应从数据库获取)
$valid_users = [
'admin' => password_hash('admin123', PASSWORD_BCRYPT),
'user' => password_hash('user123', PASSWORD_BCRYPT)
];
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
if (isset($valid_users[$username]) && password_verify($password, $valid_users[$username])) {
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
header('Location: dashboard.php');
exit;
} else {
header('Location: login.php?error=1');
exit;
}
?>
退出功能实现
创建退出处理(logout.php):
<?php
session_start();
session_unset();
session_destroy();
header('Location: login.php');
exit;
?>
会话验证和保护
在受保护页面(dashboard.php)添加会话验证:

<?php
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header('Location: login.php');
exit;
}
?>
<h1>欢迎, <?php echo htmlspecialchars($_SESSION['username']); ?></h1>
<a href="logout.php">退出登录</a>
安全增强措施
密码存储使用PHP的password_hash函数:
$hashed_password = password_hash($plain_password, PASSWORD_BCRYPT);
防止会话固定攻击:
session_regenerate_id(true);
输出转义防止XSS:
echo htmlspecialchars($user_input);
这个实现包含了基本的登录退出功能,实际应用中应该结合数据库存储用户信息,并考虑添加CSRF保护、登录尝试限制等安全措施。






