2014-10-10 136 views
0

我有這個代碼驗證用戶登錄,它在localhost上正常工作,但在遠程服務器上不起作用。它只加載並保留在登錄頁面上。但是,當用戶名或密碼錯誤時,它會給出錯誤信息。CakeSession :: write()不工作在遠程服務器上,但在本地主機上正常工作

if($this->request->is('post')){ 
      $data = $this->request->data; 
      $password = sha1($data['password']); 
      $email = $data['email']; 

      $authUser = $this->User->find('first', array('conditions' => array('User.email' => 
      $email, 'User.password' => $password))); 
      if(count($authUser) > 0){ 

       CakeSession::write('loggedInUser', $authUser['User']['id']); 
       CakeSession::write('loggedInName', $authUser['User']['first_name'].' '.$authUser['User']['last_name']); 
       CakeSession::write('verStatus', $authUser['User']['verified']); 

       if(null != CakeSession::read('loggedInUser')){ 

        $this->redirect('/shop'); 

       } 

      }else{ 
       $loginError = 'Invalid username or password'; 
       $this->set('invalid', $loginError); 
      } 
     } 

任何人都可以知道發生了什麼嗎? 我的CakePHP的版本是2.5.4

+0

爲什麼不使用'Auth'和'Session'組件?不要試圖重新發明輪子。 – ndm 2014-10-10 14:22:46

回答

0

嘗試使用

$this->Session->write('loggedInName',$authUser['User']['first_name'].' '.$authUser['User']['last_name']); 

相同的會話級>閱讀。

像這樣。並檢查雙方的PHP版本。

This

同時清除緩存,臨時文件夾,切換core.php文件 - >調試到2,然後再次以0

+0

這仍然是做同樣的事情。我剛剛嘗試過。我認爲這裏最重要的是Session沒有被設置。 – Michel 2014-10-10 13:15:38

+0

php版???? – 2014-10-10 13:20:50

+0

沿線的某處SESSIONS在您的代碼中被取消或被銷燬 – 2014-10-10 13:22:56

0
$this->Session->write('key','value'); 

我覺得上面的語法必須使用。

+0

這仍然是做同樣的事情。我剛剛嘗試過。我認爲這裏最重要的是Session沒有被設置。 – Michel 2014-10-10 13:14:54

0

這個問題可以從文件會話存儲專用服務器的權限,爲了跳過這個問題,你可以將會話保存到數據庫中,請按照下面的鏈接看看我的答案(關於配置會話併爲其創建新表) 。 Session Permission Denied on AWS after setting up Cake php. 希望它對您有所幫助。

相關問題