session_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_name讀取/設(shè)置會話名稱

說明

session_name(string $name = ?): string

session_name() 函數(shù)返回當前會話名稱。 如果指定 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ù)。

參數(shù)

name

用在 cookie 或者 URL 中的會話名稱, 例如:PHPSESSID。 只能使用字母和數(shù)字作為會話名稱,建議盡可能的短一些, 并且是望文知意的名字(對于啟用了 cookie 警告的用戶來說,方便其判斷是否要允許此 cookie)。 如果指定了 name 參數(shù), 那么當前會話也會使用指定值作為名稱。

警告

會話名稱至少需要一個字母,不能全部都使用數(shù)字, 否則,每次都會生成一個新的會話 ID。

返回值

返回當前會話名稱。如果指定 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 不再允許這樣做了。

參見