Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-10-2009 18:10:21

h2h2
Membre
Date d'inscription: 20-09-2009
Messages: 11

[résolu]Db Adapter et Auth?

Bonjour,

J'aimerais me mettre en place une authentification grâce à zend_auth et zend_db

mais je me heurte à cet message "Message: No entry is registered for key 'dbAdapter' "

Controller

Code:

Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry::get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
        
$authAdapter->setTableName('membres');
$authAdapter->setIdentityColumn('email');
$authAdapter->setCredentialColumn('password');

Dans mon bootstrap

Code:

$config = new Zend_Config_Ini('./application/config.ini', 'production');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);

$db = Zend_Db::factory($config->db);
Zend_Db_Table::setDefaultAdapter($db);

Zend_Registry::set('dbAdapter', $db);

L'adaptateur n'existe pas dans le registre ? Comprend pas ??????

Dernière modification par h2h2 (03-10-2009 01:36:02)

Hors ligne

 

#2 02-10-2009 21:51:23

vinnyman
Nouveau membre
Date d'inscription: 02-10-2009
Messages: 1

Re: [résolu]Db Adapter et Auth?

Bonjour, pour ma part j'utilise le code suivant dans l'action en question:

Code:

 public function loginAction()
    {
        //redirect when user is authenticated
        if(Zend_Auth::getInstance()->hasIdentity()){  //singleton class, not wasting resources.
            $this->_redirect('index/index');
        }

        $request = $this->getRequest();
        $form = new Form_LoginForm();
        
        if($request->isPost()){
            if($form->isValid($this->_request->getPost())){
                $authAdapter = $this->getAuthAdapter();

                $user_name= $form->getValue('user_name');
                $password = $form->getValue('password');;
                
                $authAdapter    ->setIdentity($user_name)
                                ->setCredential($password);
                
                $auth = Zend_Auth::getInstance();
                $result = $auth->authenticate($authAdapter);
                
                if($result->isValid()){
                    $identity = $authAdapter->getResultRowObject();
                    
                    $authStorage = $auth ->getStorage();
                    $authStorage->write($identity);
                    
                    $this->_redirect('index/index');
                    
                }else{
                    $this->view->errorMessage = "User name or password is invalid.";
                }
                            
            }        
        }
        
        $this->view->form = $form;
    }

et

Code:

private function getAuthAdapter(){
        $authAdapter = new Zend_Auth_Adapter_DBTable(Zend_Db_Table::getDefaultAdapter());
        $authAdapter     ->setTableName('user')
                        ->setIdentityColumn('user_name')
                        ->setCredentialColumn('password');
                        
        return $authAdapter;
        
    }

À considérer: mon adapteur en est un par défaut, je l'ai mis dans le fichier .ini:

Code:

resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = ""
resources.db.params.dbname = nom_de_la_bd

Hors ligne

 

#3 03-10-2009 01:35:20

h2h2
Membre
Date d'inscription: 20-09-2009
Messages: 11

Re: [résolu]Db Adapter et Auth?

Bonjour , merci de m'avoir répondu,

J'ai modifier cette ligne

Code:

zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
$dbAdapter = Zend_Registry::get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);

par la tienne

Code:

 $authAdapter = new Zend_Auth_Adapter_DBTable(Zend_Db_Table::getDefaultAdapter());

Problème résolu

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