如果数组不匹配,则重定向到另一个页面

时间:2014-03-06 11:37:24

标签: php usercake

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

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

我目前将其设置为:

 <?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*

我知道我可以通过并说'#34;如果不是这样的许可,那就这样做&#34;但我目前拥有超过20个权限并且正在攀登。我正在尝试这样的事情:

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

然而它解析但没有显示任何结果,我猜测它与变量为空有关?

有关最佳锻炼的任何想法吗?

2 个答案:

答案 0 :(得分:1)

好像你混合了对象和变量。

判断

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

$ loggedInUser应该是一个对象。

但是你试着用一个整数来比较一个对象。可能是,你忘了一个方法?像Smth一样

if($loggedInUser->id!=3)

答案 1 :(得分:0)

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

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

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