2013-02-15 177 views
0

的Zend Framwork會議仍無法使後後它的工作原理此鏈接: Zend framework session lost在Internet Explorer

我有這樣的註冊形式,允許用戶註冊和重定向他們馬上到自己的網頁。除了INTERNET EXPLORER之外,所有瀏覽器上的工作都很棒。

我嘗試過不同的方法,但仍然無法使其工作。 將用戶保存到數據庫後,會話將不會存儲。 但是,如果我拿出用戶的保存,會話和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; 

回答

1

嘗試調用重定向之前使用session_write_close。或者我認爲Zend具有相同的功能,請參閱:Zend_Session :: writeclose

只有其他想到的事情(IE是唯一給您帶來麻煩的瀏覽器)是P3P策略。看看Talha的帖子:Zend Sessions problem with IE8

+0

謝謝你,我會看看,一個星期試圖解決它.. – 2013-02-15 18:04:29