【PHP】「ドキュメントが有効期限切れです」への対処【CakePHP3】


CakePHP3を使ってもにょもにょと検索やらなんやらいろんな処理を書いていたんですが
ブラウザバックで戻ると以下の画面が出るので、この画面がでないように対処したという記事になります。

使用しているブラウザはFirefoxです。

環境

PHPのバージョン…5.6.35
CakePHPのバージョン…3.6.3

どうやら他のブラウザでも起きる模様

調べたところFirefoxだけではなく他のブラウザでも起きるみたいです。
ブラウザにより表示される文言は若干違うみたいですが
「このページを表示するには再度データを送信することになるけど大丈夫?」みたいな文言でどのブラウザでも表示されるようです。

原因と解決方法

原因はphp.iniのこの記述です。

session.cache_limiter = nocache

headerにnocacheを送っているみたいなのでこれを以下に書き換えます。

;session.cache_limiter = nocache
session.cache_limiter = none

noneというパラメータはないんですが存在しないパラメータを指定することによりエラーを起こしてheaderに何も送らない、という処理が行われているとのことです。

session.cache_limiterについて、公式だと以下のあたりが参考になります。

あと解決方法としてはPOSTを使っているとこのようになりますので、
GETで値を飛ばす、というのも有効です。

今回は研修で作ったシステムでしたのでphp.iniを書き換えて対処してしまいましたが
php.iniの設定を書き換えると全体に影響が出ますので
公開するシステムでしたらphp.iniの設定を書き換えるという方法はおすすめはできません。

無理やり感があるなぁと思ったものの、どんな解決方法があるか忘れないよう残しておきます。

  • このエントリーをはてなブックマークに追加

PAGE TOP