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