Zend的Framwork会议在Internet Explorer [复制](Zend Framwo

2019-10-17 16:57发布

这个问题已经在这里有一个答案:

  • Zend框架的会话丢失 2个回答

仍然不能使它后工作后,此链接: Zend框架的会话丢失

我有这样的注册形式,允许用户注册和重定向他们马上到自己的网页。 所有在除了IE浏览器的每个工作的伟大。

我曾尝试不同的方法,但仍然不能使它工作。 用户保存到数据库后,会议不会存储。 但是,如果我拿出了保存用户,会话和cookie可以存储。

下面的代码:

public function signUpAction()
{
    $signupForm = new Application_Form_UserSignUp();
    if ($this->getRequest()->isPost())
    {

        if ($signupForm->isValid($this->getRequest()->getParams()))
        {
            $user = $this->_helper->model('Users')->createRow($signupForm->getValues());
            if ($user->save())
            {
                //Set email into cookies for displaying into login inputfield
                setcookie('display_email', $this->getRequest()->getParam('email'), time() + 3600*24*30, '/'); <-- not working
                Zend_Session::rememberMe(186400 * 14); <-- not working
                Zend_Auth::getInstance()->getStorage()->write($user); <-- not working

                $user->sendSignUpEmail(); <-- i'm receiving this email
                $this->getHelper('redirector')->gotoRoute(array(), 'invite');                   
                return;
            }
        }
    }
    $this->view->signupForm = $signupForm;

这里的另一种方式,我做什么,但仍然没有工作在IE浏览器

public function signUpAction()
{

    $users = new Application_Model_DbTable_Users();
    $signupForm = new Application_Form_UserSignUp();
    if ($this->getRequest()->isPost())
    {
        $firstname = $this->getRequest()->getParam('first_name');
        $lastname = $this->getRequest()->getParam('last_name');
        $email = $this->getRequest()->getParam('email');

        if ($signupForm->isValid($this->getRequest()->getParams()))
        {
            $user = $this->_helper->model('Users')->createRow($signupForm->getValues());

            $user = array('email' => $email, 'first_name' => $firstname, 'last_name' => $last_name);
            $users->insert($user);
            Zend_Session::rememberMe(186400 * 14);
            Zend_Auth::getInstance()->getStorage()->write($user);
            $this->_redirect('invite');
        }
    }
    $this->view->signupForm = $signupForm;

Answer 1:

尝试使用session_write_close呼叫重定向之前。 或者我认为Zend公司具有等效的,请参阅:由Zend_Session :: writeclose

只有想到(与IE浏览器是给你的麻烦唯一的浏览器),另一件事是P3P政策。 看看塔拉的帖子在这里: Zend的会话问题IE8



文章来源: Zend Framwork Session on Internet Explorer [duplicate]