質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

13763閲覧

ブラウザの戻るでフォーム再送信の確認が表示される

yggd0114

総合スコア91

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/07/18 02:48

編集2019/07/18 03:20

phpで構築した画面なのですが、POSTした後の画面からブラウザの戻るやhistory.backを利用すると
「フォーム再送信の確認 ERR_CACHE_MISS」画面に切り替わることがあります。
切り替わるときと切り替わらない時があるのですが、どのような原因が考えられますでしょうか?

追記
同じ動作で切り替わるときと切り替わらない時があります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/07/18 05:07

「ブラウザの戻るでフォーム再送信の確認が表示される」という現象は起こりうるものだけど、じゃぁどうしたいのかがわからない。確認画面を表示させずに表示できるようにしたいのか、その場合に安易な実装だとデータ登録画面か何かだったときに二重に送信してしまうことになりかねないので、そういう場合はどうしたいのか、ってところまで踏み込んで具体的に望む目標目的を示してほしい。そして、第三者が再現できるコードも示すように。
m.ts10806

2019/07/19 05:42

m6uさんも色々と確認してアドバイスしようとしてくれていますが、 無反応のまま解決済みとされたのではあまりにもその後の対応が雑に思います。 自己回答のコードは修正すればいい話だし、他に分かったことがあれば追記すれば良かったのではないでしょうか。
guest

回答2

0

ベストアンサー

ブラウザの仕様です。
「二重送信」の対策を施す必要があります。

投稿2019/07/18 02:51

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yggd0114

2019/07/18 02:59

切り替わるときと切り替わらない時が同じ動作で起きるのですが、それも仕様ですか? また、二重送信対策を行えば起きないということですか?
m.ts10806

2019/07/18 03:08

仕様通りにしか動かないので必ず何かしら違う点があると思います。 >二重送信対策を行えば起きないということですか? 起こさないための二重サブミット対策です。
yggd0114

2019/07/18 03:23

すみません。質問の仕方が悪かったです。 「フォームの再送信の確認」画面が表示されなくなるということでしょうか? 2重送信は、されても問題ない画面なので上記内容が対策ではないのであれば他を検討します。
m.ts10806

2019/07/18 03:31

ユーザー観点からするとシステム上何もないと分かっていてもあの画面(またはアラート)は「何か良からぬことが起きるんじゃないか」と不安をあおります。 避けられる手法がおおよそ確立されているものなので、導入したほうが良いです。
m.ts10806

2019/07/18 03:32

それに・・・ PHPで組まれているなら「ブラウザバック」を前提としない実装 「history.back」は極力入れない ようにすべきと思います。 データの保証はしないものとして大抵のサイトは組まれています。(ブラウザによっても違うし完全制御が簡単ではないから)
yggd0114

2019/07/18 03:46

画面は表示されなくなるのでしょうか? 二重送信の問題は、画面が出なくなるかどうか解決した後の問題かと思います。 そちらの問題が解決後、導入するかの検討いたします。 ブラウザバックを前提しない実装にすべき点はわかっています。 色々な都合上で現在導入したところ、本現象が起きているので原因の究明をしたいと思ってます。
m.ts10806

2019/07/18 03:56

前提や背景がもともと質問に書かれてないのでそれは最初から書いておいてもらいたいですが、 まずこの流れでは私が提示した対策で質問者さんのやりたいことが満たせるかどうかは試してもらわないと分からない状態になってますので、まず簡単なコードで試してみては如何でしょうか。 それに、もしかしたらブラウザ環境依存の問題かもしれませんし。 https://windows10repairs.com/ja/how-to-fix-err_cache_miss-error-in-google-chrome/ (つまりシステム側ではなくユーザー側で対応するもの)
yggd0114

2019/07/18 04:20

質問した内容と回答が一致していない気がします。 二重送信を防ぐことで、画面を表示しなくなるなら行いますが、それが解決しないなら ブラウザバックがそもそも使えないので二重送信を防ぐことをする必要がありません。 画面を表示しなくなる対策として、提示していただけたということでしょうか? ブラウザ依存であれば、対策しようがないですね。
m.ts10806

2019/07/18 04:32 編集

私は(あくまで現在の質問内容からだけ)解決すると思って提示はしていますが、まずは試してもらう必要があります。 それでもし解決しないのであれば、再現するコードを(最小構成でいいので)提示してもらう必要があるかと。 結局は試行錯誤の手段の1つにすぎないので、やってみた上で次どうするかを考えるべきではないかなと。
m.ts10806

2019/07/18 04:26

現在の質問内容では誰も現象を再現確認できないので、こちらが試すことはできません。 手元に再現するコードがある質問者さんが試すのが適切と思います。
退会済みユーザー

退会済みユーザー

2019/07/18 05:04

壊れたロボット会話みたいになってるので、前進させたければ、質問者自身がミニマルなコードを書いて再現テストしつつ、それを元にここで議論して対策を盛り込んだらよいかと。 こうなんじゃないかと、第三者が憶測で再現したところで、現状認識が食い違っていればタダの無駄になってしまいます。 第三者が再現できるように、質問者がコードを示すのが、質問者の責任だし義務だと思います。
guest

0

皆さんありがとうございました。解決しました。
質問に書いてある通り、考えられる原因が知りたかったのですが残念です。

私の場合は

session_cache_limiter(‘private_no_expire’)

を追記することで解決しました。

以上、ありがとうございました。

投稿2019/07/18 05:17

yggd0114

総合スコア91

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/07/19 03:20 編集

動かないコードが提示されていますので低評価しています。(理由はそれだけではないけど) 「考えられる原因が知りたい」のであれば私の回答である「ブラウザの仕様」で済んでいるはずですが。
yggd0114

2019/07/19 08:39

頂いた内容通り、ベストアンサー変更いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問