FuelphpでSessionが消える

Fuelphp 1.8案件で開発してて

Session::set('test', $some_data);

して

$test = Session::get('test');

すると、空になってる現象に出会いました
原因に気づくのに3時間くらいかかってしまった..
(すごい複雑なシステムだったけど..)

原因は

fuel/core/classes/session/driver.php function _set_cookie L.474あたり

if (strlen($payload) > 4000)
{
throw new \FuelException('The session data stored by the application in the cookie exceeds 4Kb. Select a different session storage driver.');
}

データサイズが4K超えると例外を投げてて、しかも画面に出てこず、logに残るだけという..
ログファイル先に見ればよかった..

そんなにでかい変数じゃなかった気がしたんですが

ということで、セッションにcookieを使わず、fileかdbかを使うと解決でした

Session 設定 - クラス - FuelPHP ドキュメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください