独自のアクセス制御システムを作成する場合は、他の人がコメントしたように、非常に注意してください。自分でセキュリティの悪夢を作るのは簡単です。
ユーザーがログインしているかどうかを知りたい場合は、次のようなものを使用できます。
... existing page content ...
if($_SESSION['LoggedIn']){
... add content for logged in users
}
... existing page content ...
ユーザーがログインすると、あなただけ設定する必要があります。
$_SESSION['LoggedIn'] = true;
をそしてあなたはどこ上記を使用して、あなたのようなコンテンツを追加することができます。しかしこれはあまり安全ではありません。
複数のレベルのアクセスを制御できるようにするには、データベース内のユーザーをセッションとして識別するために、UserIDまたはUserTokenを格納する方がよいでしょう。ログインに成功の例、:
$_SESSION['UserToken'] = 'aabbcc'; //Use a valid identifier to find the user in your database
あなたは、ユーザーがページ上のアイテムへのアクセス権を持っているかどうかを確認したいときに:
$SecurityLevel = 5;
if(userHasAccess($_SESSION['UserToken'], $SecurityLevel)){
... add content for logged in user ...
}
あなたは、関数userHasAccess
を実装する必要があります
function userHasAccess($UserToken, $SecurityLevel){
//Look up user token in DB to get user details
//Perform some logic to determine if the user should have access to this resource, based on the security level
//Return true if they are allowed
//Return false if they are not allowed
}
これは非常に簡単な例で、依然としてかなり弱いです。私は通常、すべてのユーザー認証を処理する認証クラスの一部として機能させます。
ユーザーがログインしているかどうかを確認するだけです。何を表示するかを決定するif文を追加します。それ以外の場合、この質問は広すぎる。なぜなら、これを完全に実装する方法はアプリケーションの残りの部分に依存するからです。 –
**警告**:独自のアクセスコントロールレイヤーを作成するのは簡単ではなく、間違った操作をする機会がたくさんあります。 [Laravel](http://laravel.com/)のような最新の[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)がある場合は、独自の認証システムを作成しないでください。強力な[認証システム](https://laravel.com/docs/master/authentication)が組み込まれています。絶対に[推奨されるセキュリティのベストプラクティス](http://www.phptherightway.com/#security)に従ってください。パスワードはプレーンテキスト**として保存しないでください。 – tadman