简介

PHP 中的会话支持提供了一种方法,可以在后续访问之间保留某些数据。

访问您网站的访问者将被分配一个唯一的 ID,即所谓的会话 ID。这将存储在用户端的 Cookie 中,或者在 URL 中传播。

会话支持允许您在 $_SESSION 超级全局数组中存储请求之间的数据。当访问者访问您的站点时,PHP 将自动检查(如果 session.auto_start 设置为 1)或根据您的请求(通过 session_start() 显式调用)是否已将特定的会话 ID 与请求一起发送。如果是,则会重新创建先前保存的环境。

警告

如果启用 session.auto_start,则将对象放入会话的唯一方法是使用 auto_prepend_file 加载其类定义,您可以在其中加载类定义,否则您必须 serialize() 您的对象,并在之后 unserialize() 它。

$_SESSION(以及所有注册的变量)在请求完成之后,将由 PHP 使用 session.serialize_handler ini 设置指定的序列化处理程序在内部序列化。未定义的注册变量将被标记为未定义。在后续访问中,这些变量不会由会话模块定义,除非用户随后定义它们。

警告

由于会话数据被序列化,因此 resource 变量不能存储在会话中。

序列化处理程序(phpphp_binary)继承了 register_globals 的限制。因此,不能使用包含特殊字符(|!)的数字索引或字符串索引。使用这些将导致脚本关闭时出现错误。php_serialize 没有这样的限制。

注意:

请注意,在使用会话时,只有在通过向 $_SESSION 超级全局数组添加新的键来注册变量后,才会创建会话记录。这在使用 session_start() 函数启动会话时始终适用。

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top