操作会话数据

$_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密码 ; 但也会延伸到更少的假设数据,如姓名电子邮件电话号码等,这将允许黑客冒充/妥协合法用户。作为一般规则,在会话数据中使用无价值/非个人值,例如数字标识符。