cakephp session が切れる 7 つ原因と解決方法

2013年9月22日更新 view: 6091 view
photoBy: http://www.mori-hosp.jp/community/img/女の子P5090150…

セッションが切れる、繋がらない、始まらない

原因はなに?

cakephpのバグでセッションバグが一番厄介。
対策法をまとめてみる。

cakephpの場合は、明示的にsessionを始める必要がある。

バージョンにもよるみたいだが、セッション自動スタートがオフになっている場合がある。
そんな場合は、bootstrap.phpに

if(!isset($_SESSION)) session_start();

と書く。

favicon や css js のリンク切れ

<link rel="shortcut icon" href="favicon.ico" />

のパスがリンク切れだとセッションも切れる

ファイルがリンク切れしていないか確かめよう

IE8 などでポップアップ窓を開いたとき、別セッションが始まる

/app/config/core.php

Configure::write(‘Session.checkAgent’, true);

security.level は lowにしよう

/app/config/core.php

Configure::write('Security.level', 'low');

AuthコンポーネントはAppコントローラーに読ませてある?

2ch情報によると、AuthコンポーネントをUserとかのコントローラーに読ませていると切れたりするみたい。

エラーが出ていない?

/config/database.phpの設定はしてありますか?
cakephp自体にエラーが発生していると、それが原因で始まらない時があります。

Session.timeout をめちゃめちゃ長めに設定すると、バグる。

/app/config/core.php

Configure::write('Session.timeout', '12000');

これを 120000000000000000000000000000000000000 とかにするとページキャッシュしたときにセッションが切れる。

デバッグのコツ

sessionが始まらなければ、ゆっくり直そう

スポンサードリンク
  • ブラウザを変更して試す
  • 別のシンプルなviewを作り、試す
  • config.php の設定の見直し
  • errorlog にエラーが出ていないかチェック
スポンサードリンク

関連記事

関連カテゴリ