Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-11-2008 11:45:58

ejilan
Nouveau membre
Date d'inscription: 14-11-2008
Messages: 1

[Zend_Auth][1.6] - Recuperation impossible des variables de sessions

Bonjour,

Utilisateur de ZF depuis peu, je rencontre un problème pour lequel je seche.
J'ai epluche la doc, mais j'y arrive vraiment pas.
C'est juste un truc bateau de mise en place d'une authentification, mais malgre les exemples existants sur le net, rien y fait.

J'ai donc essaye deux solutions.

Dans la 1ere, j'initialise dans ma page loginController.php mes variables de login et de mots de passe comme suit :

Code:

/* 1ere solution avec [u]ZEND_AUTH[/u] */ 
           $authAdapter = new Zend_Auth_Adapter_DbTable(Database::getDbConnection());
            $authAdapter->setTableName('fe_users')
                           ->setIdentityColumn('username')
                           ->setCredentialColumn('password');
                         
           // Set the input credential values (e.g., from a login form)
           $authAdapter->setIdentity($formData['username'])
                       ->setCredential(md5($formData['password']));
        
           // Perform the authentication query, saving the result
           $auth = Zend_Auth::getInstance();
           $result = $auth->authenticate($authAdapter);

            if($result->isValid())
            {
                print 'authenticated-';
                $data = $authAdapter->getResultRowObject(null, 'password');
                $auth->getStorage()->write($data);
                (...)

et dans une autre page controller LogoutController.php

Code:

        $auth = Zend_Auth::getInstance();
        $username = $auth->getIdentity();
        print_r($username);

Mais voila, rien n'y fait, je ne recupere rien sur mon deuxieme controller.

-----------------------------------------------------------------------------------------------------------------------------

Ma deuxieme solution consiste a utiliser les variables de sessions :
De nouveau sur LoginController.php :

Code:

/* 2eme solution avec [u]ZEND_SESSION[/u] */
 if($result->isValid())
            {
                   
                if(Zend_Session::isStarted())
                {
                    print 'session started-';
                    $defaultNamespace = new Zend_Session_Namespace('Default');
                    $defaultNamespace->username = $formData['username'];
                    
                    if(Zend_Session::namespaceIsset('Default'))
                    {
                        print 'namespace started-';
                        
                    }
                    else print 'namespace not started-';
                }
                else print 'not started';
            }
            else print 'not authenticated-';

Et comme output, j'ai bien
authenticated
session started
namespace started



Et maintenant en revenant sur le LogoutController.php :

Code:

if(Zend_Session::isStarted())
        {
            print 'session started-';
        }
        else print 'session not started-';

        if(Zend_Session::namespaceIsset('Default'))
        {
            print 'namespace started-';
            print_r(Zend_Debug::dump($_SESSION['Default']['username']));
        }
        else{
            print 'namespace not started-';
            $defaultNamespace = new Zend_Session_Namespace();
            print_r(Zend_Debug::dump($defaultNamespace));
            print_r(Zend_Debug::dump($defaultNamespace->username));
            print_r(Zend_Debug::dump($_SESSION['Default']['username']));
        }

J'ai comme output :


session started
namespace not started

object(Zend_Session_Namespace)#23 (1) {
  ["_namespace:protected"] => string(7) "Default"
}

object(Zend_Session_Namespace)#23 (1) {
  ["_namespace:protected"] => string(7) "Default"
}

NULL
NULL
NULL
NULL



Voila, si quelqu'un pouvait m'eclairer...

Hors ligne

 

#2 30-11-2008 18:10:07

baboune
Membre
Date d'inscription: 29-11-2008
Messages: 103

Re: [Zend_Auth][1.6] - Recuperation impossible des variables de sessions

dans ton 1er exemple :

// username est le nom de tes utilsateurs dans ta bd
$username = $auth->getIdentity()->username;
echo $username;

Dernière modification par baboune (30-11-2008 18:11:17)

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