• ベストアンサー

F5で直前の動作が・・・

PHPのSmartyを用いてWebサイトを作成しています。 F5を押下すると直前に行っていた動作をもう一度行われてしまい、 直前の機能によってはバグが発生します。 (たとえば「./test」内のファイルを検索した結果を表示した後に、 F5を押下すると「./test/test」を探しにいってしまい、そんなディレクトリはない!とwarningが出ます) F5を押下した場合はリロードされDB情報の更新を確認しにいくだけで、 直前の動作を行わせないようにしたいのですが 良い方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • _chihiro_
  • ベストアンサー率63% (26/41)
回答No.1

ソース内でパスの指定を相対パスにしていませんか? ブラウザの仕様でF5(更新)すると、フォームなどのPOSTやGETの値をもう一回送ってきます。 おそらく絶対パスに書き直せば、現象は収まるかと思うのですが、、、(ソースを見ていないので何ともいえませんけど) F5(更新)して同じプログラムを起動させないようにするには、フォーム内のhidden属性に現在のタイムスタンプなどを入れて、プログラムが呼ばれる際にそのタイムスタンプを比較して処理を実行する、しないなどと分岐させる必要があります。

blwapl
質問者

お礼

なるほど、POST,GETをもう一度送るのですか・・・・。 それがわかれば、対処法はあると思います。 どうもありがとうございましたm(_ _)m

すると、全ての回答が全文表示されます。

関連するQ&A