比较显示空白页

时间:2018-02-06 09:34:41

标签: php

我正在尝试检查是否存在任何一种情况,以及它是否确实执行了一项操作。但是,正在发生的事情是该页面只产生白页错误。 php_error.log或Apache中没有任何内容显然我的标记不正确。以下是我想要实现的内容的简要概述。

首先检查用户是否已登录。如果没有,请转到标题位置。

其次检查用户是否处于正确的级别以查看页面。如果没有,则将它们发送到标题位置。

第三,如果两个用户都已登录并且他们具有正确的级别(0或2),则他们可以查看该页面。如果我删除第二个if语句就可以了。

<?php
if(!isset($_SESSION['ls_logged_usr']) {
header('Location: /mobile/index.php?error=NOLOGIN');
exit;
}
?>
<?php
if($_SESSION['ls_level_usr'] !== '0' || ($_SESSION['ls_level_usr'] !== '2') {
header('Location: /mobile/index.php?error=LEVELERROR');
exit;
}
//echo 'level: ' . $_SESSION['ls_level_usr'] . '<br />' . 'Active: ' . $_SESSION['ls_active_usr'];

?>

3 个答案:

答案 0 :(得分:1)

header(...)函数将只添加一些HTTP标头。当前脚本不会被终止。

要在设置标题后停止当前脚本,您必须编写如下内容:

if(...) {
  header(...);
  exit;
}
if(...) ...

答案 1 :(得分:1)

我认为,如果这是您的所有代码,那么没关系,这意味着您的所有条件都是false

试试这个

<?php

    if(!isset($_SESSION['ls_logged_usr']) {
        header('Location: /mobile/index.php?error=NOLOGIN');
    } 
    elseif($_SESSION['ls_level_usr'] != '0' || ($_SESSION['ls_level_usr'] != '2') {
        header('Location: /mobile/index.php?error=LEVELERROR');
    }

    // do something 

?>

我已将您的!==更改为!=

答案 2 :(得分:0)

我设法使用此代码对其进行排序。而不是使用||我用过&amp;&amp;它起作用了。我需要了解逻辑。我对OR的解释与php不同。非常感谢你们常常给予的所有帮助。

<?php
if(!isset($_SESSION['ls_logged_usr'])) {
header('Location: /mobile/index.php?error=NOLOGIN');
exit;
}
?>
<?php
if (($_SESSION['ls_level_usr'] != '0') && ($_SESSION['ls_level_usr'] != '2')){
header('Location: /mobile/index.php?error=LEVELERROR');
exit;
}
?>