所以我有一个if else语句来检查loggedIn
是true
还是false
,它永远不会是假的,而是NULL
。所以我要做的就是转换任何NULL
结果false
,因为我得到了这个错误
未定义的索引:loggedIn
然后它不让我的header
跑。这可能吗?将NULL
转换为false
?
这是我如何设置会话
$_SESSION['loggedIn'] = true;
答案 0 :(得分:0)
您可以检查是否设置了index loggedin。
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'])
{
//user is loggedin
}
else
{
//user is not logged in.
}
答案 1 :(得分:0)
您将NULL
转换为false
的解决方案很难看。首先,您需要知道为什么您认为$_SESSION['loggedIn']
正在转换为NULL
(您说它是未定义的索引)。您可以通过以下方式对其进行调试:
var_dump($_SESSION);
// print_r($_SESSION);
答案 2 :(得分:0)
我会对此有所了解。让我们从您收到的错误消息开始:
未定义的索引:loggedIn
这是什么意思?
loggedIn
不存在(意味着它没有设置)。如何测试?
这很简单,你所要做的就是使用isset()
:
if(isset($_SESSION['loggedIn']) && !empty($_SESSION['loggedIn'])) {...
如上所示,我们会检查以确保loggedIn
会话 设置为 为空。
现在谈到这个问题,我猜你在尝试开始你想要的会议之前没有使用session_start
。
在设置会话的脚本顶部尝试类似的操作:
error_reporting(E_ALL);
ini_set('display_errors', 1);
// has to be called before starting session
session_start();
$_SESSION['loggedIn'] = true;
在您检查会话有效性的页面上,您可以执行以下操作:
session_start();
if(isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] !== FALSE) {
//..... the user is logged in...
}
答案 3 :(得分:-1)
添加条件;)