
フォームのサブミット後にプログラムが走るようになっているtest.phpがあるのですが、フォーム送信後に更新ボタンを押しても再度ポストされるようになってしまっています。
ブラウザの更新ボタンを押したときには、ポストせずにフォームをクリアしたいのですが、どうすればできますでしょうか?
<form method="post" action="<?php print($_SERVER['PHP_SELF']); ?>">
<input type=text name=aaa>
<input type="submit" name="submit" value="submit">
</form>
<?php
if($_POST['submit']) { 処理 }
?>
No.1ベストアンサー
- 回答日時:
fabuさん、こんにちは。
> フォームのサブミット後にプログラムが走るようになっているtest.phpがあるのですが、フォーム送信後に更新ボタンを押しても再度ポストされるようになってしまっています。
これはブラウザの仕様だと思います^^;
更新ボタンを押したときに「送信ボタンを押したとき」
をもう一度実行しています。
私の場合は、送信されたときの処理をどんな出力よりも上で行い、
処理後にheader()で自分自身のページへリダイレクトするようにしています。
これでページを開いた最初の状態に戻ります。
<?php
// header()でリダイレクトするので
// どんな出力よりも先に行う。
if($_POST['submit']) {
/* 処理 */
header("Location: {$_SERVER['PHP_SELF']}");
exit;
}
?>
<form method="post" action="<?php print($_SERVER['PHP_SELF']); ?>">
<input type=text name=aaa>
<input type="submit" name="submit" value="submit">
</form>
どうしても出力後にif($_POST['submit'])を
行わないといけない場合は、
メタタグのリフレッシュを使うといいかもしれません。
ありがとうございます!
キャッシュ関係かと色々やっていたのですが、そうではなかったのですね。。今回はPOSTの結果を表示する処理なのでリダイレクトは無理なようです。ありがとうございます。すごく理解できました!
No.3
- 回答日時:
同じ処理をもう一度実行するからですね。
送信データをセッションに残しておいて、
更新ボタンを押した時にセッションの中身と比べて処理するのはどうでしょう?
ありがとうございます。
比較して同じ場合は処理をせずリダイレクトで、というようなやり方で試してみたいと思います。ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
このQ&Aを見た人はこんなQ&Aも見ています
-
formで送信したPOSTデータの削除について
PHP
-
フォームへの前回入力値をクリアーする方法は?
PHP
-
データ送信をボタンを押さずに行いたいのですが...
PHP
-
-
4
フォームで戻った際に入力済みの値が残るのを消したい
PHP
-
5
$_POST['hoge']のデータをフラッシュするには
PHP
-
6
フォーム内で記入したクエリ送信後自動的にフォーム内をリセットする方法
JavaScript
-
7
PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか?
PHP
-
8
Javascript_submit()完了後に処理したい
JavaScript
-
9
フォームでのリセットを使う方法
PHP
-
10
テーブルタグの中にdivを含めてはダメ?
HTML・CSS
-
11
POSTで受け渡したものを保存したいです。
PHP
-
12
POST時に要素を削除してからPOST
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
セッションを使わずに遷移先画...
-
フォームにダブルクォーテーシ...
-
ボタンをクリックでPHP文を実行
-
PHPでバーコード読み取りって・...
-
PHPで日替わりクイズを探してい...
-
フォーム送信後の更新ボタンで...
-
JavaScript変数をPHPへ渡す
-
アマゾンのような評価の星を選...
-
テキストリンクをPOST送信したい
-
DBの値をチェックボックスに反...
-
【PHPチェック】ラジオボタンが...
-
検索時の選択内容を保持する方法
-
PHP ボタンが押されたら処理を...
-
入力フォーム→確認画面→送信画...
-
フォームでのリセットを使う方法
-
PHPの関数実行
-
VBA で、スペースを含むファイ...
-
laravelを利用してコントロール...
-
【smarty】予約変数に可変変数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
フォーム送信後の更新ボタンで...
-
ボタンをクリックでPHP文を実行
-
セッションを使わずに遷移先画...
-
phpで、フォームのラジオボタン...
-
テキストリンクをPOST送信したい
-
Submit(送信ボタン)を押した...
-
$_POST['hoge']のデータをフラ...
-
PHPでファイルアップロード時に...
-
ローカルにあるhtmlのフォーム...
-
サブウィンドウのFORM内データ...
-
PHPの質問:フォームから受け取...
-
GETとPOST以外のデータの渡し方...
-
phpファイルの命令実行順番につ...
-
フォームで送られたデータのキ...
-
リンク先のフォームに自動的に...
-
ファイルアップロードについて
-
formの外にあるチェックボック...
-
POSTデータをフォームに残す方法
-
JavaScript変数をPHPへ渡す
おすすめ情報