Exception information:
Message: The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity.
W application.ini mam oczywiście zdefiniowane, po za tym połączenie z bazą jest ok:
resources.db.isDefaultTableAdapter = true
Struktura tabeli w bazie:
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) DEFAULT NULL, `surname` varchar(64) DEFAULT NULL, `email` varchar(128) DEFAULT NULL, `pubdate` date DEFAULT NULL, `phone` varchar(128) DEFAULT NULL, `md5` varchar(40) DEFAULT NULL, `firm` varchar(128) DEFAULT NULL, `position` varchar(128) DEFAULT NULL, `birthdate` date DEFAULT '0000-00-00', `birthplace` varchar(128) DEFAULT NULL, `id_invoice` int(11) UNSIGNED DEFAULT NULL, `added_group` int(1) UNSIGNED ZEROFILL DEFAULT '0', `salt` varchar(50) DEFAULT NULL, `nick` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `email` (`email`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=1425 ;
Cała akcja odpowiedzialna za przetwarzanie formularza logowania:
public function loginAction() { $f = new Application_Form_Logowanie(); if ($f->isValid($_POST)) { $login = $f->getValue("login"); $password = $f->getValue("password"); $auth = Zend_Auth::getInstance(); $authAdapter = new Zend_Auth_Adapter_DbTable( Zend_Db_Table::getDefaultAdapter(), "users", "email", "md5", "SHA1(CONCAT('" .Zend_Registry::get('salt'). "', ?, salt))"); $authAdapter->setIdentity($login); $authAdapter->setCredential($password); $authResult = $auth->authenticate($authAdapter); if ($authResult->isValid()) { $auth->getStorage()->write($authAdapter->getResultRowObject(null, 'md5')); $this->view->sukces = "Fajnie udało się zalogować"; return; } $this->view->error = true; } $this->view->form = $f; }