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