Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-09-2007 16:32:49

exotux
Membre
Lieu: Toulouse
Date d'inscription: 02-09-2007
Messages: 16
Site web

[Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

[je me suis trompé de forum ..... Si un modérateur peut déplacer ce post]

Bonjour,

J'essaye de faire fonctionner l'authentification avec Zend_Auth comme indiqué sur ce tutoriel :
http://www.kitpages.fr/zf_zendAuth.php

Tout fonctionne à l'exception de la méthode hasIdentity() qui me retourne toujours false.

Code:

////
// VUE
////
if ($auth->hasIdentity()) {
    $member = $auth->getIdentity();
    echo "Bonjour ".$member."<br/>";
}
else {
    $member = null;
    echo "Vous n'êtes pas identifié<br/>";
}

Du coup je ne parviens pas à m'authentifier. Je soupçonne un problème de configuration du serveur au niveau des Sessions.

Merci de votre.

Dernière modification par exotux (03-09-2007 19:01:41)

Hors ligne

 

#2 02-09-2007 19:09:06

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

c'est le code de login qu'il faudrait nous fournir car là on ne peut rien voir
A+JYT

Hors ligne

 

#3 02-09-2007 22:10:59

exotux
Membre
Lieu: Toulouse
Date d'inscription: 02-09-2007
Messages: 16
Site web

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

Bonsoir, voici le code de mon adaptateur

Code:

class projet_authAdapter implements Zend_Auth_Adapter_Interface {
    
    private $login = null;
    private $pass = null;
    
    public function __construct($login, $pass) {
        $this->login = $login;
        $this->pass = $pass;
    }
    
    public function authenticate() {
           $db = Zend_Registry::get('db');
        $db->setFetchMode(Zend_Db::FETCH_OBJ);
        $result = $db->fetchRow("SELECT * FROM users WHERE login='{$this->login}' AND password='{$this->pass}'");
        
        $translate = Zend_Registry::get('translate');
        
        if ($result != false) { // Identification réussie
            $res = new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $this->login, array());
            return $res;
        } else { // Echec de l'identification
            $res = new Zend_Auth_Result(Zend_Auth_Result::FAILURE, null, array($translate->_('notification_erreur_identification')) );
            return $res;
        }
    }
}

Enfin voici le code qui traite le formulaire :

Code:

// Identification
$auth = Zend_Auth::getInstance();

if ( isset($_POST['username']) ) {
    
    $authAdapter = new projet_authAdapter($_POST['username'], $_POST['password']);
    $result = $authAdapter->authenticate($authAdapter);
    
    if ( ! $result->isValid() ) {
        header("Location: ". $_SERVER["SCRIPT_NAME"]);
        exit();
    } else {
        header("Location: ".$_SERVER["SCRIPT_NAME"]);
        exit();
    }
    
}

// Cette section retourne tjs false
if ($auth->hasIdentity()) {
    echo "Bonjour ".$member."<br/>";
}
else {
    $member = null;
    echo "Vous n'êtes pas identifié<br/>";
}

C'est du copier-coller adpaté du tuto cité dans mon premier post.

Merci d'avance.

Dernière modification par exotux (02-09-2007 22:11:32)

Hors ligne

 

#4 03-09-2007 09:57:24

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

Bonjour,

Je soupçonne que c'est ton test d'authentification qui est faux.

Tu peux ajouter des lignes de débug dans le code suivant pour voir où tu passes ?

Code:

        if ($result != false) { // Identification réussie
            $res = new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $this->login, array());
            return $res;
        } else { // Echec de l'identification
            $res = new Zend_Auth_Result(Zend_Auth_Result::FAILURE, null, array($translate->_('notification_erreur_identification')) );
            return $res;
        }

Je soupçonne que tu passes tjrs dans le else...

A+, Philippe
PS : au fait je proteste, c'est pas un copier-coller, y'a une requête en base en plus smile


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 03-09-2007 10:08:00

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

je voterais aussi pour ce genre de chose
A+JYT

Hors ligne

 

#6 03-09-2007 11:39:03

exotux
Membre
Lieu: Toulouse
Date d'inscription: 02-09-2007
Messages: 16
Site web

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

Bonjour,

J'ai retesté l'identification. Je pase bien dans les deux cas de l'identification (
échec ou réussite) mais hasIdentity() retourne systématiquement false.

Voilà, je ne comprends pas.

Hors ligne

 

#7 03-09-2007 13:40:04

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

A priori, je ne vois pas d'erreur dans ce cas...

Juste une question con... tu acceptes les cookies ? Sinon je suis un peu sec...

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#8 03-09-2007 18:46:14

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

ton adaptateur est-il placé dans le register ?
car sans ça à l'appel suivan til à été détruit

Code:

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

voilà ce que donne normalement le tuto

Hors ligne

 

#9 03-09-2007 19:01:19

exotux
Membre
Lieu: Toulouse
Date d'inscription: 02-09-2007
Messages: 16
Site web

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

J'ai utilisé Zend_Auth_Adapter_DbTable et le problème est réglé. J'ai eu beau tourner ça dans tout les sens je ne comprends toujours pas l'erreur.

Enfin ça fonctionne. Merci de votre aide.

Hors ligne

 

#10 04-09-2007 09:49:43

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

Un déboggueur avec du pas à pas te dit à coup sûr d'où vient l'erreur, et tu peux en déduire si ca provient de ZF, ou de toi. C'est déja pas mal smile

Hors ligne

 

#11 04-09-2007 13:15:55

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

Attention au debuggeur de ZEND

en effet imaginez que vous exécuté du code qui appelle la fonction foo() mais le fichier dans lequel la fonction est défini n'a pas été chargé

si vous exécuté se code avec le debuggeur pas à pas de ZEND et ZendStudio il suffit que le fichier contenant la définition soit ouvert dans zend studio pour que même sur le serveur (remote debug)  pour qu'aucune erreur ne soit détecté. il en va de même avec toute sorte de définition

en clair de gros effets de bors avec le débuggeur
A+JYT

Hors ligne

 

#12 04-09-2007 14:32:42

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [Résolu][Zend_Auth][ZF 1.0.1] et hasIdentity() qui ne fonctionne pas

Oui ya quelques fuites, fo faire attention ^^

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