Apatch、PHP4、PostgreSQLを使ってWebサイトの開発をしています。ブラウザはIE6を使用。NNを使用するとこの事象は発生しませんでした。
●仕様
・A.php → B.php → C.php という遷移をFormをSubmitすることによって行います。
・Aでは、入力フォームがあり、そこでユーザは情報を入力して、Submitボタンを押下し、Bへ遷移します。入力した値はPOSTで渡されます。
・Bでは、Aから渡された値を画面表示するときに受け取った値を確認のために表示。同時バックグラウンドで、Input type hidden のタグに値を渡し、そのFormをSubmitすることによりCへ遷移。(受け取った値をそのままCへPOSTで渡す。)
C・では受け取った値をDBに登録し、登録終了画面を表示する。
●不具合
BからCへ遷移するとき、画面が反映されない。
○不具合詳細
・BからCへのSubmitボタンを押下するとブラウザ下部のステイタスバーにはプログレスバーが延びていき、「ページが表示されました」となるにもかかわらず、画面はBの状態のままである。さらにブラウザ上部のURL入力部にはC.phpのURLが入っている。
・DBには値が反映されている。(CのPHP処理は正常におこなわれているらしい)
処理終了後に画面のどこか(どこでもよい)を一回クリックするとぱっとCの画面が表示される。(何もしないとずっとBのままである。)
・Bの画面のままのときに、Submitボタンをもう一度押すことが出来、二度目のアクセスにいってしまう。(当システムの場合、これを行うと一意規約違反でエラーとなる。)
・AからBではこの現象はおきない。
・毎回なるわけではなく、4回に1回くらいは正常な動作をする。
●環境
サーバOS:RedHatLinux
Webサーバ:Apatch
DB:PostgreSQL7.1
実装言語:PHP4
ブラウザ:IE6(NNではならない)
対処法のわかるかた、いらっしゃいましたらお願いします。
No.1
- 回答日時:
> ・毎回なるわけではなく、4回に1回くらいは正常な動作をする。
これがくせ者ですね。
PHPのバージョンは何でしょう?
例えば、PHP4.0.6以前のバージョンでは、PostgreSQLと組合せた時に「random crashes」するバグがあります。
以下PHPマニュアルより引用
- Fixed pg_last_notice() (could cause random crashes in PostgreSQL
applications, even if they didn't use pg_last_notice()). (Zeev)
と言う具合に、PHP4とだけでは分かりません。
また推論になりますが、拡張ライブラリは何か使っていますか?
特にAPCを使っている場合は、スクリプト内にglobal変数を多用すると、バグが出ることがあります。
No.2
- 回答日時:
クライアント側のキャッシュの問題かも。
キャッシュしないよう、クライアント側に設定して、うまくいくようだったら、
HTTP応答ヘッダーとして
Expires: 0
と書いてみるとか。
この回答への補足
そのような方法があるのですか。
申し訳ないのですが、コードとしてどのように記載すればいいのでしょう?
header('Expires: 0');
を記載すればいいのですか?
No.3ベストアンサー
- 回答日時:
キャッシュの問題であれば、一度ブラウザのキャッシュをクリアし、スクリプトに
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
を加えて、様子を見てください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウェブサイト上のボタンを自動...
-
アイフォン使ってたらちょくち...
-
メールフォームの確認画面が表...
-
ビジネスメールの敬称
-
エクセルVBA テキストボックス...
-
アクセスのマクロ
-
EXCEL VBA で指定した範囲に入...
-
至急です!Excelがわかりません
-
初歩的な事だと思います。 Sub...
-
お問い合わせフォームから送信...
-
フォームを再送信しますか?
-
DATE型変数を初期化する方法
-
safariの 「本当にもう一度フ...
-
Safariで「本当にこのフォーム...
-
複数行の入力を受け取る方法
-
入力フォームの値をQRコードで...
-
accessで該当するレコードがな...
-
VBA R1C1形式で変数の入力について
-
時間の足し算
-
アルファベットGの小文字の入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
shopping cart V5.0の商品登録...
-
htmlからbatファイルを起動する
-
アイフォン使ってたらちょくち...
-
ヤフージャパンへの問合せ 「次...
-
値だけ送信してページは遷移さ...
-
ワードプレスプラグイン MW WP ...
-
ページ移動した場合の、フォー...
-
ブラウザの「戻る」ボタンを押...
-
他のPCにメッセージを表示
-
戻るボタン実行後の一時ファイ...
-
コンボボックの連携について
-
VBからEXCELファイル印刷
-
accessでフォームを希望の入力...
-
ウェブサイト上のボタンを自動...
-
VB2005 複数のフォームを同時...
-
メール送信フォームとhistory.b...
-
入力フォームの確認画面からの...
-
PHPでの注文フォーム作成について
-
子画面から親画面に値を返す方法
-
変数を複数ページにわたって保...
おすすめ情報