- 締切済み
処理中に変数の値が変わってしまう
Webページでセッションに値を格納し処理を行っています。 クラスをserialize()しセッションに格納して同じページで利用しています。 このセッションに格納した値がFireFoxでは想定通りに動くのですが、 IE6.0だと特定の個所のみ突然値が変わってしまいます。 ページの一番最後で出力したセッションの値が、 次ページの一番最初で出力した場合値が変わっています。 ファイルにserialize()したデータを書き込んで見たのですが、 正しいデータを持っているにもかかわらず、 書き込んだデータは異常な値でした。 また、書き込んだ後に画面に値を表示しても正常に表示されました。 $aを画面に表示 → 正常 $aをファイルに書き込み → 異常 $aを画面に表示 → 正常 環境は PHP5.1.2 Apache2.0.48 RedHatLinux9 です。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- cybert
- ベストアンサー率56% (18/32)
回答No.1
よくわかりませんが、ブラウザのキャッシュな気がします。 header("Pragma: no-cache"); header("Cache-Control: no-cache"); とかやってみて下さい. 注意点は、文字とかを出力する前にこの関数を使ってやってください。できればソースの頭に書いて
お礼
お答えありがとうございます。 大変申し訳ありません、問題の認識が間違っていたようです。 また、お答え頂いた内容は試してみたのですがちょっと違ったようです。 「横取り丸」と「InetSpy」というツールを使ってわかったのですが、 ブラウザからリクエストがなぜか2回行われていました。 そのため2回目の処理でセッションの値が変わっています。 (2回目の処理が行われたとするとセッション内の値は妥当です。) (1) 最初のページ ↓ 処理の実行 (2) 本来なら表示されるページ ↓ なぜかリクエスト (3) ??? (3)の時点で、画面は(2)が表示されます。 ですが、なぜかリクエストが発生し セッションの値などは(3)の値となってしまっています。 また、「InetSpy」では(3)の処理実行時に 「クライアント側が切断しました」となっています。 問題を把握しきれていない状態で質問してしまい、申し訳ありませんでした。 また、IEが勝手にリクエストを行うということが有るのでしょうか? また、勝手にリクエストを行わない様にする事は可能なのでしょうか? 宜しくお願いします。
補足
大変申し訳ありません。 解決しました。 画像の指定が間違っていました。 <IMG src=""> となっていたため同様の処理が行われていたと言う物でした。 お騒がせし大変申し訳ありませんでした。 また、お答え頂きましてありがとうございました。