登錄表單:Zend_Auth多個憑據?
$authAdapter = Zend_Registry::get('authAdapter');
$authAdapter
->setIdentity($formData['email'])
->setCredential($password)
->setCredential(1);
引導:
protected function _initAuth(){
$this->bootstrap('db');
$this->bootstrap('session');
$db = $this->getPluginResource('db')->getDbAdapter();
$auth = Zend_Auth::getInstance();
$authAdapter = new Zend_Auth_Adapter_DbTable($db, 'User', 'email', 'password', 'enabled');
Zend_Registry::set('authAdapter', $authAdapter);
return $authAdapter;
}
顯然因爲加入 '啓動' 它停止工作,如果我刪除:
->setCredential(1);
和 '啓用' 從那裏:
($db, 'User', 'email', 'password', 'enabled');
它工作的很好...
我想只啓用擁有已啓用帳戶的用戶登錄。
編輯:
$authAdapter = new Zend_Auth_Adapter_DbTable($db, 'User', 'email', 'password', '(?) AND `enabled` = 1');
作品:)
這不起作用附加條件。事實上,我將'AND' enabled' =「1」'改爲'AND jimmy = blah',但它仍然登錄,導致我相信它忽略了最後一個字段! – azz0r 2010-03-18 11:45:03
看到第一篇文章:它是: \t \t $ authAdapter = new Zend_Auth_Adapter_DbTable($ db,'User','email','password','(?)AND'enabled' = 1'); – azz0r 2010-03-18 11:54:50
這個如何: $ authAdapter = new Zend_Auth_Adapter_DbTable($ db,'User','email','password'); 然後 $ select = $ authAdapter-> getDbSelect(); $ select-> where('enabled = 1'); $ authAdapter-> authenticate(); 您正在使用哪種ZF版本? thx – 2010-03-18 11:55:28