IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Pas d'entrée enregistrée pour 'dbAdapter' (zend_auth) [ZF 1.10]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 58
    Par défaut Pas d'entrée enregistrée pour 'dbAdapter' (zend_auth)
    Bonjour,

    J'ai réussi à configurer non sans problèmes mon architecture Zend à la main et tout fonctionne à peu près bien, donc j'ai essayé d'ajouter le composant permettant l'authentification.

    Des problèmes s'en sont suivis, mon formulaire s'affiche correctement cependant lorsque j'entre le login et mdp une erreur dut apparemment à la configuration de db.adapter.

    Comme des codes sont souvent plus explicites que de longues phrase :

    Ici je récupère les infomations du registre dans AuthController.php :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    class AuthController extends Zend_Controller_Action
    {
    	function init()
    	{
    		$this->initView();
    		$this->view->baseUrl = $this->_request->getBaseUrl();
    	}
     
    	function indexAction()
    	{
    		$this->_redirect('/');
    	}
    	function loginAction(){
    		$this->view->message = '';
     
    		if ($this->_request->isPost()) {
    			// collect the data from the user
    			Zend_Loader::loadClass('Zend_Filter_StripTags');
    			$f = new Zend_Filter_StripTags();
    			$username = $f->filter($this->_request->getPost('username'));
    			$password = $f->filter($this->_request->getPost('password'));
     
    			if (empty($username)) {
    				$this->view->message = 'Please provide a username.';
    			} else {
    				// 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');
     
    				// 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()) {
    					// success: store database row to auth's storage
    					// system. (Not the password though!)
    					$data = $authAdapter->getResultRowObject(null, 'password');
    					$auth->getStorage()->write($data);
    					$this->_redirect('/');
    				} else {
    					// failure: clear database row from session
    					$this->view->message = 'Login failed.';
    				}
    			}
    		}
    		$this->view->title = "Authentification";
    		$this->render();
    	}
    }
    Et plus précisément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Registry::get('dbAdapter');

    Cette erreur est, je pense dut au fait qu'il n'arrive pas à récupérer les informations de 'dbAdapter'

    Pourtant sur mon point d'amorçage je lui précise ces informations (du moins je pense)

    code de index.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		// Chargement de la configuration
    	$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'production');
    	$registry = Zend_Registry::getInstance();
     
    	$registry->set('dbAdapter', $config);
    	// Mise en place du contrôleur
    	$frontController = Zend_Controller_Front::getInstance();
    	Zend_Registry::set('dbAdapter', $config);

    A tout hasard je vous met également mon fichier de configuration application.ini :

    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
    [production]
    phpSettings.date.timezone = "Europe/Paris"
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1
     
    db.adapter = PDO_MYSQL
    db.params.host = localhost
    db.params.username = nomutilisateur
    db.params.password = motdepasse
    db.params.dbname = nomBD
     
    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 1
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/"
    resources.view[] =
    Merci d'avoir pris le temps de lire ce post

  2. #2
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 58
    Par défaut
    Je précise qu'avec la méthode du tutoriel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // setup database
    	$dbAdapter = Zend_Db::factory($config->db->adapter,
    	$config->db->config->asArray());
    	Zend_Db_Table::setDefaultAdapter($db);
    	Zend_Registry::set('dbAdapter', $db);
    qui est à mettre dans le point d'amorçage index.php

    j'ai une erreur : Fatal error: Call to a member function asArray() on a non-object

    Et après avoir testé $config->db->config me renvoi une valeur NULL

    (bien entendu ce n'est pas un objet d'ou l'erreur)

    Qu'ai je mal fait ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingenieur BI - Dev Web Senior
    Inscrit en
    Décembre 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingenieur BI - Dev Web Senior

    Informations forums :
    Inscription : Décembre 2009
    Messages : 118
    Par défaut
    Bonjour,

    Il te faut quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    resources.db.adapter = PDO_MYSQL
    resources.db.params.host = localhost
    resources.db.params.username = nomutilisateur
    resources.db.params.password = motdepasse
    resources.db.params.dbname = nomBD
    non ?

    Cordialement.

  4. #4
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 58
    Par défaut
    c'est ce que j'avais à la base puis je l'ai enlevé (va savoir ce que j'avais comme idée) mais même en l'ayant remis :

    [production]
    phpSettings.date.timezone = "Europe/Paris"
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1

    resources.db.adapter = PDO_MYSQL
    resources.db.params.host = localhost
    resources.db.params.username = nomutilisateur
    resources.db.params.password = motdepasse
    resources.db.params.dbname = nomBD

    includePaths.library = APPLICATION_PATH "/../library"
    bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    resources.frontController.params.displayExceptions = 1
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/"
    resources.view[] =
    Effectivement après l'avoir changé il à l'air de mieux le reconnaitre, mais pas tout à fait, j'obtient l'erreur suivante :

    Notice: Trying to get property of non-object // pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dbAdapter = Zend_Db::factory($config->db->adapter,
    	$config->db->config->asArray());

    Fatal error: Call to a member function asArray() on a non-object

    avec la méthode toArray(), même résultat

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingenieur BI - Dev Web Senior
    Inscrit en
    Décembre 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingenieur BI - Dev Web Senior

    Informations forums :
    Inscription : Décembre 2009
    Messages : 118
    Par défaut
    Ok,

    C'est quoi l'erreur que tu as ? Le texte de l'erreur.

  6. #6
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 58
    Par défaut
    Notice: Trying to get property of non-object in C:\wamp\www\projet\public\index.php on line 35

    Notice: Trying to get property of non-object in C:\wamp\www\projet\public\index.php on line 36

    Fatal error: Call to a member function toArray() on a non-object in C:\wamp\www\projet\public\index.php on line 36



    les lignes 35 - 36 correspondent au code cité plus haut.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 09h33
  2. Réponses: 1
    Dernier message: 02/12/2013, 18h59
  3. [AC-2000] Barre de défilement pour voyager entre enregistrements
    Par DamKre dans le forum IHM
    Réponses: 23
    Dernier message: 15/04/2010, 21h56
  4. [ netstat ] surveillance entre machines pour demon mysql
    Par gogozep001 dans le forum Développement
    Réponses: 2
    Dernier message: 28/08/2003, 11h05
  5. LIKE de tout ce qui n'est pas compris entre a<-&
    Par DjinnS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/07/2003, 13h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo