PHP 中的 session ID
-
使用
session_id()
函式檢查會話 ID -
從 PHP 中的
$_session[]
變數設定和獲取使用者會話 ID -
在 PHP 中使用
var_dump()
獲取會話 ID - 會話 ID 和唯一性
會話 ID 的主要用途之一是識別 Web 應用程式上的使用者或事件。本文將解釋如何藉助內建的 PHP 函式(如 session_start()
和 session_id()
)使用 PHP 會話 ID。
使用 session_id()
函式檢查會話 ID
在檢查會話 ID 之前,你需要使用 session_start()
啟動 PHP 會話。之後,你可以呼叫 session_id()
函式。此函式將返回當前會話 ID。
<?php
session_start();
echo session_id();
?>
輸出:
3rd5hnbqgjhi3fq4b2edsajq81
從 PHP 中的 $_session[]
變數設定和獲取使用者會話 ID
PHP $_SESSION
變數 是一個關聯陣列,包含當前指令碼的 PHP 會話變數。你可以將特定的鍵值對新增到陣列中,將其從陣列中刪除,或者清空整個 $_SESSION
變數。
你可以將經過身份驗證的使用者的詳細資訊儲存在 $_SESSION
變數中。在此之前,你需要啟動一個 PHP 會話。一旦會話處於活動狀態,你就可以為經過身份驗證的使用者註冊會話。之後,你可以使用會話 ID 在系統中跟蹤使用者。當使用者登出時,你可以銷燬會話。
在下一個程式碼塊中,你將找到有關如何設定和獲取使用者會話 ID 的詳細資訊。
<?php
// Start the session
session_start();
// get the session id
$session_id = session_id();
// The username of the user. On most occasions,
// you'll get this from a MySQL query
$username = "DelftStack";
// Register a session for the user
$_SESSION['username'] = $username;
// Display the session id and the registered
// register
echo "The session id is: " . $session_id;
echo "<br /> The session has been registered to: " . $username;
?>
輸出:
The session id is: d7ao75228pobka332fqeho10l3
The session has been registered to: DelftStack
請記住,你的會話 ID 將與上面顯示的不同。
你可以使用以下程式碼銷燬會話:
<?php
if (isset($_SESSION['username'])) {
// Reset the session
unset($_SESSION);
// Destroy the session
session_destroy();
if (empty($_SESSION)) {
echo "Session destroyed...";
}
}
?>
輸出:
Session destroyed...
在 PHP 中使用 var_dump()
獲取會話 ID
var_dump()
函式將轉儲有關變數的詳細資訊,包括 $_SESSION[]
變數。啟動會話並將會話 ID 儲存在變數中以開始此過程。一旦會話 ID 在變數中,你可以使用 var_dump
轉儲它。
下一個程式碼塊展示瞭如何使用 var_dump()
獲取會話 ID。
<?php
// Start the session
session_start();
// get the session id
$session_id = session_id();
// store the session id in the
// session variable
$_SESSION['id'] = $session_id;
// Dump the username
var_dump($_SESSION['id']);
?>
輸出:
string(26) "7qfm3qvjj1vku6h78p73qh9jmn"
會話 ID 和唯一性
當你需要使用者的唯一識別符號時,建議不要啟動新會話。這就是像 uniqid()
這樣的函式發揮作用的時候。但是,如果你有一個活動會話,則可以使用 session_id()
。不過,不要依賴它來獲得唯一性。
原因如下:具有多個選項卡的 Web 瀏覽器將使用相同的過程。因此,它們將使用相同的會話識別符號。這意味著不同的使用者連線將具有相同的 id。
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn