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_Acl & Zend_Auth PHP Discussion :

Erreur stdClass as array


Sujet :

Zend_Acl & Zend_Auth PHP

Vue hybride

kanzarih Erreur stdClass as array 27/04/2009, 19h29
Eusebe Bonjour, comme l'indique... 27/04/2009, 20h06
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut Erreur stdClass as array
    bonsoir,

    j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Fatal error: Cannot use object of type stdClass as array in C:\Program Files\EasyPHP 3.0\www\Farkess\core\modules\search\controllers\MyControllerPluginAuth.php on line 54
    je vient de réaliser la partie authentification en suivant un tuto ainsi j'ai un controleur "AuthController.php" en voici un extrait que je pense a une relation avec mon erreur :

    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
     
    	function loginAction()
    	{
    		$this->view->message = '';
    		$this->view->title = "Farkess - Authentification";
        	$form = new FormulaireAdminFarkess();
    		$this->view->form = $form;
    		$this->view->modname='fadmin';
     
     
    		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('login'));
    			$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');
    			$db = Zend_Registry::get('publicdb');
    			$authAdapter = new Zend_Auth_Adapter_DbTable($db);
    			$authAdapter->setTableName('f_user');
    			$authAdapter->setIdentityColumn('f_user_login');
    			$authAdapter->setCredentialColumn('f_user_pw');
    			// 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,'f_user_pw');
    				$auth->getStorage()->write($data);
    				$this->_redirect('/');
    			} else {
    				// failure: clear database row from session
    				$this->view->message = 'Login failed.';
    			}
    		}
    		}
     
     
     
    	}
    ensuite j'ai réaliser un contrôleur d'accès ACL du cout j'ai deux nouvelle classes "MyAclIni.php" et "MyControllerPluginAuth.php" que je ne savais pas ou mettre donc je les est mis dans le dossier controller de mon module par défaut (déjà car c'est ce module qui lance l'authentification) bref voila un extrait du code de la classe "MyControllerPluginAuth.php" la ou j'ai l'erreur :

    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
     
     
    	public function preDispatch(Zend_Controller_Request_Abstract $request)	{
    		// is the user authenticated
    		if ($this->_auth->hasIdentity()) {
    		  // yes ! we get his role
     
    		  $user = $this->_auth->getStorage()->read() ;
     
     
    		  $rolll = $user['f_user_role'] ;
     
    		  if ($rolll == 0){
    		  	$role = 'guest';	
    		  }elseif($rolll == 1){
    		  	$role = 'member';
    		  }elseif($rolll == 2){
    		  	$role = 'author';
    		  }elseif($rolll == 10){
    		  	$role = 'admin';
    		  }
    dans le code si dessus voila la ligne (54) ou il y a l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $rolll = $user['f_user_role'] ;
    alors si quelqu'un comprend c'est quoi l'erreur veillez me l'indiquez !
    merci

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    comme l'indique le message d'erreur, la méthode getResultRowObject d'un Zend_Auth_Adapter_DbTable ne renvoie pas un tableau mais un objet de classe "stdClass" (classe "vide" de PHP utilisée pour créer des objets dont on ne connait pas la structure à l'avance).

    Et pour accéder aux propriétés d'un bjet, il ne faut pas utiliser les crochets, mais la "flêche" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rolll = $user->f_user_role;

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

Discussions similaires

  1. erreur : subscript requires array or pointer type
    Par GabrielD dans le forum C++
    Réponses: 1
    Dernier message: 18/04/2011, 07h51
  2. [ZF 1.10] Cannot use object of type stdClass as array
    Par cyrux dans le forum Zend Framework
    Réponses: 12
    Dernier message: 16/08/2010, 14h25
  3. [MySQL] Erreur ksort sur array après un unserialize
    Par Impli dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 05/08/2010, 09h48
  4. Réponses: 7
    Dernier message: 29/08/2008, 15h27
  5. Réponses: 3
    Dernier message: 31/03/2008, 13h58

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