Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-08-2008 16:33:44

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

[Résolu]Authentification Internet Explorer 7

Bonjour,

J'ai un petit problème avec mon authentification et cela que sous IE 7 O_o !
Sous ie6 et Firefox je peux parfaitement me connecter à mon backend.

Le code pour l'auth est le suivant :

Code:

 $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
                    $authAdapter->setTableName('admins')
                            ->setIdentityColumn('admin_id')
                    ->setCredentialColumn('admin_password')
                            ->setIdentity($id) 
                            ->setCredential(sha1($password)); 
                    $result = $auth->authenticate($authAdapter);

Si l'authentifcation est réussi je suis redirigé vers une page d'admin... sinon un message d'erreur apparait. Sous ie7 je suis redirigé sur ma page d'admin mais vu qu'il croit que je suis pas connecté il me redirige sur ma page d'authentification O_o!!

Merci d'avance :p

Dernière modification par Ajite (29-08-2008 13:01:38)

Hors ligne

 

#2 27-08-2008 17:53:54

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

Re: [Résolu]Authentification Internet Explorer 7

cela ne peux pas venir de la connexion à la base c'est un problème dans le reste de ton code dans la gestion de la redirection ou dans les paramètre que tu reçois c'est donc ça qu'il faut nous fournir

car là on peu pas t'aider
A+JYT

Hors ligne

 

#3 28-08-2008 09:26:29

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

Re: [Résolu]Authentification Internet Explorer 7

Ok merci je te donne ça wink

Mon action de login

Code:

public function loginAction()
    {
        $dbAdapter = Zend_Registry::get('db');
            $auth = Zend_Auth::getInstance();
            #si l'auth est déjà connecté
            if ($auth->hasIdentity()) {
                $this->view->message = 'Vous êtes déjà connecté. ';
            $this->_redirect(Config::getValue('url').'admin/auth/index');//on le redirige sur la page d'accueil
            return;
            }
         //on mets le formulaire de la méthode login Form
        $form = $this->loginForm();
        $this->view->form = $form;
            if ($this->_request->isPost()) {
             # Filters for $_POST Values
            $f = new Zend_Filter_StripTags();
                $username = $f->filter($this->_request->getPost('form_username')); //on enlèves les tags aux champs suivants
                $password = $f->filter($this->_request->getPost('form_password'));
                if($form->isValid($_POST)) { //si le formulaire est valide
                $user = Admins::getValue('admin_username', $username);//alors on init l'user a un user dans la bdd
                if(count($user) > 0)  { //si l'user existe
                    $id = $user->admin_id; //alors $id = l'id de l'user
                //sinon
                } else {
                    //message d'erreur
                    $this->view->error = 'Erreur d\'identifiant ou d\'adresse mail.';
                    return;
                }
                try {
                 //on essaye de se connecter
                 $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
                    $authAdapter->setTableName('admins')
                            ->setIdentityColumn('admin_id')
                    ->setCredentialColumn('admin_password')
                            ->setIdentity($id) //on compare l'id, donc la session contiendra l'id de l'user
                            ->setCredential(sha1($password)); //on file un sha1 du password
                    //si on test avec les données
                    $result = $auth->authenticate($authAdapter);//on est connecté
                }
                catch (Zend_Auth_Adapter_Exception $e) { //on attrape une exception
                    $this->view->error = 'Erreur d\'identifiant ou d\'adresse mail.'; //on affiche l'error :)
                }
            }
            
             if ($auth->hasIdentity()) { //si l'utilisateur est bien connecté
                $this->_redirect(Config::getValue('url').'admin/auth/index'); // on le redirige
             }
             else {
                 $this->view->error = 'Problème de connexion';    
             }
            }
    }

mon init des pages au il faut être identifié

Code:

        $auth = Zend_Auth::getInstance();
        
        if (!$auth->hasIdentity()) { //si l'admin n'a  pas d'identité
            $this->_redirect(Config::getValue('url').'admin/auth/login'); //on le redirige
        }

Merci d'avance; )

Hors ligne

 

#4 28-08-2008 12:11:36

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu]Authentification Internet Explorer 7

En général pour ce genre de problème (au niveau des navigateurs) c'est plutôt des histoires de sessions et/ou cookie...

Hors ligne

 

#5 28-08-2008 13:27:16

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

Re: [Résolu]Authentification Internet Explorer 7

Merci pour votre aide,

J'y ai déjà pensé mais j'ai essayé plusieurs ie7 (sur plusieurs postes) en le configurant pour qu'il accepte tous les cookies et pourtant ca ne fonctionne pas T_T

Je ne vois vraiment pas et cette application sera malheureusement utiliser sous ie6 ou ie7 donc bon...

Si vous avez des pistes merci d'avance wink

Hors ligne

 

#6 28-08-2008 13:40:34

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu]Authentification Internet Explorer 7

