簡體   English   中英

如果數組不匹配,則重定向到另一個頁面

[英]redirection to another page if array does not match

建立了一個登錄系統后,我可以向用戶分配權限,使他們可以訪問頁面或不訪問頁面,一切正常。 當前,如果用戶已登錄並具有權限,則顯示內容;如果未登錄,則重定向到登錄頁面。

我正在嘗試添加重定向,以便如果您登錄但沒有權限,那么它將帶您到包含有關產品信息的頁面。

我目前將其設置為:

 <?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' ) ;
        }

但是它解析但不顯示結果,我猜想它與變量為空有關嗎?

對最佳鍛煉有任何想法嗎?

好像您混合了對象和變量。

從評判

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

$ loggedInUser應該是一個對象。

但是,然后您嘗試將一個對象與一個整數進行比較。 可能是,您忘記了方法嗎? 有點像

if($loggedInUser->id!=3)

打開錯誤報告並檢查是否有任何錯誤。
檢查輸出中的BOM字符...它們可以防止重定向
除此之外,我想不出什么可以幫助您

EDIT1:幫助調試變量var_dump()並檢查獲得的類型(整數/字符串)。 也許您需要使用===來更改if語句(如果$ a === $ b),該語句將檢查值和類型

如果有太多...,則可以使用switch..case語句,更易於調試imo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM