0

現在、mysqlデータベースにユーザーのリストがあります。列の1つは「タイプ」です。typeがadminと等しい場合、特定のデータを表示しようとしています。typeが他のものと等しい場合は、エラーメッセージをエコーするだけです。

残念ながら、私は複数の方法を試しましたが、うまくいかないようです。誰かがこれを正しく機能させるのを手伝ってもらえますか?

これは私が持っているものですが、明らかに私は何か間違ったことをしています...。

<?php 
$usertype = $_SESSION['type'];
if ($usertype == "admin" ){


?>
admin stuff only goes here
<? 
}
else
  {
  echo "not priveleged usertype";
  }
?>

編集:次のコードはユーザー名で表示する場合に機能しますが、ユーザー名ではなくユーザータイプで表示されるコンテンツが必要です。

<?php 


    if($_SESSION['user']['username'] == "oneoftheadminusernames" ) 
    { 




?> 
4

3 に答える 3

1

各ページは

<?php 
      @session_start();
?>

そうしないと、php はセッションの内容を「認識」しません。だから多分それです。@ は php エラーを防ぎます: セッションは既に開始されています...ところで。

現在、セッションを使用するすべてのページの上部にこのディレクティブが必要です。少なくとも、簡単な例では、エラーを完全に再現します。

于 2012-11-19T04:20:21.043 に答える
0

テーブルにフィールド EnableFlag を追加するようなアイデアがあります。enablee フラグが 1 に設定されている場合は、それを管理者と見なし、それ以外の場合はユーザーと見なします。

于 2012-11-19T04:41:10.003 に答える
0

typeログインしている各ユーザーフィールドを変数に保存している場合$_SESSION['type']、記述しているコードは正しいです。typeまたは、チェックする変数とは別の変数に格納している場合。

于 2012-11-19T04:22:20.617 に答える