0

'Permissions' 是一个逗号分隔的整数列表,例如: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['user']['permissions'] 并得到了 1337

我已经完成了 print_r($type) 并得到了 Array ( [0] => 1337 )

那么为什么 in_array 不返回 true 呢?

4

2 回答 2

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;
}
于 2012-11-15T19:33:36.623 回答
0

尝试放入1337引号,'1337'. 我相信这会解决你的问题。

于 2012-11-15T19:31:08.687 回答