スレッド表示 | フラット表示〕 全トピック 920 件中 109 番目 次≫ ≪前

ブラウザで更新するたびにデータが変わる

created: 2007-06-22 00:03 | modified: 2007-06-22 17:32 | reply: 1

[3788] ブラウザで更新するたびにデータが変わる

user: tetsuya ホームページ | created: 2007-06-22 00:03
編集画面で入力した数だけデータ(csv)の数を増やすというのを作ったのですが、ブラウザの更新ボタンをクリックされると、更新されたデータの項目数を数え、同じだけ増やしてしまいます 
ブラウザの更新時には編集作業を無効にしたいのですが、何か良い方法はないでしょうか? 
よろしくお願いします
reply: 3789 返信 編集 削除

[3789] リロード対策

user: ゆうじ | created: 2007-06-22 17:32
こんばんわ。

更新ボタンを押すと、
直前のリクエストがもう一度発行されます。
なので、直前のリクエストが POSTメソッドで
フォームの値を送信してあったりした場合は、
また、フォームの値が送信され二重投稿になります。


あらかじめ、編集画面を表示するスクリプトと、
データ更新用のスクリプトを分けておいて、

データ更新のスクリプト側で必要な処理を終えたら、
以下のように編集画面にリダイレクトすれば、
二重にデータ更新が行われることはなくなります。

<?php
// 更新用スクリプト

/*
* 更新処理いろいろ
*/

$url = 'http://***/edit.php'; //編集画面のURL'
header('Location: ', $url);
exit();
?>

こんな流れです。

[編集画面] ⇒POST⇒ [データ更新] ⇒GET⇒[編集画面]

[データ更新]後リダイレクトしておくと、
直前のリクエストは、[データ更新] 後の ⇒GET⇒ なので、
二重投稿にはならないというワケです。


「リロード対策」で検索してみてください。
この他にもいろんな方法が紹介されています。
Parent: 3788  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 109 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