Php/docs/function.session-name
session_name
(PHP 4, PHP 5, PHP 7)
session_name — 读取/设置会话名称
说明
session_name
([ string $name
] ) : string
session_name() 函数返回当前会话名称。
如果指定 name
参数,
session_name() 函数会更新会话名称,
并返回 原来的 会话名称。
如果使用 name
指定了新字符串作为会话 cookie 的名字,
session_name() 函数会修改 HTTP 响应中的 cookie
(如果启用了 session.transid
,还会输出会话 cookie 的内容)。
一旦在 HTTP 响应中发送了 cookie 的内容之后,
调用 session_name() 函数会产生错误。
所以,一定要在调用 session_start() 函数之前
调用此函数。
请求开始的时候,会话名称会被重置并且存储到
session.name
配置项。
因此,要想设置会话名称,那么对于每个请求,都需要在
调用 session_start() 函数
之前调用 session_name() 函数。
参数
name
用在 cookie 或者 URL 中的会话名称, 例如:
PHPSESSID
。 只能使用字母和数字作为会话名称,建议尽可能的短一些, 并且是望文知意的名字(对于启用了 cookie 警告的用户来说,方便其判断是否要允许此 cookie)。 如果指定了name
参数, 那么当前会话也会使用指定值作为名称。Warning
会话名称至少需要一个字母,不能全部都使用数字, 否则,每次都会生成一个新的会话 ID。
返回值
返回当前会话名称。如果指定 name
参数,那么此函数会更新会话名称,并且
返回 原来的 会话名称。
范例
Example #1 session_name() 示例
<?php/* 设置会话名称为 WebsiteID */$previous_name = session_name("WebsiteID");echo "The previous session name was $previous_name<br />";?>
更新日志
版本 | 说明 |
---|---|
7.2.0 | session_name() 函数会检查会话状态,
之前的版本仅仅检查 cookie 状态。 所以,旧版本的 PHP 允许你在调用 session_start() 函数之后再调用 session_name() 函数, 新版本的 PHP 不再允许这样做了。 |