フォームのサブミット後にプログラムが走るようになっている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.2
- 回答日時:
更新ボタンを押す=前ページのsubmitを再度実行する
です。
そのせいで何かデータが重複してしまったりするのであれば
チェック処理を絡ませれば良いです。
お探しの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 ボタンが押されたら処理を実行する
PHP
-
5
ページ読み込み時に自動的にsubmitさせる方法
JavaScript
-
6
fopenでファイルが開かない場合・・
PHP
-
7
php mysql で WHERE句内に変数を入れる方法を教えてください。
PHP
-
8
$_POST['hoge']のデータをフラッシュするには
PHP
-
9
PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか?
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのカウンタのリセット方法
-
formの外にあるチェックボック...
-
PHPでURLにジャンプするには?
-
PHP 入力フォームにて半角スペ...
-
テキストリンクをPOST送信したい
-
PHPのエラーの解消法について教...
-
フォームで作った送信ボタンが...
-
ボタンをクリックでPHP文を実行
-
JavaScript変数をPHPへ渡す
-
PHPで画像の渡しが上手く行きま...
-
ファイルアップローダーで送信...
-
HTMLで前の画面に戻る時、入力...
-
phpでチェックボックスでの値の...
-
テキストボックスに初期値を入れる
-
laravelを利用してコントロール...
-
phpでの複数選択チェックボック...
-
プルダウンとCSVの連動
-
PHPの初心者です。現在チェック...
-
<input type="hidden" >で配列...
-
複数行のデータ一括更新に関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
フォーム送信後の更新ボタンで...
-
アマゾンのような評価の星を選...
-
PHPのエラーの解消法について教...
-
phpで、フォームのラジオボタン...
-
テキストリンクをPOST送信したい
-
ボタンをクリックでPHP文を実行
-
セッションを使わずに遷移先画...
-
PHPでファイルアップロード時に...
-
$_POST['hoge']のデータをフラ...
-
PHPの質問:フォームから受け取...
-
送信ボタンでカウントアップ
-
JavaScript変数をPHPへ渡す
-
リンク先のフォームに自動的に...
-
ローカルにあるhtmlのフォーム...
-
formの外にあるチェックボック...
-
フォームで作った送信ボタンが...
-
PHP 入力フォームにて半角スペ...
-
なぜ、unexpected T_VARIABLEに...
-
VBSのIEオブジェクトでフ...
おすすめ情報