探索 PHP 会话控制:从 Cookie 到 Session 的实战应用
在 Web 开发中,“记住用户登录状态”“保存临时数据” 是必备需求,PHP 的会话控制(Cookie+Session)就是解决这类问题的核心技术。它能让无状态的 HTTP 协议 “记住” 用户信息,本文通过简单实例,带你快速掌握从基础使用到安全优化的完整流程。

一、会话控制基础:Cookie 与 Session 的区别
二、实战 1:用 Cookie 实现 “记住用户名”
前端页面(login.html)
<form action="set_cookie.php" method="post"> 用户名:<input type="text" name="username"><br> <input type="checkbox" name="remember" value="1"> 记住用户名<br> <button type="submit">提交</button> </form>
后端处理(set_cookie.php)
<?php
if (isset($_POST['username'])) {
$username = $_POST['username'];
// 若勾选“记住”,设置Cookie有效期为7天
if (isset($_POST['remember'])) {
setcookie('saved_username', $username, time() + 7*24*3600);
} else {
// 不记住则删除Cookie
setcookie('saved_username', '', time() - 3600);
}
echo "操作成功!<a href='get_cookie.php'>查看Cookie</a>";
}
?>读取 Cookie(get_cookie.php)
<?php // 读取Cookie中的用户名 $username = $_COOKIE['saved_username'] ?? '未记住用户名'; echo "记住的用户名:" . $username; ?>
三、实战 2:用 Session 实现用户登录状态
登录处理(login_session.php)
<?php
session_start(); // 启动Session
if (isset($_POST['username']) && $_POST['username'] === 'admin') {
// 存储用户信息到Session
$_SESSION['user'] = [
'username' => 'admin',
'role' => '管理员'
];
echo "登录成功!<a href='user_info.php'>查看用户信息</a>";
} else {
echo "用户名错误!";
}
?>读取 Session(user_info.php)
<?php
session_start();
// 验证是否登录
if (!isset($_SESSION['user'])) {
die("请先登录!");
}
echo "当前用户:" . $_SESSION['user']['username'] . "<br>";
echo "用户权限:" . $_SESSION['user']['role'];
?>四、安全注意事项
总结
文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。

