0

我有一个注册表单,当用户注册时,它会将他重定向到他的页面。在 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;
        }
4

2 回答 2

2

我在重定向之前在 IE 上的 iframe 中创建会话时遇到了类似的问题,这对我有用:尝试放入 Zend Action:

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

请参阅什么是 header('P3P: CP="CAO PSA OUR"'); 做?

于 2013-04-08T13:06:32.443 回答
0

您似乎一直在发布同一问题的变体。您的代码中没有任何内容应该在不同的浏览器上以不同的方式工作。您需要对此进行调试以查看 IE 的进展情况,这将帮助您确定问题的根本原因。

所以,做一些调试来尝试回答这些问题:

  • $user->save()返回是真的吗?(即 IE 是否进入 if 语句)
  • 如果它确实进入了 if,那么里面是什么$uservar_dump($user);exit;在 if 里面试试看你会得到什么
  • $user->sendSignUpEmail();会被调用吗?
  • 如果它到达重定向部分,将发送哪些标头?(您应该能够使用 IE 的开发人员工具检查这一点)

如果您在另一台机器上的 IE 中进行测试,而不是使用正在运行的浏览器的机器,还要检查系统时钟,因为不正确的日期/时间可能会导致会话立即过期。

于 2013-02-08T16:35:35.447 回答