
フォームのサブミット後にプログラムが走るようになっている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
フォームでのリセットを使う方法
PHP
-
6
$_POST['hoge']のデータをフラッシュするには
PHP
-
7
フォーム内で記入したクエリ送信後自動的にフォーム内をリセットする方法
JavaScript
-
8
POSTで受け渡したものを保存したいです。
PHP
-
9
POST時に要素を削除してからPOST
JavaScript
-
10
テーブル内でドロップダウンメニューを使った際の行間
HTML・CSS
-
11
PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか?
PHP
-
12
Javascript_submit()完了後に処理したい
JavaScript
-
13
HTMLで前の画面に戻る時、入力していた値が消えてしまいます。
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPの質問:フォームから受け取...
-
PHPでURLにジャンプするには?
-
サブウィンドウのFORM内データ...
-
検索フォームに「道路」と書い...
-
特殊文字を含むフォームデータ...
-
テキストリンクをPOST送信したい
-
PHPの初心者です。現在チェック...
-
都道府県選択
-
フォームボタンを押すたびに数...
-
laravelを利用してコントロール...
-
複数のセレクトボックスを1つに...
-
フォームの内容をクッキーに保...
-
複数 selectフォームから今回on...
-
【PHP&JavaScript】複数の別ウ...
-
検索時の選択内容を保持する方法
-
cookieでチェックボックスの状...
-
PHPで画像の渡しが上手く行きま...
-
GETやPOSTで値を取り出すとき
-
POSTの項目に追加
-
クレジットカード決済のPHP
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
セッションを使わずに遷移先画...
-
phpで、フォームのラジオボタン...
-
フォーム送信後の更新ボタンで...
-
テキストリンクをPOST送信したい
-
PHPのエラーの解消法について教...
-
フォームにダブルクォーテーシ...
-
ボタンをクリックでPHP文を実行
-
リンク先のフォームに自動的に...
-
変数が表示されない。
-
フォームのPOST情報が渡らない?
-
htmlファイルからphpファイルへ...
-
phpファイルの命令実行順番につ...
-
PHPの質問:フォームから受け取...
-
なぜ、unexpected T_VARIABLEに...
-
リセットボタンとエラー画面
-
PHPでファイルアップロード時に...
-
$_POST['hoge']のデータをフラ...
-
PHPのローディング
-
GETとPOST以外のデータの渡し方...
おすすめ情報