2011-01-13 16 views
4

私のCMSは、サイトにアクセスするすべてのユーザーのPHPセッションを作成します。私は、ログインしたいユーザーのためのセッションを作成することだけを考えています。ここで問題となっているのは、ログインしているユーザーのUI要素がすべてのページにあるということです。ログインすると、すべてのページリクエストでセッションを開始するオプションが他にありません。または私は間違っていますか?ログインしたくない場合でも、すべてのユーザーのセッションを作成するのが普通の方法ですか?すべてのユーザーまたはログインしたいユーザーのみに対してPHPセッションを作成しますか?

短く、A.私のユースケースには、ログインするユーザーのためにPHPセッションを作成するオプションがあるかどうかを知りたいと思います。彼がログインしたいかどうかにかかわらず、これが当てはまらない場合、私は物事を本当に残すことができます...

+1

セッションは悪いことではない(と私は背中とセッションパラメータの第四そこにデータのポストメガバイトのサイトを見ている) –

+0

ありがとう!知っておいてよかった! – wowpatrick

答えて

3

あなたは(本当の)選択肢がありません。ユーザーがセッションなしでログインしているかどうかはわかりません。

+0

は、だから私は、あなたが言ったように、私の使用の場合には、私はとにかく他のオプションを持っていない、最初の場所で右でしたか?それでも、私は、これが一般的に「悪い習慣」であるかどうかを知ることに興味があります。 – wowpatrick

+0

私はそれが私が知りたいと思ったすべてのことだと思う、ありがとう! 、私が間違っている場合 – wowpatrick

1

空の$ _SESSION値を探して、ログインしているかどうか確認できませんか?

+0

が私を修正して、私はセッションに(私がログインしたくないすべてのユーザーのために避けたかったもの、例えば定期的に訪問者を)開始しない場合、$ _SESSIONは常に存在しないだろうそれは本当の選択肢ではありません。 – wowpatrick

+0

$ _SESSIONが存在するかどうかを確認してください。 –

1

ほとんどの場合、ログインはセッションを介して管理されるため、ページの先頭にセッションを作成して、ログインしているかどうかを判断する必要があります。あなたは本当に選択肢がありません...悪い習慣ではありません、それは一般的な練習です。

+0

あなたの答えをありがとう!知っておいてよかった! – wowpatrick

2

クイックアンサー:

すべてのユーザーにセッションを作成することは事実上可能です。セッションはごくわずかであり、パフォーマンスが上がるまで心配するものではありません(あなたの場合)。

使用している方法はまったく悪いことではありません。実際、私はそれがベストプラクティスに近いと言うでしょう。

長い答え: 私の6年以上の企業の世界でのPHPプログラマーとしての経験では、ログインしているかどうかにかかわらず、すべてのユーザーのセッションを作成するのは完全に正常です。セッションは、ログインしていなくてもショッピングカートなど、便利な機能を多数使用することができます。パフォーマンスを一段と速くしたい場合は、GoogleのPagespeedやYahooのYSlowなどのツールを使用してください。ウェブサイトのベストプラクティスに関するヒントを提供します。

+0

あなたの説明をありがとう!本当に役に立ちました。何が複数の答えを正しいとマークできないのは残念です。 – wowpatrick

1

は、毎回セッションを作成しないようにすることが可能です。可能な場合は、です。セッションファイルが小さい場合はどうすればよいですか?それがなぜ不要なときに増殖させるのですか?

これは本質的に、私は何をすべきかです:

着信要求のセッションクッキーが存在するかどうかを確認し、あなただけは1を受け取った場合session_start()を行います。

サイトを閲覧しているログアウトしたユーザー(通常)はセッションCookieを送信しないため、session_start()がトリガーされません。シンプル。

誰かがあなたのサイトにログインし、セッション(アプリケーションとPHPの意味で論理的にセッション)を開始したい場合は、session_start()などを使用して、クッキーの設定を処理します。

一度ログアウトすると、PHPセッション自体だけでなく、セッションクッキーも破棄されていることを確認してください。

明らかに、ユーザーはCookieの操作を自分の側でブロックしてしまう可能性がありますが、とにかくこれを行うことができます。

あなたがあなたのセッション変数にギガバイトのデータを保存しようとしない限り、
関連する問題