2011-08-11 59 views
0

我有一個內置CakePHP的應用程序正在進行文件上傳。對於每個文件上傳,我知道用戶的ID,所以我抓住它$ this-> Auth-> user()CakePHP,文件上傳和不一致Auth

現在,我發現當我在頁面上時,但有時當我print_r $ this-> Auth-> user()時,它不會返回任何東西,然後當我下次嘗試上傳文件時,它會回來,所有這些都不需要登錄或註銷。它看起來非常不一致,有時候它在那裏,但有時候它不會看到它。

我錯過了什麼?謝謝!

+0

您是否需要整個應用中的Auth組件? – Ken

+0

是的,在app_controller – pll

+0

FIXED:安全性設置爲「高」,因此它不斷重新生成會話ID與我的ajax調用,這是使我的會話無效 – pll

回答

0

爲什麼不將app_controller中的var設置爲$this->Auth->userModel,以便應用程序的其餘部分可以訪問它。

在我的app_controller中,我打電話給before_filter中的以下設置$current_user

/** 
* Sets a value for current user $current_user. 
* @return boolean 
*/ 
function __setCurrentUser() { 
    $user = null; 
    if ($user = $this->Auth->user()) { 
     $this->set('current_user', $user[$this->Auth->userModel]); 
     return true; 
    } else { 
     return false; 
    } 
} 

別處在我的應用程序,我可以通過$current_user['id']訪問$current_user的ID。

0

您也可以始終從由AuthComponent創建的會話中獲取userinfo。如果$ this-> Auth-> user('id')是空的。我想知道是否真的有一個有效的會話!您確定在此期間您還沒有登出,並且由於某種原因該網頁不需要登錄?