PHP逻辑OR运算符在IF ELSE语句中
问题描述:
我有一个用户级登录系统,我希望所有登录用户都能进入主页。我想知道为什么下面的逻辑不起作用。请提出更好的方法。PHP逻辑OR运算符在IF ELSE语句中
$role = $_SESSION['sess_userlevel'];
if($role == 1 || $role == 2 || $role == 3){
$securep = '../';
header('Location: '.$securep);
}else{
//back to the login page.
}
该代码的问题在于它重定向回登录页面。
答
也许你要插入
session_start();
您访问$_SESSION
阵列之前?
前还要检查的
var_dump($role)
结果你的if语句
答
$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.
}
究竟你 “不工作” 是什么意思? – hynner 2015-04-05 07:20:17
如果我使用$ role == 2登录,它会重定向回登录页面。 – 2015-04-05 07:21:28
您应该使用完整路径(例如'/ full/path/to/page')而不是'../'。 – 2015-04-05 07:33:30