PHPのsession関数に関する質問です。

連打して複数回URL(PHPスクリプト)にアクセス場合にセッションの内容の変更が
とんだりすることがあるようです。
おそらく、1回目のURLにアクセスした結果が、ブラウザに戻される前に2回目の送信が
なされると、2回目でも、1回目と同じセッションの内容になっているとして処理さえっるのではないかと思われます。1回目の変更は、ブラウザにきちんと戻した場合に確定するのではないかと思うのですが、そうなっているのでしょうか? 関連した情報お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/01/11 12:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:KUROX No.1

回答回数3542ベストアンサー獲得回数140

ポイント60pt

http://www.teu.ac.jp/chiit/~dsuzuki/phpdoc/ref.session.html

>全ての登録された変数は、リクエストが終了した後に、シリアル化されます。

この1文を読む限りでは、質問文の想定どおりだと思われます。

---------------

リクエストがあってCGIが動作して、CGIが終了する前に、リクエストが

来た場合、値は前のままの可能性が高いと思います。

---------------

PHPのセッション変数の保持の仕方が分からないのですが、このページの記述を

見る限りでは、リクエストが終了した後に、シリアル化してphp.iniで定義されている

ディレクトリに一時ファイルとして内容を吐き出してるのではと。

リクエスト開始時に、この一時ファイルを読み込んで変数を復元してそうな感じはします。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません