'权限'是逗号分隔的整数列表,例如:1,10,70,1000 权限字符串被推入$ _SESSION,然后在爆炸后以$ type的形式返回
$permissions = $_SESSION['user']['permissions'];
$type = explode(",", trim($permissions));
if(in_array(1337, $type)){
echo '<li><a href="protectedpage.php">Page Name</a></li>';}
由于某种原因,没有任何回应。 我已经回复了$ _SESSION ['用户'] ['权限']并获得了1337
我已经完成了print_r($ type)并得到了数组([0] =&gt; 1337)
那么为什么in_array不会返回true?
答案 0 :(得分:2)
我执行了以下代码,它工作正常。
$permissions = '1,10,70,1000,1337';
$type = explode(",", trim($permissions));
if(in_array(1337, $type))
{
echo 'found';
}
我建议您检查以确保$ permissions在失败的情况下是您所期望的。如果条件不起作用,请尝试回显它,以便您可以检查。您可能还想删除任何空格,以防万一。“
$permissions = $_SESSION['user']['permissions'];
$type = explode(",", str_replace(' ', '', $permissions));
if(in_array(1337, $type))
{
echo 'found';
}
else
{
echo $permissions;
}
答案 1 :(得分:0)
尝试将1337
放入引号'1337'
。我相信这会解决你的问题。