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 ステートメントを変更する必要があります。

if が多すぎる場合... switch..case ステートメントを使用すると、imo のデバッグが容易になります

于 2014-03-06T11:45:14.023 に答える