環境
- FuelPHP 1.7
- PHP 5.6
状況
フォームにテキストやファイル添付するページ(フォームページ)と、
submit後にそれを確認するページ(確認ページ)があります。
フォームページでテキスト入力やファイル添付を行って、submitを行うとSessionが空っぽになり、結果的にエラーになってしまいます。
- 今回の問題になっているページ以外は、エラーになっておらず、Sessionの格納と取得ができている
- ファイル添付がない場合は、エラーにならない
- ファイル添付があり、サイズが約1MB以上の場合だとエラーになる
- 添付するファイルの拡張子は問わない
- Sessionのdriverをfileにすると、エラーにならない
- SessionのdriverをAWS ElastiCacheのmemcached もしくは db にするとエラーになる
- Sessionが削除されるタイミングはResponse::redirect()メソッド完了 〜 public/index.phpが呼び出されるまでの間であるところまではわかっている
下記、session.phpでsession関連の設定をしております。
<?php return array( 'auto_initialize' => true, 'driver' => 'memcached', 'match_ip' => false, 'match_ua' => true, 'cookie_domain' => '', // domainを指定 'cookie_path' => '/', 'cookie_http_only' => null, 'encrypt_cookie' => true, 'expire_on_close' => false, 'expiration_time' => 7200, 'rotation_time' => 300, 'flash_id' => 'flash', 'flash_auto_expire' => true, 'flash_expire_after_get' => true, 'post_cookie_name' => '', 'header_header_name' => 'Session-Id', 'enable_cookie' => true, 'cookie' => array( 'cookie_name' => 'fuelcid', ), 'file' => array( 'cookie_name' => 'fuelfid', 'path' => '/tmp', 'gc_probability' => 5 ), 'memcached' => array( 'cookie_name' => '', // cookie_nameを記載 'servers' => array( 'default' => array('host' => '', 'port' => 11211, 'weight' => 100) // hostはElastiCacheのエンドポイントを記載 ), ), 'db' => array( 'cookie_name' => 'fueldid', 'database' => null, 'table' => 'sessions', 'gc_probability' => 1 ), 'redis' => array( 'cookie_name' => 'fuelrid', 'database' => 'default' ) );
これらの情報から、原因がわかる方がいらっしゃったら、ご教授いただけますと幸いです。
他に、情報が必要な場合はおっしゃってください。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/25 09:42