0
我是zend的新手。我正在嘗試使用zend框架創建登錄表單。但它的創造問題。下面是我的功能無法使用zend框架登錄
public function loginAction()
{
$db = $this->_getParam('db');
$form = new Application_Form_Login();
$this->view->form = $form;
if($this->getRequest()->isPost())
{
$formData = $this->getRequest()->getPost();
if ($form->isValid($formData))
{
$adapter = new Zend_Auth_Adapter_DbTable(
$db,
'users',
'emailaddress',
'password',
'MD5(CONCAT(?, password_salt))'
);
$adapter->setIdentity($form->getValue('email'));
$adapter->setCredential($form->getValue('password'));
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);
if ($result->isValid()) {
$this->_helper->FlashMessenger('Successful Login');
$this->_redirect('/');
return;
}
}
}
}
它給出錯誤在下面的行 - > $結果= $ auth-> authenticate($適配器);
錯誤是 - >消息:提供給Zend_Auth_Adapter_DbTable的參數未能生成有效的sql語句,請檢查表和列名的有效性。
我的表名是'users',它有列(id,firstname,lastname,age,emailaddress,password)。
由昌代碼做「MD5(場CONCAT(?password_salt) )' 至 'MD5(CONCAT(?))'thanks sas – Navdeep 2012-04-11 08:58:07
hello sas,正如您所說的'password_salt'字段將包含salt。你能解釋一下嗎(鹽?) – Navdeep 2012-04-11 09:00:26
一切都已經被告知 - http://stackoverflow.com/questions/674904/salting-your-password-best-practices。你也應該使用SHA1而不是MD5(它更安全)。如果它對你有幫助,請接受我的答案。 – sas 2012-04-11 09:05:54