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

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

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

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

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

12472閲覧

Laravelでの基本的な投稿画面におけるブラウザの戻るボタン

uzihamada

総合スコア40

PHP

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

キャッシュ

キャッシュはドキュメントやデータを一時的に保管するもので、アクセス処理時間を短くするために使用されます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/04/23 06:13

Laravelで簡単な投稿画面を作っています。
「投稿内容作成画面」
→「投稿内容確認画面」
→「完了」
という流れになっています。
そこで「「投稿内容確認画面」においてブラウザの戻るボタンを押されたときの対策に困っています。

ブラウザの戻るボタンを押下された際はそれまでの投稿内容を保持しておきたいのでinput textなどには値を保持しておきたいのですが、保持できていません。

PHP

1old('text')

では保持できておらず、バリデーションエラーの際は保持できていることから、ブラウザのキャッシュから読み込んでいるためかと思って。
Controllerで

PHP

1Response::view('hoge.foo') 2 ->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0') 3 ->header('Expires','Thu, 01 Jan 1970 00:00:00 GMT') 4 ->header('Last-Modified', gmdate( 'D, d M Y H:i:s' ) . ' GMT') 5 ->header('Pragma', 'no-cache');

HTML

1<meta http-equiv="cache-control" content="private, max-age=0, no-cache"> 2 <meta http-equiv="pragma" content="no-cache"> 3 <meta http-equiv="expires" content="0">

などを試したのですがだめでした。
Chromeだとinputtextは保持されるのですが、それ以外にも保持する情報があり、足りていません。
レスポンスヘッダ−をみてもno-cacheにはなっているのですが・・・
対策ありましたら教えて欲しいです。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

old()で取得できるのはセッションにフラッシュされた入力値です

$request->flash()は、入力値をセッションへ保管します

ですので、

lang

1$request->flash();

を実行すればold()を使って取得できるようになります

validationエラー時はwithInput()しているのではないでしょうか。

なお、サーバー側のセッションデータなのでブラウザのキャッシュは関係ありません

投稿2017/04/26 12:46

編集2017/04/26 12:48
takaboo

総合スコア195

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

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

uzihamada

2017/04/28 11:37

ありがとうございます。おっしゃる通りかと思います。 oldだとフラッシュなので確認画面から戻ってきた際には取得できないようです。 未確認ですがChromeだとinput textなどの値を戻るボタン押したときに勝手に入れてくれるみたいで、それでキャッシュが残っているもんだと勘違いしてしまいました・・・ FireFoxで試した場合は値が残っておらず、キャッシュ自体は消されていることを確認できました。 フラッシュを使えば実現できそうです。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問