2017-06-27 16 views
2

私は初心者として勉強したコードからPHPでログインシステムを設定する2つの基本的な方法があるようです。私はそれを行う "より良い"方法であることを知りたいと思います。session_start()を呼び出す正しい場所はどこですか?

最初の方法は、ユーザーがログインしているかどうかにかかわらず、すべてのページのヘッダーでsession_start()を呼び出します。呼び出し時のログインスクリプトは、$_SESSION経由で変数を追加します。変数がUsersテーブルと一致する場合、ユーザーはログインしてログイン領域にアクセスします。

第2の方法は、最初にsession_start()をログインスクリプトで呼び出し、次にユーザー領域内のすべてのページで呼び出します。

  • セッションを作成または再開するためにsession_start()を呼び出す必要がある場合、ヘッダーに入れて忘れておくのがベストプラクティスですか?

OR

  • session_start()ログインスクリプトで初めて呼び出されるべきか?

この決定にはどのような意味がありますか?

+2

オプション1が最適です。 – RiggsFolly

+0

できるだけ早く呼び出すことをお勧めします。理想的には、アプリケーションの "ブートストラップ"やセットアップスクリプトの形式で使用するのが理想的です。いくつかのページには 'session_start()'があり、他のページにはないので、バグを狩りたくはありません。 –

+0

@MartinBeanログインしないユーザーのためにセッションを開始するのは、それが目的を持たない人にとっては直感的ではないようでした。私はそれを取るが、これは重要ではない。ありがとうございました。 –

答えて

0

最初の方法は、ユーザーがログインしているかどうかに関係なく、すべてのページのヘッダーでsession_start()を呼び出します。

これは理想的にはいくつかの理由から最適です。

初めからセキュリティ(またはその他の理由)のために追加機能を追加することもできます。たとえば、WebサイトにアクセスしたくないブロックされたIPアドレスを持つこともできますし、セッションを使用して統計情報を取得することもできます。

だから多分あなたは、人はそれらがログインしていない場合でも、特定のページを取得するからリダイレクトされた場所を確認したい。

全体的には、セキュリティ上の理由から簡単にセッション管理を開発し、統計機能を開発するのに役立ちます。

関連する問題