アクセス|デザイン|ページ
ウェブサイトのページを表示する際の許可判定の問題について夜に質問されました。そこでこの記事です。
実際、これを達成する方法はたくさんあります。
1. 各ページで個別に権限を判断できます。これが最も一般的な方法です。
2. 最終ページ ファイルごとに構成ファイルを作成して、ユーザーがこのページにアクセスするときに、ファイルが存在するかどうかを判断するために関数を使用できます。存在する場合は、ファイルの内容に基づいて権限が判断されます。存在しない場合は、権限を判断する必要はありません。
3. 一定の設定により権限を統一的に判断し、権限を判断する機能を別途作成することです。
次の例は 3 番目の方法であり、どのような状況にも適しており、比較的普遍的です。
ステップ 1. アクセスパス情報を整理し、権限検証が必要なパスを整理してリストに整理します。
ステップ 2. 権限検証が必要なカテゴリを整理し、権限検証の種類ごとに別の関数を作成します。
ステップ3. 「アクセスパス」と「権限検証関数」の対応関係を1:1の比率で設定ファイルまたは配列(例えば、以下のfilter.phpの$filter配列に書き込みます)
ステップ4.検証機能では、現在のアクセスパスを解析し、許可判定を行います。
簡単に説明すると、filter.php はすべての検証情報を含めるために使用されるファイルです。 Authorization() はコアのスケジュール関数です。 application.php は通常のページ ファイルです。例の関数には特定の実装がないため、自分で追加できます。
ファイル 1、filter.php
$filter = array('/admin' => 'adminLogin',
'/admin/userAdmin' => 'powerAdminLogin',
' / myshop ' => 'userLogin'
);
function adminLogin(){
// return 'あなたは管理者ですか': 'FALSE';
}
function powerAdminLogin(){
// return 'あなたはスーパー管理者ですか?'SUCCESS': 'FALSE';
}
function userLogin(){
// return 'SUCCESS': 'FALSE';
}
function authorization( ){
global $filter;
// 現在アクセスされている URL パスを取り出して解析し、フィルター対象の現在のパスが $filter に含まれているかどうかを判断します
// たとえば、現在のアクセス パスは http://www. hahawen.com/admin /userAdmin/gogo.php
// /admin/userAdmin/gogo を取り出して、$filter にこのパスが含まれているかどうかを確認します。
// そうでない場合は、/admin/userAdmin を取り出し、$filter にこのパスが含まれているかどうかを判断します
// 含まれている場合は、このパス (/admin/userAdmin) に対応する値 $value を $filter,
// 実際には返しますこの $value は関数の名前です。
// この関数は、現在のユーザーが現在のアクセス パスへのアクセス権を持っているかどうかを判断するために使用されます
// $value() を通じてこの関数を呼び出し、「成功」または「失敗」を返します"
// 失敗した場合はエラーページにリダイレクトするか、$value() 関数で対応する処理を実行できます
// 成功した場合は true を返します
// たとえば、現在のアクセス パスは http: / /www.hahawen.com/news/happy/list.php
// /news/happy/list を取り出し、$filter にこのパスが含まれているかどうかを確認します。
// そうでない場合は、/news/happy を取り出して $filter にこのパスが含まれているかどうかを確認します
// そうでない場合は、/news を取り出して $filter にこのパスが含まれているかどうかを確認します
// そうでない場合は、このページが権限を確認することは許可されていません。
// true を返します
}
?>
ファイル 2, application.php
require_once "filter.php";
authorization();
//その他の操作。
?>