(1)用户登录功能的需求: 当用户进入网站首页时,如果是未登录状态,则自动跳转到登录页面。 在登录页面输入正确的用户名和密码,则登录成功,使用Session保存用户的登录状态。 在登录页面输入错误的用户名和密码,则登录失败。 (2)用户退出功能的需求: 用户单击退出按钮后,删除Session中保存的用户登录状态。
时间: 2024-02-22 17:55:20 浏览: 32
实现用户登录和退出功能的代码如下:
登录页面代码 login.php :
```php
<?php
session_start(); // 启动会话,存储用户信息
if(isset($_SESSION['username'])){ // 如果用户已经登录,则跳转到主页
header('Location: index.php');
exit();
}
if($_SERVER['REQUEST_METHOD'] === 'POST'){ // 如果是 POST 请求
$username = $_POST['username'];
$password = $_POST['password'];
// 在此处进行验证,例如从数据库中获取用户信息并验证用户名和密码
if ($username === 'admin' && $password === 'password') {
$_SESSION['username'] = $username; // 存储用户名到会话中
header('Location: index.php'); // 重定向到主页
exit();
} else {
$error = '用户名或密码错误';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<?php if(isset($error)){ ?>
<p style="color: red;"><?php echo $error; ?></p>
<?php } ?>
<form action="" method="post">
<div>
<label for="username">用户名:</label>
<input type="text" name="username" required>
</div>
<div>
<label for="password">密码:</label>
<input type="password" name="password" required>
</div>
<div>
<button type="submit">登录</button>
</div>
</form>
</body>
</html>
```
主页代码 index.php :
```php
<?php
session_start(); // 启动会话
if(!isset($_SESSION['username'])){ // 如果用户未登录,则跳转到登录页面
header('Location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>主页</title>
</head>
<body>
<h1>欢迎 <?php echo $_SESSION['username']; ?> 登录</h1>
<form action="logout.php" method="post">
<button type="submit">退出</button>
</form>
</body>
</html>
```
退出页面代码 logout.php :
```php
<?php
session_start(); // 启动会话
$_SESSION = array(); // 清空会话数据
if (ini_get('session.use_cookies')) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params['path'], $params['domain'],
$params['secure'], $params['httponly']
); // 删除会话 cookie
}
session_destroy(); // 销毁会话
header('Location: login.php'); // 重定向到登录页面
exit();
?>
```
在以上代码中,需要根据实际情况进行修改和完善。例如在验证用户名和密码时,需要使用加密算法对密码进行加密,并且需要防止 SQL 注入等安全问题。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)