操作會話資料

$_SESSION 變數是一個陣列,你可以像普通陣列一樣檢索或操作它。

<?php
// Starting the session
session_start();

// Storing the value in session
$_SESSION['id'] = 342;

// conditional usage of session values that may have been set in a previous session
if(!isset($_SESSION["login"])) {
    echo "Please login first";
    exit;
}
// now you can use the login safely
$user = $_SESSION["login"];

// Getting a value from the session data, or with default value, 
//     using the Null Coalescing operator in PHP 7
$name = $_SESSION['name'] ?? 'Anonymous';

另請參閱運算元組以獲取有關如何處理陣列的更多參考。

請注意,如果將物件儲存在會話中,只有在你具有類自動載入器或已經載入了類時才可以正常檢索它。否則,該物件將以 __PHP_Incomplete_Class 型別出現,這可能會導致崩潰 。有關自動載入的資訊,請參閱名稱空間和自動載入。

警告:

會話資料可能被劫持。這概述於: Pro PHP 安全:從應用程式安全原則到 XSS 防禦的實現 - 第 7 章:防止會話劫持 因此強烈建議不要在 $_SESSION 中儲存任何個人資訊。這最重要的是包括信用卡號政府發行的 ID密碼 ; 但也會延伸到更少的假設資料,如姓名電子郵件電話號碼等,這將允許黑客冒充/妥協合法使用者。作為一般規則,在會話資料中使用無價值/非個人值,例如數字識別符號。