0

0

php如何操作session_php操作session存取销毁【会话】

雪夜

雪夜

发布时间:2026-01-15 15:18:11

|

345人浏览过

|

来源于php中文网

原创

PHP操作session必须先调用session_start(),否则$_SESSION读写无效且易触发“headers already sent”错误;存取直接操作$_SESSION数组;销毁需三步:清空$_SESSION、删除cookie、调用session_destroy()。

php如何操作session_php操作session存取销毁【会话】

PHP 操作 session 的核心是 session_start(),没调用它,后续所有 $_SESSION 读写都无效,且可能触发“headers already sent”错误。

必须先调用 session_start() 才能操作会话

PHP 不像某些语言自动开启 session。每次需要读写 $_SESSION 前,都得显式启动会话 —— 否则 $_SESSION 是空数组,赋值也不生效。

  • 它必须在任何输出(包括空格、BOM、echo、HTML)之前调用,否则报错 Warning: session_start(): Cannot send session cache limiter
  • 如果已启用 session.auto_start = 1(不推荐),可跳过,但该配置已被 PHP 8.0 废弃
  • 同一请求中多次调用 session_start() 会警告,但不会中断执行

存取 session 数据:直接读写 $_SESSION 数组

$_SESSION 是超全局数组,启动后即可按键名存取,无需序列化或编码

  • 存:直接赋值,如 $_SESSION['user_id'] = 123;
  • 取:直接访问,如 $uid = $_SESSION['user_id'] ?? null;
  • 删单个键:unset($_SESSION['token']);
  • 清空全部(保留 session ID):$_SESSION = [];
session_start();
$_SESSION['username'] = 'alice';
$_SESSION['login_time'] = time();

// 安全取值,避免未定义索引 Notice $username = $_SESSION['username'] ?? 'guest';

销毁 session:三步缺一不可

session_destroy() 不够 —— 它只删服务端数据,客户端 cookie 仍存在,下次请求可能复用旧 ID 继续会话。

Shakespeare
Shakespeare

一款人工智能文案软件,能够创建几乎任何类型的文案。

下载

立即学习PHP免费学习笔记(深入)”;

  • 清除当前脚本中的 $_SESSION 内容:$_SESSION = [];
  • 删除 session cookie:setcookie(session_name(), '', time() - 3600, '/');
  • 销毁服务端存储:session_destroy();
session_start();

// 清空数据 $_SESSION = [];

// 删除客户端 cookie(注意路径和域要匹配创建时) $param = session_get_cookie_params(); setcookie( session_name(), '', time() - 3600, $param['path'], $param['domain'], $param['secure'], $param['httponly'] );

// 销毁服务端 session 文件或记录 session_destroy();

常见坑:session ID 未更新、跨域/子域失效、PHP-FPM 缓存干扰

session 看似简单,但实际部署中容易因环境配置出问题:

  • 登录后没调用 session_regenerate_id(true),旧 session ID 仍可用,有会话固定风险
  • 子域名间共享 session 需统一设置 session.cookie_domain = '.example.com',否则 user.example.comapi.example.com 视为不同会话
  • 使用 PHP-FPM 时,若 php_admin_value[session.save_path] 权限不对,session 文件写入失败,但无明显报错 —— 查看 session_save_path() 返回值和磁盘权限
  • session.use_cookies = 0 时依赖 URL 传参(PHPSESSID=xxx),易泄露且不安全,现代项目应禁用

session 的可靠性高度依赖服务器配置和调用时机,尤其在重定向(如登录后 header('Location: ...'))场景下,务必确认 session_start() 已执行、数据已写入、ID 已刷新。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2532

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1604

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1497

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1416

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1445

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.7万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号