操作會話資料
$_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 和密碼 ; 但也會延伸到更少的假設資料,如姓名,電子郵件,電話號碼等,這將允許黑客冒充/妥協合法使用者。作為一般規則,在會話資料中使用無價值/非個人值,例如數字識別符號。