Bonjour,
c'est la première fois que je travail avec Zend_ Auth et j'ai rencontrerai un problème lors de la vérification du login et mot de passe avec la BD (table USERS (USERNAME, PASSWORD)),
Voici l'erreur que je trouve :
voici le code de l'action Login :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Uncaught exception 'Zend_Auth_Adapter_Exception' with message 'The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity.' in /var/www/Monsite/application/lib/Zend/Auth/Adapter/DbTable.php:392
et voici mon code de connexion avec la bd dans boostratp :!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 function loginAction() { $form =new Auth_FormulaireAuth(); if ($this->_request->isPost () && $form->isValid($this->_request->getPost())) { $username = $form->getValue( 'username' ); $password = $form->getValue( 'password' ) ; // setup Zend_Auth adapter for a database table Zend_Loader::loadClass ( 'Zend_Auth_Adapter_DbTable' ); $dbAdapter = Zend_Registry::get ( 'dbAdapter' ); $authAdapter = new Zend_Auth_Adapter_DbTable ( $dbAdapter ); $authAdapter->setTableName ( 'USERS' ); $authAdapter->setIdentityColumn ( 'USERNAME' ); $authAdapter->setCredentialColumn ( 'PASSWORD' ); $authAdapter->setCredentialTreatment ( 'MD5(?) AND actif = "1"' ); // Set the input credential values to authenticate against $authAdapter->setIdentity ( $username ); $authAdapter->setCredential ( $password ); // do the authentication $auth = Zend_Auth::getInstance (); $result = $auth->authenticate ( $authAdapter ); if ($result->isValid ()) { $data = $authAdapter->getResultRowObject ( null, 'PASSWORD' ); $auth->getStorage ()->write ( $data ); $this->_redirect ( '/' ); } else { // failure: clear database row from session echo "l'identifiant n'existe pas."; $this->_redirect ( '/fr/auth/erreur' ); } } $this->view->form = $form; $this->view->title = "Log in"; $this->render ();
si qlq à une solution ou des remarques
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //chargement des classes nécessaires Zend_Loader::registerAutoload(); Zend_Loader::loadClass('Zend_Db_Table'); Zend_Loader::loadClass('Zend_Debug'); Zend_Loader::loadClass('Zend_Auth'); Zend_Loader::loadClass('My_Acl'); //lecture config $config = new Zend_Config_Ini('./application/config.ini', 'general'); Zend_Registry::set('config', $config); $db = Zend_Db::factory($config->db->adapter, $config->db->params->toArray()); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('dbAdapter', $db);
et Merci pour votre aide
Partager