Zend Framework сеанс потерян

У меня есть форма регистрации, когда пользователь регистрируется, он перенаправляет его на свою страницу. Все отлично работает в Firefox и Chrome, но в Internet Explorer. Похоже, что после сохранения информации о пользователе сеанс завершился, и он не будет перенаправлять пользователя на его страницу.

Как я могу исправить эту проблему в IE?

$user = $this->_helper->model('Users')->createRow($signupForm->getValues());   
        if ($user->save())
        {               
            Zend_Session::rememberMe(186400 * 14);
            Zend_Auth::getInstance()->getStorage()->write($user);
            $user->sendSignUpEmail();
            $this->getHelper('redirector')->gotoRoute(array(), 'invite');
            return;
        }

2 ответа

У меня возникла похожая проблема - создать сессию в iframe в IE перед перенаправлением, и это работает для меня: попробуйте включить Zend Action:

$response = $this->getResponse();
$response->setHeader('P3P', 'CP="CAO PSA OUR"', true); 

Посмотрите, что делает заголовок ('P3P: CP = "CAO PSA OUR"'); делать?

Вы, кажется, продолжаете публиковать варианты одного и того же вопроса. В вашем коде нет ничего, что могло бы работать по-разному в разных браузерах. Вам нужно отладить это, чтобы увидеть, как далеко заходит IE, что поможет вам определить причину проблемы.

Итак, сделайте отладку, чтобы попытаться ответить на следующие вопросы:

  • Есть ли $user->save() вернуть истину? (то есть IE входит в оператор if)
  • Если это входит в если, что в $user? Пытаться var_dump($user);exit; внутри, если посмотреть, что вы получаете
  • Есть ли $user->sendSignUpEmail(); позвонить?
  • Если он попадает в часть перенаправления, какие заголовки отправляются? (Вы должны быть в состоянии проверить это с помощью инструментов разработчика IE)

Если вы тестируете в IE на компьютере, отличном от того, на котором работают браузеры, также проверьте системные часы, так как неправильные дата и время могут привести к немедленному истечению срока сеанса.

Другие вопросы по тегам