2010-03-09 64 views
0

我目前正在登錄的Zend框架應用程序,和我使用Zend_Auth的和由Zend_Session使用數據庫適配器的組合(如Zend框架手冊中描述)。Zend的會議混錯

我做了會話的資源:

class DC_Resource_DbSession extends Zend_Application_Resource_ResourceAbstract{ 

public function init(){   
} 

public function setadapter($value){ 
    $this->dbAdapter = $value; 
} 

public function setSession($adapter){ 
//put your code here 
    $config = array(
    'name'   => 'sessions', 
    'primary'  => 'id', 
    'modifiedColumn' => 'modified', 
    'dataColumn'  => 'data', 
    'lifetimeColumn' => 'lifetime', 
    'db'    => $adapter 
    ); 
    Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config)); 
    Zend_Session::setOptions(array('name'=>'MY_SESSION_NAME')); 
    Zend_Session::start(); 
} 
} 

Zend的驗證則使用會話來存儲一些基本的認證信息。

但是,當測試登錄(來自同一IP)時,如果我們的辦公室中的一個用戶登錄並且另一個用戶訪問該站點,他們將以用戶身份登錄!任何人都可以幫我弄清楚他們爲什麼使用彼此的會話嗎?

+0

您如何使用Zend_Auth? – 2010-03-09 20:46:30

+0

你是否也從同一瀏覽器/電腦進行測試? – Chris 2010-03-09 22:34:25

+0

@Vladimir: $ auth = Zend_Auth :: getInstance(); $ authAdapter = new Zend_Auth_Adapter_DbTable($ db); ($ email_) - > setCredentialColumn($ password_col); $ authAdapter-> setIdentity($ email); $ authAdapter-> setCredential($ pass_hash); $ result = $ auth-> authenticate($ authAdapter); 如果($ result->的isValid()== TRUE){$ 數據= $ authAdapter-> getResultRowObject(NULL, '密碼'); $ auth-> getStorage() - > write($ data); – sunwukung 2010-03-10 09:01:35

回答

0

DOH !!!! 我謙卑,羞辱的道歉。 ID列數據類型已被我們的遷移人員設置爲INT - 顯然它需要是VARCHAR .... 惹人注目...