1

管理者がログインしたときにのみ表示される、管理者専用の小さなナビゲーションパネルを自分のサイトに作成しようとしています。すべてのセッションロジックが正常に機能しているので、1つだけ確信が持てません。

ナビゲーションパネルのHTMLコードを常にソースに含めるのがより標準的な方法ですが、ユーザーが管理者としてログインしているかどうかに基づいて、PHPを使用して表示プロパティを変更するだけですか?だから何かのような

<head>
<?php 
   if($_SESSION['loggedin']) { 
     echo "<style>#adminPanel { display:block; }</style>";
   }
?>
</head>

オリジナルのCSSを持っている間display:none;

また

ユーザーがログインしている場合、PHPに完全なadminPanel HTMLをエコーさせますか?好き:

<?php
  if($_SESSION['loggedin'])
  {
     ?>

        //HTML for adminPanel goes here

     <?php
  }
?>

私は基本的にどの方法が標準であるか、またはそれらが等しく受け入れられるかどうかを知りたいですか?ありがとう

この質問が主観的であると見なされるかどうかはわかりませんので、そうである場合は申し訳ありません。

4

3 に答える 3

4

ユーザーはCSSをオンザフライで編集し、最初の方法で管理パネルを公開できます。したがって、ユーザーに見せたくないものは何も出力しないので、2番目の方が望ましいです。

于 2012-07-30T16:19:35.477 に答える
4

許可されていない人には見えないものがあると思われる場合は、そもそもそれをクライアントに送信しないでください。隠すことによるセキュリティかもしれませんが、管理パネルがあるという事実を自慢して、それがどこにあるかを正確に言うのはなぜですか?

于 2012-07-30T16:20:28.767 に答える
1

私は寝ているかもしれませんが、2人はまったく同じことをしていませんが、最初の例は単にHTMLマークアップをエコーすることですか?

あなたの質問に答えるには:

私は通常、例2で行ったように、何らかの形のアクセス権が関連付けられているはずのすべての要素をラップします。読みやすくなり、引用符の1つを必然的に見逃した場合の頭痛の種を減らすことができます。

次のような単純な「ログインしている場合に含める」こともできます。

<?php
    if($_SESSION['loggedin']{

    include('/path/to/adminpanel.php');
}
?>

Wichは、更新と変更をさらに簡素化するため、私の一般的なアプローチです。これは、管理パネルに固有のJSを含めると、「adminpanel.php」内で要求されるため、標準ユーザーには表示されないことも意味します。

于 2012-07-30T16:29:33.067 に答える