PHP会话管理主要用于在多个页面请求之间保持用户的相关状态信息,因为HTTP协议本身是无状态的,每次请求之间不会自动保留之前的交互数据,所以需要借助session和cookie来实现状态维持。

PHP中cookie的使用方法
cookie是存储在客户端浏览器中的小型数据片段,服务器可以通过响应头将cookie发送给浏览器,浏览器后续请求时会自动携带对应的cookie数据。
设置cookie
PHP中使用setcookie()函数来设置cookie,该函数需要在页面输出任何内容之前调用,否则会报错。
<?php
// 设置一个名为user_name的cookie,值为张三,过期时间为1小时后
setcookie('user_name', '张三', time() + 3600);
// 设置一个带路径限制的cookie,仅在/test路径下生效
setcookie('user_id', '1001', time() + 7200, '/test');
?>
读取cookie
设置好的cookie会自动存储在$_COOKIE全局数组中,直接通过该数组即可读取对应的值。
<?php
// 判断user_name这个cookie是否存在
if (isset($_COOKIE['user_name'])) {
echo '当前用户:' . $_COOKIE['user_name'];
} else {
echo '未获取到用户cookie';
}
?>
删除cookie
删除cookie的本质是设置该cookie的过期时间为过去的时间,让浏览器自动清除该数据。
<?php
// 删除user_name这个cookie,过期时间设置为当前时间减1秒
setcookie('user_name', '', time() - 1);
?>
PHP中session的使用方法
session是存储在服务器端的会话数据,每个session会对应一个唯一的session_id,这个session_id通常会通过cookie传递给客户端,用来关联对应的会话数据。
开启session
使用session之前需要先调用session_start()函数开启会话,该函数同样需要在页面输出任何内容之前调用。
<?php
// 开启session会话
session_start();
// 设置session数据
$_SESSION['login_status'] = true;
$_SESSION['user_info'] = array(
'name' => '李四',
'age' => 25
);
?>
读取session
开启session后,所有的会话数据都存储在$_SESSION全局数组中,直接访问该数组即可获取对应数据。
<?php
session_start();
if (isset($_SESSION['login_status']) && $_SESSION['login_status'] === true) {
echo '用户已登录,用户名:' . $_SESSION['user_info']['name'];
} else {
echo '用户未登录';
}
?>
销毁session
如果需要清除当前会话的所有数据,可以使用session_destroy()函数,同时建议清空$_SESSION数组并删除对应的session_id cookie。
<?php
session_start();
// 清空session数组
$_SESSION = array();
// 删除session_id对应的cookie
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 1);
}
// 销毁服务器端session数据
session_destroy();
?>
session与cookie的核心区别
两者虽然都用于会话管理,但在存储位置、安全性、存储大小等方面存在明显差异,具体对比如下:
| 对比维度 | session | cookie |
|---|---|---|
| 存储位置 | 服务器端 | 客户端浏览器 |
| 安全性 | 较高,数据不会暴露给客户端 | 较低,数据存储在客户端,可被篡改 |
| 存储大小限制 | 无明确限制,受服务器存储配置影响 | 单个cookie通常不超过4KB |
| 生命周期 | 默认关闭浏览器后失效,可手动设置过期时间 | 可手动设置过期时间,支持长期存储 |
| 传输开销 | 仅传输session_id,开销小 | 每次请求都会携带所有cookie数据,开销较大 |
使用场景建议
如果是存储敏感数据,比如用户登录凭证、权限信息,优先使用session,避免数据被客户端篡改。如果是存储非敏感的临时数据,比如用户的页面偏好设置、浏览记录,或者需要长期保存的数据,可以使用cookie。在实际开发中,通常会结合两者使用,比如用session存储核心登录状态,用cookie存储用户的个性化配置,兼顾安全性和使用体验。
PHP_sessioncookie会话管理session使用修改时间:2026-07-16 10:51:33