【问题标题】:PHP Logical OR Operator in an IF ELSE StatementIF ELSE 语句中的 PHP 逻辑 OR 运算符
【发布时间】:2015-04-05 07:18:34
【问题描述】:

我有一个用户级登录系统,我希望所有登录用户都进入主页。我想知道为什么以下逻辑不起作用。请提出更好的方法。

$role = $_SESSION['sess_userlevel'];

if( $role == 1 || $role == 2 || $role == 3 ){
        $securep = '../';
        header('Location: '.$securep);
 }else{
  //back to the login page.
}

此代码的问题在于它重定向回登录页面。

【问题讨论】:

  • “不工作”到底是什么意思?
  • 如果我使用 $role == 2 登录,它会重定向回登录页面。
  • 你真的应该使用完整路径而不是../(例如/full/path/to/page)。
  • 也许你应该在header重定向之后exit;,否则代码会在header语句之后继续执行

标签: php redirect login boolean logic


【解决方案1】:

也许你必须插入

session_start();

在访问$_SESSION 数组之前?

同时检查结果

var_dump($role)

在你的 if 语句之前

【讨论】:

    【解决方案2】:
    $role = $_SESSION['sess_userlevel'];
    
    if( $role == 1 || $role == 2 || $role == 3 ){
        $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER['DOCUMENT_ROOT']";
              header('location:'.$actual_link.'yourpathfile.php');
     }else{
      //back to the login page.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多