必须先调用 session_start() 启动 session,再通过 $_session 数组存取数据;该函数须置于 php 文件最顶部、任何输出之前,且每个使用 session 的文件都需调用。

1. 在页面最开头调用 session_start()
这是最重要的一步。session_start() 必须在任何输出(包括空格、HTML、echo、BOM 字符)之前执行,否则会报错 “Headers already sent”。
- 放在 PHP 文件的最顶部,紧贴 php 后面
- 一个请求中只需调用一次,多个文件都用 session,每个文件都要写(或统一包含)
2. 使用 $_SESSION 数组存储数据
启动后,直接给 $_SESSION 的键赋值即可,PHP 会自动序列化并保存到服务器端。
- $_SESSION['username'] = '张三';
- $_SESSION['login_time'] = time();
- 支持字符串、数字、数组,但不推荐存资源(如数据库连接)或匿名函数
3. 确保服务器配置支持 Session
默认 PHP 已启用 Session,但需确认:
- php.ini 中 session.auto_start = Off(推荐手动调用 session_start)
- session.save_path 目录存在且 Web 服务器有写权限
- 浏览器未禁用 Cookie(默认 Session ID 通过 Cookie 传递)
4. 示例:完整登录后存用户信息
(文件名如 login.php,需在输出 HTML 前处理)
session_start(); // 必须第一行 PHP 代码$_SESSION['user_id'] = 123;
$_SESSION['role'] = 'admin';
// 可跳转或输出成功提示
header('Location: dashboard.php');
exit;
?> 注意:Session 数据保存在服务器端,安全可靠;但每次请求都要调用 session_start() 才能读写它。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











