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ステートメントを生成できませんでした。テーブルと列の名前が有効かどうかを確認してください。

私のテーブル名は「users」で、列(id、firstname、lastname、age、emailaddress、password)があります。

4

1 に答える 1

0

テーブルに「password_salt」という名前のフィールドが必要です。このフィールドにはsaltが含まれるか、これを変更するだけです。

'MD5(CONCAT(?, password_salt))'

'MD5(?)'
于 2012-04-11T08:55:26.647 に答える