我需要检查是否存在此$_SESSION['1'] || $_SESSION['2']
我试过这个
ob_start();
session_start();
if (!isset($_SESSION['log']) && $_SESSION['log'] !== 1) {
if (!isset($_SESSION['insAdmin']) && $_SESSION['insAdmin'] !== 1) {
header("Location:sessionManager/login.php");
}
}
但如果设置为$_SESSION['insAdmin']
我得到了一个笔记
(!)注意:未定义的索引:登录 第13行的C:\ wamp \ www \ mysite \ en \ admin \ headers.php
答案 0 :(得分:1)
你自相矛盾:
!isset($_SESSION['log']) & $_SESSION['log'] !== 1
你基本上说if $_SESSION['log'] is not set and $_SESSION['log'] is not 1
没有意义。
如果未设置$_SESSION['log']
,则尝试通过$_SESSION['log']
(&&
后面的第二个表达式)访问它的值将导致未定义的索引。< / p>
您应该删除!
:
if (isset($_SESSION['log']) && $_SESSION['log'] !== 1) {
if (isset($_SESSION['insAdmin']) && $_SESSION['insAdmin'] !== 1) {
header("Location:sessionManager/login.php");
}
}
答案 1 :(得分:1)
通常使用isset测试变量是否包含值,然后再检查它的实际值。
但是你检查变量是否未设置!isset($_SESSION['log']
,然后检查它的值,如果没有设置log
,这当然会引起通知。
答案 2 :(得分:1)
您正在检查是否未设置,请检查是否已设置。
if (isset($_SESSION['insAdmin']) && $_SESSION['insAdmin'] !== 1) {
header("Location:sessionManager/login.php");
}