0

私は自分のアプリでセキュリティレベルに取り組んでおり、セッションユーザーIDに応じて、彼/彼女が持っている特権の種類に応じて、単純にチェックする関数を作成しました。正常に動作しますが、一部のページでは、ユーザーがスーパーユーザーの場合は情報を出力し、ユーザーがゲストの場合は情報の出力を禁止します。

私はそのような構文でそれを行います:

1. <? if admin('superuser', $_SESSION['user_id'])  { ?>
2. <div></div>
3. <? } ?>

それはうまく機能しますが、エレガントではありません。また、中かっこの間の長いコードの場合、コードの純度が損なわれます。1行目と3行目をある種のショートカットに「エイリアス」する方法はありますか?

1. <? admin_superuser ?>
2. <div></div>
3. <? admin_super_user_end ?>

このようなレベルのセキュリティを実行するためのアイデアが他にあるのではないでしょうか?

このアイデアは、ob_start() および ob_end() コマンドから生まれました。あなたのアイデアをお待ちしています。

カルレグ。

4

3 に答える 3

4

ページの先頭に bool を設定するだけです。

$isSuperUser = admin('superuser', $_SESSION['user_id']);

次に、ただ行う

<? if ($isSuperUser) { ?>
<div></div>
<? } ?>

$ が気に入らない場合は、定数を定義できます。

define("SUPERUSER", admin('superuser', $_SESSION['user_id']));

次に、ただ行う

<? if (SUPERUSER) { ?>
<div></div>
<? } ?>

定数の良い点は、それがグローバルであることです。関数で使用する場合、最初にそれをグローバルに宣言したり、引数として渡したりする必要はありません。

于 2012-04-18T20:26:17.113 に答える
3

私はこのようなもので行きます。これは完全に許容できると思います。
単純化するには、ユーザー用のラッパーが必要です。

<?php if ($user->isAdmin()): ?>
<div></div>
<?php endif; ?>
于 2012-04-18T20:24:54.457 に答える
2

「include」機能を使用して、対応する html / php コードを含む別の php ファイルを含めることができます。また、xml および ini 設定の短いオープン タグの問題では<?phpなく、使用することをお勧めします。<?

于 2012-04-18T20:26:34.007 に答える