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