0

已经建立了一个登录系统,我可以为用户分配权限,让他们访问或不访问页面,一切正常。当前,如果用户已登录并具有权限,则显示内容,如果未登录,则重定向到登录页面。

我正在尝试添加重定向,以便如果您已登录但没有权限,那么它会将您带到包含产品信息的页面。

我目前将其设置为:

 <?php


if (!securePage($_SERVER['PHP_SELF'])){die();}

$parts = parse_url($_SERVER["REQUEST_URI"]);

$page_name = basename($parts['path']);



//Links for logged in user
    if(isUserLoggedIn()) {


        //Links for permission level 3 (BOF)

        if ($loggedInUser->checkPermission(array(3))){
     *do something*

    (more code)

    <div id='default'>
    <?php } else { ?>
    *login*

我知道我可以通过并说“如果权限不是这个,那就这样做”,但我目前有超过 20 个权限并且正在攀登。我正在尝试类似的东西:

    if ($loggedInUser <> 3){
        header( 'Location: http://www.yoursite.com/new_page.html' ) ;
        }

但是它解析但没有显示结果,我猜它与变量为空有关?

请问有什么最好的锻炼方法吗?

4

2 回答 2

1

看起来你混合了对象和变量。

判断依据

($loggedInUser->checkPermission(array(3)))

$loggedInUser 应该是一个对象。

但是随后您尝试将对象与整数进行比较。可能是,你忘了一个方法?喜欢

if($loggedInUser->id!=3)
于 2014-03-06T12:02:31.157 回答
0

打开错误报告并检查是否有任何错误。
检查输出中的 BOM 字符......除此之外,它们可以防止重定向
,我想不出还有什么可以帮助你的

EDIT1:帮助调试 var_dump() 您的变量并检查您获得的类型(整数/字符串)。也许您需要使用 === (if $a===$b) 更改 if 语句,它检查值和类型

对于太多的ifs......你可以使用switch..case语句,更容易调试imo

于 2014-03-06T11:45:14.023 回答