2016-11-16 13 views
3

私は自分のウェブサイトに管理者レベル/ユーザの役割を実装しようとしていますが、私はかなり新しいPHPです。PHP/SQLでの管理レベル/ユーザ役割の実装

私は、このSQLクエリがあります。

$sqlUserLevel = $user_home->runQuery("SELECT * FROM po_users"); 
$sqlUserLevel->execute(); 
$loggedInUserRole = $sqlUserLevel->fetch(PDO::FETCH_ASSOC); 

と、このPHP if文:

if($loggedInUserRole['userRole'] == "Admin"){ 
    include 'file.php'; 
    }else{ 
    //dont show. 
} 

しかし、内容はまだ誰かが私を指すことができ、誰もいないだけで「管理者」のユーザーに表示されるの正しい方向...

+1

あなたのユーザーテーブルからすべての行を取得していることに注意してください。 –

+1

上記のコメントから分かるように、where句が必要です($ SELECT_FRAME_URL = ' – p3tch

+0

両方のおかげで、これは多くの助けになりました。 – PHPNewbie

答えて

1

私はあなたの質問が間違っていると思う、私の意見は*よりop_userからユーザロールを選んでみてください。ここで何が起きるかは、常に見ていることを記録し、if条件は決して真実ではないと記録します。だからこそあなたはこの問題を抱えています。試してみてください。これはあなたを助けるかもしれません。

希望するものに変更してください。

$sqlUserLevel = $user_home->runQuery("SELECT userRole FROM po_users where uid='".$myUid."'"); 
    $sqlUserLevel->execute(); 
    $loggedInUserRole = $sqlUserLevel->fetch(PDO::FETCH_ASSOC); 


    if($loggedInUserRole['userRole'] == "Admin"){ 
     include 'file.php'; 
     }else{ 
     //dont show. 
    } 

これはお試しください。

+2

しかし、そのクエリは使用しないでください。クエリ内に直接変数を置くべきではありません(経験則)。変数が他のハードコードされた値から直接引き出されたり、別のクエリから直接取得された場合は、大丈夫かもしれませんが、原則として常に準備済みのクエリを使用してください。 – junkfoodjunkie

関連する問題