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