(PHP 4, PHP 5, PHP 7, PHP 8)
session_name — 讀取/設(shè)置會(huì)話名稱
$name
= ?): string
session_name() 函數(shù)返回當(dāng)前會(huì)話名稱。
如果指定 name
參數(shù),
session_name() 函數(shù)會(huì)更新會(huì)話名稱,
并返回 原來的 會(huì)話名稱。
如果使用 name
指定了新字符串作為會(huì)話 cookie 的名字,
session_name() 函數(shù)會(huì)修改 HTTP 響應(yīng)中的 cookie
(如果啟用了 session.transid
,還會(huì)輸出會(huì)話 cookie 的內(nèi)容)。
一旦在 HTTP 響應(yīng)中發(fā)送了 cookie 的內(nèi)容之后,
調(diào)用 session_name() 函數(shù)會(huì)產(chǎn)生錯(cuò)誤。
所以,一定要在調(diào)用 session_start() 函數(shù)之前
調(diào)用此函數(shù)。
請(qǐng)求開始的時(shí)候,會(huì)話名稱會(huì)被重置并且存儲(chǔ)到
session.name
配置項(xiàng)。
因此,要想設(shè)置會(huì)話名稱,那么對(duì)于每個(gè)請(qǐng)求,都需要在
調(diào)用 session_start() 函數(shù)
之前調(diào)用 session_name() 函數(shù)。
name
用在 cookie 或者 URL 中的會(huì)話名稱,
例如:PHPSESSID
。
只能使用字母和數(shù)字作為會(huì)話名稱,建議盡可能的短一些,
并且是望文知意的名字(對(duì)于啟用了 cookie 警告的用戶來說,方便其判斷是否要允許此 cookie)。
如果指定了 name
參數(shù),
那么當(dāng)前會(huì)話也會(huì)使用指定值作為名稱。
會(huì)話名稱至少需要一個(gè)字母,不能全部都使用數(shù)字, 否則,每次都會(huì)生成一個(gè)新的會(huì)話 ID。
返回當(dāng)前會(huì)話名稱。如果指定 name
參數(shù),那么此函數(shù)會(huì)更新會(huì)話名稱,并且
返回 原來的 會(huì)話名稱。
示例 #1 session_name() 示例
<?php
/* 設(shè)置會(huì)話名稱為 WebsiteID */
$previous_name = session_name("WebsiteID");
echo "The previous session name was $previous_name<br />";
?>
版本 | 說明 |
---|---|
7.2.0 | session_name() 函數(shù)會(huì)檢查會(huì)話狀態(tài), 之前的版本僅僅檢查 cookie 狀態(tài)。 所以,舊版本的 PHP 允許你在調(diào)用 session_start() 函數(shù)之后再調(diào)用 session_name() 函數(shù), 新版本的 PHP 不再允許這樣做了。 |