impossible de s'authentifier
Bonjour,
je suis debutante en zend framework.
je veux creer un formulaire d'authentification pour euthentifier les users déja créer dans la base de données.
pourcela j'ai crée un controlleur avec la principale actions loginAction .
voilà son code:
Code:
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| public function loginAction()
{
//donner une instance du formulaire à la vue pour qu'elle puisse l'afficher
$this->view->title="Mon Site Web - Login";
$form = new Application_Form_Login();
$this->view->form = $form;
//tester s'il y'a des données,les récupère,les valides .
if ($this->_request->isPost())
{
$formData = $this->_request->getPost();
if ($form->isValid ( $formData ))
{
//ils sont valides,on les récupère.
$login = $form->getValue ( 'login' );
$password = $form->getValue ( 'password' );
//appel à un Zend_Auth_Adapter_DbTable pour faire la connexion à la base de données.
$authAdapter = new Zend_Auth_Adapter_DbTable ( Zend_Db_Table::getDefaultAdapter () );
//donner les informations nécessaires à l'adapter.
$authAdapter->setTableName ( 'employe' )
->setIdentityColumn ( 'identifiant' )
->setCredentialColumn ( 'password' )
->setCredentialTreatment ( 'MD5(?)' )
->setIdentity ( $login )
->setCredential ( $password );
//identification de l'employe
$authAuthenticate = $authAdapter->authenticate();
//test si l'identification a réussi
if ($authAuthenticate->isValid ()) {
//récuperer l'espace du stockage du l'application
$storage = Zend_Auth::getInstance ()->getStorage ();
//on y ajoute les informations de l'employe
$storage->write ( $authAdapter->getResultRowObject ( null, 'password' ) );
//redirection vers la page d'acceuil
$this->_helper->redirector ( 'index', 'index' );
}
else {
$form->addError ( 'Il n\' existe pas d\'utilisateur avec ce mot de passe' );
}
}
}
} |
mais quand j'entre un user avec password déja enregistré cet erreur se déclenche.Message: No database adapter present
pourriez vous m'aidez.
Merci.
problème authentification résolu
Citation:
Envoyé par
aziza_1989
Bonjour,
je suis debutante en zend framework.
je veux creer un formulaire d'authentification pour euthentifier les users déja créer dans la base de données.
pourcela j'ai crée un controlleur avec la principale actions loginAction .
voilà son code:
Code:
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| public function loginAction()
{
//donner une instance du formulaire à la vue pour qu'elle puisse l'afficher
$this->view->title="Mon Site Web - Login";
$form = new Application_Form_Login();
$this->view->form = $form;
//tester s'il y'a des données,les récupère,les valides .
if ($this->_request->isPost())
{
$formData = $this->_request->getPost();
if ($form->isValid ( $formData ))
{
//ils sont valides,on les récupère.
$login = $form->getValue ( 'login' );
$password = $form->getValue ( 'password' );
//appel à un Zend_Auth_Adapter_DbTable pour faire la connexion à la base de données.
$authAdapter = new Zend_Auth_Adapter_DbTable ( Zend_Db_Table::getDefaultAdapter () );
//donner les informations nécessaires à l'adapter.
$authAdapter->setTableName ( 'employe' )
->setIdentityColumn ( 'identifiant' )
->setCredentialColumn ( 'password' )
->setCredentialTreatment ( 'MD5(?)' )
->setIdentity ( $login )
->setCredential ( $password );
//identification de l'employe
$authAuthenticate = $authAdapter->authenticate();
//test si l'identification a réussi
if ($authAuthenticate->isValid ()) {
//récuperer l'espace du stockage du l'application
$storage = Zend_Auth::getInstance ()->getStorage ();
//on y ajoute les informations de l'employe
$storage->write ( $authAdapter->getResultRowObject ( null, 'password' ) );
//redirection vers la page d'acceuil
$this->_helper->redirector ( 'index', 'index' );
}
else {
$form->addError ( 'Il n\' existe pas d\'utilisateur avec ce mot de passe' );
}
}
}
} |
mais quand j'entre un user avec password déja enregistré cet erreur se déclenche.
Message: No database adapter present
pourriez vous m'aidez.
Merci.
Merci à vous tous.Le problème s'est résolu en spécifiant les informations sur ma base de données dans le fichier application.ini à la fin de la section[production]
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password =
resources.db.params.dbname = mtk