0

我是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;
            }
        }   
    }
}

它在以下行给出错误-> $result = $auth->authenticate($adapter);

错误是 -> 消息:提供给 Zend_Auth_Adapter_DbTable 的参数未能生成有效的 sql 语句,请检查表名和列名的有效性。

我的表名是“用户”,它有列(id、名字、姓氏、年龄、电子邮件地址、密码)。

4

1 回答 1

0

您需要在表中名为“password_salt”的字段将包含盐或仅更改此字段

'MD5(CONCAT(?, password_salt))'

'MD5(?)'
于 2012-04-11T08:55:26.647 回答