Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 11-05-2010 18:15:00

Bunker
Nouveau membre
Date d'inscription: 25-11-2009
Messages: 5

[Zend_Acl][1.9] problème de persistence d'identité sous IE

Bonjour,

J'essaie de réaliser une authentification via bdd toute simple.
Mon code fonctionne sans problème en local, mais sur le serveur de production quelque chose coince avec IE(6 et 8 au moins). Le code fonctionne avec FF et Chrome.
D'après les tests que j'ai effectué, l'authentification fonctionne sans problème, et les données utilisateurs sont enregistrées, mais dès que j'effectue une redirection vers une autre page... plus rien.

Voilà le code du controlleur qui se charge de l'identification. J'utilise le stockage des persistances par défaut.

Code:

class AuthController extends Zend_Controller_Action implements Zend_Acl_Resource_Interface 
{
    public $_authAdapter;
    

    public function init()
    {
        $dbTableUtilisateur = new Default_Model_DbTable_Utilisateur();
        $this->_authAdapter = new Zend_Auth_Adapter_DbTable($dbTableUtilisateur->getDefaultAdapter());
 
        $this->_authAdapter
            ->setTableName('utilisateur')
            ->setIdentityColumn('nom_utilisateur')
            ->setCredentialColumn('mot_de_passe');
            
        $this->_helper->layout->disableLayout();
    }
    
    public function loginAction()
    {
    
        $form = new Default_Form_Login();
        $request = $this->getRequest();

        if ($request->isPost()) 
        {
            if ($form->isValid($request->getPost())) 
            {
                $auth = Zend_Auth::getInstance();
                
                $this->_authAdapter->setIdentity($form->nom_utilisateur->getValue())
                                 ->setCredential($form->mot_de_passe->getValue());
        
                $resultat = $auth->authenticate($this->_authAdapter);
                switch ($resultat->getCode()) 
                {

                    case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                        echo('identity not found');
                        $form->setDescription('identity not found');
                        break;

                    case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                        echo('Invalid credentials provided');
                        $form->setDescription('Invalid credentials provided');
                        break;

                    case Zend_Auth_Result::SUCCESS:    
                        $this->_helper->redirector('index', 'index', 'default');
                        break;

                    default:
                        /** autres cas **/
                        break;
                }
            }
        }
        $this->view->form = $form;
    }
}

Hors ligne

 

#2 11-05-2010 18:19:50

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Zend_Acl][1.9] problème de persistence d'identité sous IE

Salut,

C'est quoi l'url de ton site en local ?
Quelle config. pour ta session (path, domain, etc) ?


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 11-05-2010 18:33:55

Bunker
Nouveau membre
Date d'inscription: 25-11-2009
Messages: 5

Re: [Zend_Acl][1.9] problème de persistence d'identité sous IE

J'accède à mon site en local via : http://localhost/crm/public/

Voilà la section Session de mon phpinfo() en local

Code:

                          session
Session Support                     enabled
Registered save handlers              files user sqlite
Registered serializer handlers     php php_binary wddx

Directive                                    Local Value    Master Value
session.auto_start                    Off                      Off
session.bug_compat_42               On                      On
session.bug_compat_warn               On                       On
session.cache_expire                       180              180
session.cache_limiter                     nocache              nocache
session.cookie_domain            no value              no value
session.cookie_httponly                Off                  Off
session.cookie_lifetime                0                          0
session.cookie_path                          /                           /
session.cookie_secure                Off                 Off
session.entropy_file                     no value            no value
session.entropy_length                 0                          0
session.gc_divisor                       100                 100
session.gc_maxlifetime                  1440               1440
session.gc_probability                           1                 1
session.hash_bits_per_character            5                 5
session.hash_function                          0                          0
session.name                            PHPSESSID    PHPSESSID
session.referer_check                       no value               no value
session.save_handler                            files                  files
session.save_path              C:\xampp\xampp\tmp C:\xampp\xampp\tmp
session.serialize_handler                  php                     php
session.use_cookies                           On                      On
session.use_only_cookies                  Off                        Off
session.use_trans_sid                             0                       0

et celle de mon serveur (mutualisé)

Code:

                           session
Session Support                                   enabled
Registered save handlers                         files user sqlite
Registered serializer handlers                  php php_binary

Directive                                                  Local Value            Master Value
session.auto_start                                    Off                           Off
session.bug_compat_42                                 On                      On
session.bug_compat_warn                                On                     On
session.cache_expire                                       60                             60
session.cache_limiter                                    nocache                 nocache
session.cookie_domain                            no value                no value
session.cookie_httponly                                 Off                     Off
session.cookie_lifetime                               86400                  86400
session.cookie_path                                             /                    /
session.cookie_secure                                  Off                  Off
session.entropy_file                                    no value               no value
session.entropy_length                                         0                   0
session.gc_divisor                                       500                500
session.gc_maxlifetime                                    1440                  1440
session.gc_probability                                             1                      1
session.hash_bits_per_character                                4                    4
session.hash_function                                                  0                      0
session.name                                               PHPSESSID       PHPSESSID
session.referer_check                                          no value       no value
session.save_handler                                               files             files
session.save_path                                        /php_sessions      /php_sessions
session.serialize_handler                                 php                       php
session.use_cookies                                            On                      On
session.use_only_cookies                                        Off               Off
session.use_trans_sid                                              0                         0

bon j'y connais pas grand chose en config serveur si tu as besoin d'autre chose, il va falloir me dire ou le trouver :s

Dernière modification par Bunker (11-05-2010 18:35:58)

Hors ligne

 

#4 12-05-2010 10:28:29

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Zend_Acl][1.9] problème de persistence d'identité sous IE

Salut,

Je te conseille même en local de créer soit des alias soit des virtualhost dans apache. Je préfère la seconde solution qui est un peu moins rapide à mettre en place (mais c'est relatif :p).

Voilà comment je fais :

httpd.conf :

Code:

Include conf/extra/httpd-vhosts-dev.conf

conf/extra/httpd-vhosts-dev.conf :

Code:

#########################################
## Mon site Zend de test
## local.zend-test.com
#########################################
<VirtualHost *:80>
    SetEnv APPLICATION_ENV development
    ServerName local.zend-test.com
    ServerAdmin xxxxxx@gmail.com
        
    DocumentRoot "F:/PHPServer/Zend/Apache2/htdocs/zend-test/www"
    <Directory "F:/PHPServer/Zend/Apache2/htdocs/zend-test/www">

        RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^.*$ index.php [NC,L]
            
        Options -Indexes FollowSymLinks MultiViews ExecCGI
        AllowOverride none
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

et enfin dans le fichier hosts (dans windows/system32/drivers/etc/) :

Code:

127.0.0.1       local.zend-test.com

En oubliant pas de rebooter apache bien sûr smile


Pour les sessions, je configure toujours l'option cookie_domain pour être certain que tout fonctionne correctement (mais c'est pas obligatoire je pense).

app.ini

Code:

;====== Resource session
resources.session.name = NOMUNIQUE
resources.session.use_only_cookies = true
resources.session.cookie_path = "/"
resources.session.save_path = APPLICATION_PATH "/../var/sessions"
resources.session.cookie_domain = ".zend-test.com"    ; à changer dans la section production
; 2 weeks
resources.session.remember_me_seconds = 1209600
; Garbage collector
resources.session.gc_probability = 1
resources.session.gc_divisor = 100
resources.session.gc_maxlifetime =

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

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