PHP Sessions 会话
Session(会话)在 PHP 中是非常重要的功能,它能让你在多个页面之间保存用户数据,比如登录状态、购物车内容等,属于服务端存储机制,相比 Cookie 更安全也更灵活。本章我们就来学习 PHP Session 的相关概念和操作。
提示
Session 是一种在服务器端存储用户数据的机制。当用户访问网站时,服务器会为该用户创建一个唯一的会话 ID(Session ID),并通过 Cookie 将这个 ID 返回给浏览器。浏览器每次请求都会携带这个 ID,服务器就能识别出这个用户是谁。
启动 Session
在每个需要使用 Session 的 PHP 页面开头,都要调用一次 session_start()
。这个函数会初始化或恢复会话。
<?php
session_start(); // 启动 Session
?>
⚠️ 注意:session_start()
必须在任何 HTML 输出之前调用,否则会报错!
设置 Session 变量
Session 使用的是 $_SESSION
超全局数组,你可以像操作普通数组那样设置值:
<?php
session_start();
$_SESSION["username"] = "Alice";
$_SESSION["email"] = "alice@example.com";
?>
读取 Session 变量
<?php
session_start();
echo "欢迎," . $_SESSION["username"];
?>
检查 Session 是否已设置
<?php
session_start();
if (isset($_SESSION["username"])) {
echo "你好," . $_SESSION["username"];
} else {
echo "你尚未登录。";
}
?>
删除 Session 变量
删除某个 Session 变量可以使用 unset()
函数。例如:
unset($_SESSION["username"]);
销毁整个 Session
如果想要销毁整个 Session 会话,可以使用 session_destroy()
函数。例如:
<?php
session_start();
session_destroy(); // 清除所有 Session 数据
?>
⚠️ session_destroy()
只会清除服务器端的会话数据,不会清空 $_SESSION
数组,建议搭配 session_unset()
使用。
Session 文件默认保存位置
PHP 默认会将 Session 数据保存在服务器的临时目录(如 /tmp
)下,每个用户的 Session 对应一个 .sess_<session_id>
文件。
你可以通过配置 php.ini
或运行时设置来修改保存路径:
session_save_path("/path/to/your/session/dir");