PHP面向对象-Session的使用示例
原创
创建一个简单的登录页面,用户可以在该页面上输入用户名和密码,并且如果用户名和密码正确,则创建一个Session并将用户重定向到一个受保护的页面。在受保护的页面上,用户可以查看他们的用户名,并且可以使用一个链接来注销并删除Session。
<?php
session_start();
// 检查是否已经登录,如果是,则重定向到受保护的页面
if (isset($_SESSION['username'])) {
header('Location: protected.php');
exit();
// 如果用户提交了表单,则尝试登录
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
// 这里需要验证用户名和密码是否正确,这里只是一个简单的示例
if ($username === 'john' && $password === 'password') {
// 登录成功,创建Session并重定向到受保护的页面
$_SESSION['username'] = $username;
header('Location: protected.php');
exit();
} else {
// 登录失败,显示错误消息
$error = 'Invalid username or password';
<!DOCTYPE html>
<meta charset="UTF-8">
<title>Login</title>
</head>
<h1>Login</h1>
<?php if (isset($error)) { echo "<p>$error</p>"; } ?>
<form method="post" action="">
<label for="username">Username:</label>
<input type="text" name="username" id="username"><br><br>
<label for="password">Password:</label>
<input type="password" name="password" id="password"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
在上面的代码中,我们首先检查是否已经创建了Session。如果是,则将用户重定向到受保护的页面。否则,我们检查是否提交了表单。如果是,则获取用户名和密码,并验证它们是否正确。如果是,则创建一个Session并将用户重定向到受保护的页面。否则,我们显示一个错误消息。
在登录表单中,我们使用HTTP POST方法提交用户名和密码。如果用户名和密码正确,则在服务器端创建一个Session。我们可以使用$_SESSION全局变量来访问Session中的值。在这个示例中,我们将用户名存储在Session中。
以下是受保护的页面的代码,其中显示了用户名和一个链接,该链接可以注销并删除Session:
<?php
session_start();
// 检查是否已经登录,如果没有,则重定向到登录页面
if (!isset($_SESSION['username'])) {
header('Location: login.php');
exit();
// 如果用户点击了注销链接,则删除Session并重定向到登录页面
if (isset($_GET['logout'])) {
session_unset();
session_destroy();
header('Location: login.php');
exit();
<!DOCTYPE html>
<meta charset="UTF-8">
<title>Protected</title>
</head>