• 締切済み

リロードの防止法

PHPとmysqlで簡単なwebを作成しています。 F5等で再読み込みを行うと、 各SQLも実行されてしまうので困っています。 ある程度のものは時間を判断して、 その時間以内には 「再読み込みできない」というページに リダイレクトさせる事で回避できました。 マスタ管理画面などにはどいういった処理を書いて リロードを防止すればよいか悩んでいます。 分かる方、教えてください。

みんなの回答

  • awazak
  • ベストアンサー率36% (61/165)
回答No.2

MYSQL処理を行うほかのページをつくり、 ------------------------------ header(Location:xxxxxxxxxx) ------------------------------- で元のページにもどしましょう。 処理を行うページは、if や switch など使って分岐させます。

回答No.1

リロードは本当に困りますよね。 参照系はSQLを実行されても困らないので、更新系のリロードを防止したいという前提で書きます。 リロードを防止する方法はいくつか考えられます。 ようはサブミットされたことがわかれば良いので、セッション変数にサブミットされたことを記録するのが簡単でいいんじゃないですかね。 たとえば、フォームを表示するときに $ses_submitted = false; とかやっといて、 action 先のPHPで以下のような処理すればいいんじゃないでしょうか。 if ($ses_submitted) { // 更新済み } else { // 更新処理 $ses_submitted = true; }

kaiu
質問者

お礼

回答ありがとうございます。 上記と似たやり方も試しましたがうまくいかず javascriptを使ったり(結局クライアントでロック 掛けるだけなのでサーバ側で2回実行されてしまったのですが・・・) クッキーも使おうと思ってましたがどうも もっと簡単な方法はないのかと・・・。 明日セッション変数使用で書いてみます。 また報告させて頂きます。 ありがとうございます。

関連するQ&A