session_name

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

session_name讀取/設置會話名稱

說明

session_name(string $name = ?): string

session_name() 函數返回當前會話名稱。 如果指定 name 參數, session_name() 函數會更新會話名稱, 并返回 原來的 會話名稱。

如果使用 name 指定了新字符串作為會話 cookie 的名字, session_name() 函數會修改 HTTP 響應中的 cookie (如果啟用了 session.transid,還會輸出會話 cookie 的內容)。 一旦在 HTTP 響應中發(fā)送了 cookie 的內容之后, 調用 session_name() 函數會產生錯誤。 所以,一定要在調用 session_start() 函數之前 調用此函數。

請求開始的時候,會話名稱會被重置并且存儲到 session.name 配置項。 因此,要想設置會話名稱,那么對于每個請求,都需要在 調用 session_start() 函數 之前調用 session_name() 函數。

參數

name

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

警告

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

返回值

返回當前會話名稱。如果指定 name 參數,那么此函數會更新會話名稱,并且 返回 原來的 會話名稱。

范例

示例 #1 session_name() 示例

<?php

/* 設置會話名稱為 WebsiteID */

$previous_name session_name("WebsiteID");

echo 
"The previous session name was $previous_name<br />";
?>

更新日志

版本 說明
7.2.0 session_name() 函數會檢查會話狀態(tài), 之前的版本僅僅檢查 cookie 狀態(tài)。 所以,舊版本的 PHP 允許你在調用 session_start() 函數之后再調用 session_name() 函數, 新版本的 PHP 不再允許這樣做了。

參見