2012-01-24 14 views
0

私は本当にPHPのセッションについて混乱しています。これは私の最初のプロジェクトです。私はユーザーのシステムにログインしています。各ユーザーに、またはこれらは各ブラウザここセッションIDは何ですか? phpのセッションIDは、各ユーザーまたは各ブラウザにassされています

に固有のものであることは私の問題である

私はUSER1のユーザー名とパスワードを使用してログインしたとき、私は新しいセッションを開始し、一意のセッションIDが作成されるので際phpssesid XXXXXXXXXXXXXXXXを言うことができます私はuser1からログアウトします。セッションとセッションIDを破棄します。user1のログイン中に生成されたXXXXXXXXXXXXXXXXは、テンポラリフォルダから削除されます。 次にuser2とパスワードを使用してログインします。私はその後、私はいけない最初のログイン時に生成されたものと同じセッションIDすなわちXXXXXXXXXXXXXXXXは、2人の異なるユーザー

に私は

を参照するには、Googleのクロムを使用していたこのすべてしばらく同じセッションIDを割り当てられているか、ユーザーに来て理解し得るが、ユタ州私はuser1とパスワードを使用してログインするためにfirefoxを使用しましたが、今回は新しいセッションIDが作成されます。つまり、XXXXXXXXXXXXXXX1はログアウトして再度user2を使用してログインし、user2に割り当てられたセッションIDは同じXXXXXXXXX XXX各ユーザーに固有ですが、なぜ同じセッションIDが同じブラウザの2人の異なるユーザーに割り当てられているのですか?

+2

すべての句読点キーは* kaput *ですか? –

+0

セッションIDはどのように生成されますか? – dgw

+0

@LinusKleenキーrはうまくいっているが、私の発見はなくなっていない。私は私の問題の答えを見つけるためにstrechで5時間をワーキングしている。 – sohaan

答えて

1

具体的にPHPについてはあまり説明できませんが、HTTP自体はです。ステートレス - 同じリクエストを行った場合、同じ応答が返されます。 PHPや他の多くの言語が使用するセッションIDは、Cookieに格納されることもあり、URLに格納されることもあります。

簡単に言えば、セッションIDはブラウザごとにユーザーごとに一意である必要があります。たとえば、Aliceが自宅のコンピュータにログインしてから作業用コンピュータにログインする場合、セッションIDは異なる必要があります。 Aliceが自宅のコンピュータからログアウトし、Bobがログインすると(同じコンピュータ、Aliceの最初のログインと同じブラウザ)、別のセッションIDを取得する必要があります。つまり、フレームワーク(つまりPHP)ウェブサイト使用の

あなたのケースでは、重複したセッションIDは、Cookieやサーバーの問題が原因である可能性があります。あるいは、PHPが1つのIDを合法的に再利用している可能性があります。セッションコードの多くを変更していない場合は、ブラウザでのCookieの問題またはIDの再利用の可能性があります。

+0

おかげであなたの答えは助けられますが、私はあなたに私の簡単なデモを教えてくださいどのようにそれぞれの異なるコンピュータ上の各ユーザーのためのユニークなセッションを生成するあなたの助けが本当にappriciatedされますようにしてください。 – sohaan

+0

2人で同じブラウザを使用している場合...ユーザBがブラウザを使用する前に、ユーザAがセッションを無効にしない限り(アプリケーションの機能として、またはCookieを削除しない限り)、問題です。ユーザーAがブラウザ(タブだけでなく、プログラム全体)を閉じると、この問題は発生しません。 – dgw

+0

ありがとう@dgw javascriptと入力するともう1つ説明してください:void(alert(document.cookie))私たちのマシンに格納されているそのドミノからのクッキーのリストを取得しますutma utmz ytmcは – sohaan

関連する問題