如果NULL变为false

时间:2014-07-05 03:47:53

标签: php if-statement header null

所以我有一个if else语句来检查loggedIntrue还是false,它永远不会是假的,而是NULL。所以我要做的就是转换任何NULL结果false,因为我得到了这个错误

  

未定义的索引:loggedIn

然后它不让我的header跑。这可能吗?将NULL转换为false

这是我如何设置会话

$_SESSION['loggedIn'] = true;   

4 个答案:

答案 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)

如果loggedIn为null或false返回false,则

添加条件;)