Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-03-2009 11:58:19

ghamrired
Membre
Date d'inscription: 04-03-2009
Messages: 25

[Résolu][1.7][zend_auth] débuter avec Zend_Auth

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 :

The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity.

voici le code de l'action Login :

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 ();

et voici mon code de connexion avec la bd dans boostratp :!

//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);

Je pense que le probléme vien du Zend_Auth_Adapter_DbTable qui ne connait pas $dbAdapter

si qlq à une solution ou des remarques

et Merci pour votre aide

Dernière modification par ghamrired (06-03-2009 11:58:16)

Hors ligne

 

#2 29-08-2011 15:41:51

propolis
Membre
Date d'inscription: 03-05-2011
Messages: 14

Re: [Résolu][1.7][zend_auth] débuter avec Zend_Auth

Si vous utilisez MySql v. > 5.5.3, les champs 'password' et 'salt' de votre table 'user' doivent être en varbinary(50).

Hors ligne

 

#3 30-08-2011 14:20:39

Ithier
Membre
Date d'inscription: 05-01-2010
Messages: 85

Re: [Résolu][1.7][zend_auth] débuter avec Zend_Auth

Je ne suis pas sûr que tu ai le droit d'ajouter "AND actif = "1"" dans ton appel à setCredentialTreatment.
Tu devrais essayer avec juste

Code:

[lang=php]$authAdapter->setCredentialTreatment ( 'MD5(?)' );

Dernière modification par Ithier (30-08-2011 14:24:06)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages