beforeFilterでのセッションに関して
cakePHPでのセッションに関して
beforeFilte()のredirect()等でsession_id()が取れない場合
<?php function beforeFilter(){ var_dump(session_id());//空になっています exit(); } ?>
セッションが開始されていないので、
強制的にセッションを開始します
<?php var $components = array("Session"); function beforeFilter(){ $this->Session->read();//単純なsession_startだと新規のセッションになってしまいます var_dump(session_id());//正常な値が入る exit(); } ?>
ハック的なやり方な気がするので暇な時にコード追って
ちゃんと修正しようと思います。
ちなみにcakeのredirect()はセッションを自動で引き継がないので下記のようにラッピングしてます。
■redirect()
<?php function redirect($url,$status=null){ $c = "?"; if(strstr($url,"?")){ $c = "&"; } $url .= sprintf("{$c}%s=%s" ,Configure::read("Session.cookie") ,urlencode(session_id()) ); parent::redirect($url,$status); } ?>