Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF]Zend_Auth_Db_Adapter nieprawidlowe zapytanie sql
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Przy zalogowaniu dostaje taki komunikat:
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:
  1. CREATE TABLE IF NOT EXISTS `users` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(64) DEFAULT NULL,
  4. `surname` varchar(64) DEFAULT NULL,
  5. `email` varchar(128) DEFAULT NULL,
  6. `pubdate` date DEFAULT NULL,
  7. `phone` varchar(128) DEFAULT NULL,
  8. `md5` varchar(40) DEFAULT NULL,
  9. `firm` varchar(128) DEFAULT NULL,
  10. `position` varchar(128) DEFAULT NULL,
  11. `birthdate` date DEFAULT '0000-00-00',
  12. `birthplace` varchar(128) DEFAULT NULL,
  13. `id_invoice` int(11) UNSIGNED DEFAULT NULL,
  14. `added_group` int(1) UNSIGNED ZEROFILL DEFAULT '0',
  15. `salt` varchar(50) DEFAULT NULL,
  16. `nick` varchar(128) DEFAULT NULL,
  17. PRIMARY KEY (`id`),
  18. KEY `email` (`email`) USING BTREE
  19. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=1425 ;



Cała akcja odpowiedzialna za przetwarzanie formularza logowania:
  1. public function loginAction()
  2. {
  3. $f = new Application_Form_Logowanie();
  4. if ($f->isValid($_POST)) {
  5. $login = $f->getValue("login");
  6. $password = $f->getValue("password");
  7. $auth = Zend_Auth::getInstance();
  8. $authAdapter = new Zend_Auth_Adapter_DbTable(
  9. Zend_Db_Table::getDefaultAdapter(),
  10. "users",
  11. "email",
  12. "md5",
  13. "SHA1(CONCAT('" .Zend_Registry::get('salt'). "', ?, salt))");
  14.  
  15. $authAdapter->setIdentity($login);
  16. $authAdapter->setCredential($password);
  17. $authResult = $auth->authenticate($authAdapter);
  18.  
  19. if ($authResult->isValid()) {
  20. $auth->getStorage()->write($authAdapter->getResultRowObject(null, 'md5'));
  21. $this->view->sukces = "Fajnie udało się zalogować";
  22. return;
  23. }
  24. $this->view->error = true;
  25.  
  26. }
  27.  
  28. $this->view->form = $f;
  29. }


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Spróbuj napisać ręcznie odpowiednie zapytanie (takie samo jakie powinno być wygenerowane przez ZF) i uruchom je w konsoli oraz w jakimś programie typu phpMyAdmin i upewnij się, że zapytanie się wykonuje poprawnie (tylko sprawdź na prawdziwych danych wstawionych do tabeli). Ewentualnie spróbuj zapisać w logach błąd mysqla zaraz po wystąpieniu tego błędu.


--------------------
there is much to be learned
Go to the top of the page
+Quote Post
amii
post
Post #3





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Kurde nie mam pojęcia co to bylo ale dziś po odpaleniu kompa wszystko działa tak jak powinno:)


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:25