Une autre piste est de voir la validation du formulaire. Si tu as un image comme bouton de validation, les tests à faire niveau php ne sont pas toujours pareil (y'a des histories de _x, et _y...)

Hors ligne

 

#7 28-08-2008 14:02:28

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

Re: [Résolu]Authentification Internet Explorer 7

Hum merci mais je n'ai pas d'image j'ai le formulaire suivant si ca peut aider wink

Code:

    protected function loginForm() 
    {
        $form = new Zend_Form();//on crée le formulaire

        $form->setMethod('post')
             ->setAction('login');
        $username = $form->createElement('text', 'form_username') //un champs de type text
                 ->setLabel('Nom d\'utilisateur :')
             ->setRequired(true)//obligatoire
             ->addValidator('NotEmpty', true, array('messages' => 'Ce champs est requis.')); //et non vide
        $password =  $form->createElement('password', 'form_password')//un champs de type text
                         ->setLabel('Mot de passe :')
                         ->setRequired(true) //obligatoire
                          ->addValidator('NotEmpty', true, array('messages' => 'Ce champs est requis.')); //et non vide

        $form->addElement($username) //on ajoute les éléments au formulaire
             ->addElement($password);
        $form->clearDecorators() //on détruit le formulaire
         ->setDecorators( array( 'FormElements', 'Form' ) )
        ->setElementDecorators(array('ViewHelper','Label',array('HtmlTag', array('tag' => 'div')))) //dit que les formulaires seront <label>Blabla</label><div><input /></div>
        ->setElementDecorators(array(array('ViewHelper', array('tag' => "")),
                            array('Errors', array('tag' => "")),
                            array('Label', array('tag' => NULL, 'separator'=>'')),
                            array('HtmlTag', array('tag' => "div"))));    
        $submit = $form->createElement('submit', 'form_login'); //on crée le champs submit
        $submit->setLabel('Connexion');
        $form->addElement($submit);//on l'ajoute
        
        return $form;
    }

Merci encore ^^'! (je débloque T_T)

Hors ligne

 

#8 28-08-2008 15:41:11

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]Authentification Internet Explorer 7

pt etre qu'en faisant des print_r($_SESSION); tu trouveras le problème.

Sinon, par curiosité, a quoi ca sert ton :

Code:

$this->view->message = 'Vous êtes déjà connecté. ';

Puisque à la ligne d'après, tu fais un redirect ??


----
Gruiiik !

Hors ligne

 

#9 28-08-2008 15:49:08

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

Re: [Résolu]Authentification Internet Explorer 7

Ah rien c'était pour faire un test ^^ !

Sinon j'ai fais un print_r

Code:

Array
(
    [Zend_Auth] => Array
        (
            [storage] =>
        )

)
1

Donc rien alors que sous firefox j'ai

Code:

Array
(
    [Zend_Auth] => Array
        (
            [storage] => 1
        )

)
1

Merci encore wink

EDIT : Si j'enlève toutes les redirections je vois que je suis connecté sur la page de login mais des que je change (comme quand je suis redirigé) seulement sous IE7 je perds ma session hmm

Dernière modification par Ajite (28-08-2008 15:55:49)

Hors ligne

 

#10 28-08-2008 18:09:34

julz
Membre
Date d'inscription: 19-07-2007
Messages: 33

Re: [Résolu]Authentification Internet Explorer 7

Bonjour,

il faut peut être regarder au niveau du nom de ta session, il me semble qu'il y des bugs avec ie quand on met des underscore "_"

Hors ligne

 

#11 29-08-2008 11:06:24

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

Re: [Résolu]Authentification Internet Explorer 7

Merci,

Mais le "_" c'est par default me il me semble. J'ai essayé de créer une session exemple $_SESSION['id'] avec une valeur mais je le perds à la page suivante T_T

Merci encore hmm

Hors ligne

 

#12 29-08-2008 11:44:36

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]Authentification Internet Explorer 7

Si tu perds ta session, c'est que tu as un problème de cookie avec ton IE.
Aujourd'hui, les conf de bases sont faite pour que l'identifiant de session soit transmise par cookie.
A moins que tu es une configuration bien particulière de ton PHP.


----
Gruiiik !

Hors ligne

 

#13 29-08-2008 12:04:51

Ajite
Nouveau membre
Date d'inscription: 05-08-2008
Messages: 9

Re: [Résolu]Authentification Internet Explorer 7

J'ai changé le site de serveur.. Tout fonctionne bien.

C'est bien un problème de serveur wink !

Merci à vous yikes (taiiin tout ce temps pour ca :'()

Hors ligne

 

#14 29-08-2008 13:59:07

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu]Authentification Internet Explorer 7

Ton serveur était tout de même bizarrement configuré..
un phpinfo aurait put t'éclaircir aussi (section session)


----
Gruiiik !

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