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

Php 如果数组不匹配,则重定向到另一页,php,usercake,Php,Usercake,我已经建立了一个登录系统,我可以分配权限给一个用户,让他们访问一个页面或不,所有的工作都很好。当前,如果用户已登录并具有权限,则显示内容,如果未登录,则重定向到登录页面 我正在尝试添加重定向,这样,如果您已登录但没有权限,那么它会将您带到包含产品信息的页面 我目前将其设置为: <?php if (!securePage($_SERVER['PHP_SELF'])){die();} $parts = parse_url($_SERVER["REQUEST_URI"]); $page

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

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

我目前将其设置为:

 <?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' ) ;
        }
if($loggedInUser 3){
标题('位置:http://www.yoursite.com/new_page.html' ) ;
}
不管它如何解析,但没有显示结果,我猜这与变量为空有关


关于最佳训练有什么想法吗?

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

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


对于太多的假设。。。您可以使用switch..case语句,更易于调试imo

看起来您混合了对象和变量

根据

($loggedInUser->checkPermission(array(3))) ($loggedInUser->checkPermission(数组(3))) $loggedInUser应该是一个对象

但是你试着比较一个对象和一个整数。可能是,你忘了一个方法?类Smth

if($loggedInUser->id!=3)
如果($loggedInUser->id!=3)打开错误报告,并在发送头后使用
die()
。您可以发布更多代码吗?@Indianer这几乎是整个文件,而不是几个参考文件。您确定它到达了您的
头()
?@Marriott81 ok。。检查变量的值(var_dump()it),也许您需要在逻辑中使用===。如果(a==b){do someting}@Marriott81你也可以使用switch…如果你有太多的IF语句-更容易调试这个方法很好而且有效,我唯一的问题是如果你有权限IF重定向你,如果你没有,它可以让你查看内容。。