Mianowicie - chodzi o upload plików, który wykorzystuje flash.
Z tego powodu mam przedefiniowane SessionStorage, o tak:
class MySessionStorage extends sfSessionStorage { public function initialize($options = null) { sfContext::getInstance()->getLogger()->info('entering MySessionStorage'); // work-around for swfuploader if(sfContext::getInstance()->getRequest()->getParameter('xxx')) { } parent::initialize($options); sfContext::getInstance()->getLogger()->info('leaving MySessionStorage'); } }
Wywoływana akcja wymaga logowania, więc odpowiedni parametr jest ustawiony (i przesyłany w POST).
Powyższa metoda JEST wywoływana (wstawiłem do kodu logowanie).
Problem:
Mimo, że user jest już zalogowany, wywołana akcja zachowuje się tak, jakby nie był zalogowany.
Aug 22 23:15:27 symfony [info] {sfPatternRouting} Match route "default" (/:module/:action/*) for /document/uploadify with parameters array ( 'module' => 'document', 'action' => 'uploadify',)
[..]
Aug 22 23:15:27 symfony [info] leaving MySessionStorage
Aug 22 23:15:27 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter"
Aug 22 23:15:27 symfony [info] {sfFilterChain} Executing filter "sfBasicSecurityFilter"
Aug 22 23:15:27 symfony [info] {sfBasicSecurityFilter} Action "document/uploadify" requires authentication, forwarding to "sfGuardAuth/signin"
Aug 22 23:15:27 symfony [info] {sfFilterChain} Executing filter "sfRenderingFilter"
Aug 22 23:15:27 symfony [info] {sfFilterChain} Executing filter "sfExecutionFilter"
Aug 22 23:15:27 symfony [info] {sfGuardAuthActions} Call "sfGuardAuthActions->executeSignin()"
Jakieś pomysły?
update: myślałem, że może ustawiane session_id nie działa, ale wygląda na to, że wszystko jest ok:
Aug 23 06:24:38 symfony [info] entering MySessionStorage
Aug 23 06:24:38 symfony [info] session_id=
Aug 23 06:24:38 symfony [info] session_id=d13ans5jf07aveufb2qcdv0k71
Aug 23 06:24:38 symfony [info] leaving MySessionStorage
Z góry dziękuję,
pepe
Rozwiązanie:
http://forum.ovh.com/showthread.php?t=69460
Na serwerze OVH trzeba ustawić własny katalog do przechowywania sesji.
ini_set ('session.save_path','/homez.xxxx/xxxxxxxxx/sessions') ;