2013-02-15 2 views
0

에 젠드 Framwork 세션 아직도이 포스트 후이 링크를 작동 만들 수 없습니다 : Zend framework session lost인터넷 익스플로러

을 나는 사용자가 등록하고 바로 자신의 페이지로 리디렉션 할 수 있도록이 가입 양식을 가지고있다. 인터넷 익스플로러을 제외한 모든 브라우저에서 모두 잘 작동합니다.

다른 방법을 시도했지만 여전히 작동하지 않습니다. 사용자가 데이터베이스에 저장되면 세션이 저장되지 않습니다. 그러나 사용자의 저장을 꺼내면 세션과 쿠키를 저장할 수 있습니다. 여기

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에만 ​​문제가되는 IE 만 있으면 P3P 정책입니다. 여기 Talha의 게시물을보세요 : Zend Sessions problem with IE8

+0

고맙습니다. 일주일에 한번 고쳐 주셔서 고맙습니다. –