2012-04-18 9 views
0

私は自分のアプリケーションでセキュリティのレベルで作業しており、セッションのユーザーIDに応じて、ユーザーがどのような権限を持っているかによって簡単にチェックする機能を書いています。それは正常に動作しますが、一部のページでは、ユーザーがスーパーユーザーの場合はいくつかの情報を出力し、ユーザーがゲストの場合は情報を出力しません。PHPの特定の行のPHPエイリアス?

私は、このような構文を使用して行います。

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

それは良い動作しますが、それはエレガントではない、とカーリング括弧の間の場合、長いコードには、それは私のコードの純度messess。 は、ショートカットのいくつかの種類に「エイリアス」への道ライン1と3があり、すなわち

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

たぶん、あなたはセキュリティのようなレベルを実行するために他のいくつかのアイデアがありますか?

このアイデアは、ob_start()およびob_end()コマンドに由来しています。 あなたのアイデアを待っています。

カルレッグ。

+1

私はあなたの頭痛はあなたのPHPとあなたのHTMLインラインを投げていないことによって解決されると思う。テンプレートエンジンはすでにこれらの問題を解決しています。あなたのロジックをPHPとあなたのHTMLをテンプレートに保存してください。 – Aknosis

+0

PHPはテンプレートエンジンとして見ることができます。 –

答えて

4

あなたは、単にページの先頭にブール値を設定できます、そして、

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

をあなたは$を好きではない場合は、単に

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

を行い、あなたが定義することができ定数:

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

次に、定数について

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

良いところは、それがグローバルであるということです、そして機能で使用している場合、あなたはそれが世界最初に宣言する必要はない、または引数として渡します。

+0

に慣れていれば、カプセル化は最善の選択です。最初は実用的だと思われますが、大きなプロジェクトでは制御されない成長を示しています。それを制御可能にしておく。あなたが何かを手に入れることができる場所を常に知っています。私の2セント... –

+0

私はそれが私から最高のソリューションを好む:>、thx – Kalreg

3

私はこのようなものに行きます。私はこれが完全に受け入れられると思う。
簡略化するために、ユーザー用のラッパーが必要です。

<?php if ($user->isAdmin()): ?> 
<div></div> 
<?php endif; ?> 
+0

著者はOOP – crush

2

"include"機能を持つ対応するhtml/phpコードを含む別のphpファイルを含めることができます。私はまた、<?の代わりに<?phpを使用することをお勧めします。これは、xmlとini設定での短いオープンタグの問題です。

関連する問題