2017-09-23 6 views
-7

PHP、MySQL、もちろんHTMLを使って自分自身の教育目的のために登録/ログインシステムを組み込んだウェブサイトを作成しました。ログインシステムHTML、PHP、MySQL。ログインユーザーのセカンダリページを作成する必要がありますか?

私が今問題を抱えているのは、ログインするとメインページのコピーにいくつかの要素が変更されてしまうことです。しかし、私がしたいことは、ログインしているかどうかに依存して、すべての要素を表示したり、一部のユーザーのみを表示したり、他のユーザーを1ページだけ変更したりすることです(ユーザー間の違いに将来のユーザーの役割を作成したい)。なぜなら私はどちらのページも2つのバージョン(ログインしているユーザーの場合は1つ、そうでない場合は1つ)を効率的に作成したいと思うからです。

私は事前に

おかげで、 挨拶..私は、各ページの2つのコピーを作成するために運命づけられますが、これを行うための方法だと、私はそれらを読むことを嬉しくなると仮定し、またはそうでない場合。

+2

ユーザーがログインしているかどうかを確認するだけです。何を表示するかを決定するif文を追加します。それ以外の場合、この質問は広すぎる。なぜなら、これを完全に実装する方法はアプリケーションの残りの部分に依存するからです。 –

+1

**警告**:独自のアクセスコントロールレイヤーを作成するのは簡単ではなく、間違った操作をする機会がたくさんあります。 [Laravel](http://laravel.com/)のような最新の[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)がある場合は、独自の認証システムを作成しないでください。強力な[認証システム](https://laravel.com/docs/master/authentication)が組み込まれています。絶対に[推奨されるセキュリティのベストプラクティス](http://www.phptherightway.com/#security)に従ってください。パスワードはプレーンテキスト**として保存しないでください。 – tadman

答えて

0

独自のアクセス制御システムを作成する場合は、他の人がコメントしたように、非常に注意してください。自分でセキュリティの悪夢を作るのは簡単です。

ユーザーがログインしているかどうかを知りたい場合は、次のようなものを使用できます。

... 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 
} 

これは非常に簡単な例で、依然としてかなり弱いです。私は通常、すべてのユーザー認証を処理する認証クラスの一部として機能させます。

+0

ありがとうございました! – SaFteiNZz

関連する問題