Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-11-2013 13:43:52

shishi
Membre
Date d'inscription: 17-03-2013
Messages: 67

Problème session et protocole https

Bonjour à tous,
j'ai lu la doc concernant les session et notamment le sessionManager j'ai ensuite crée ma fabrique comme dans la doc dont voici le code :

Code:

[lang=php]
<?php

/**
 * Fabrique de session
 * @author Guiwarch Sébastien
 * @link      http://url pour voir l'application
 * @copyright Copyright (c) 2013 INRA (http://inra.fr)
 * @version 1
 * @license   INRA
 */
namespace Application\Factory;

use Zend\ServiceManager\FactoryInterface;
use Zend\Session\SessionManager;
use Zend\Session\Container;

/**
 * Fabrique de session
 */
class SessionFactory implements FactoryInterface {
    
    /**
     *
     * @see \Zend\ServiceManager\FactoryInterface::createService()
     */
    public function createService(\Zend\ServiceManager\ServiceLocatorInterface $serviceLocator) {
        
        /*
         * $configuration = $serviceLocator->get('Config'); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($configuration['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); Container::setDefaultManager($sessionManager); $container = new Container('rouille'); return $container;
         */
        $config = $serviceLocator->get ( 'config' );
        if (isset ( $config ['session'] )) {
            $session = $config ['session'];
            
            $sessionConfig = null;
            if (isset ( $session ['config'] )) {
                $class = isset ( $session ['config'] ['class'] ) ? $session ['config'] ['class'] : 'Zend\Session\Config\SessionConfig';
                $options = isset ( $session ['config'] ['options'] ) ? $session ['config'] ['options'] : array ();
                $sessionConfig = new $class ();
                $sessionConfig->setOptions ( $options );
            }
            
            $sessionStorage = null;
            if (isset ( $session ['storage'] )) {
                $class = $session ['storage'];
                $sessionStorage = new $class ();
            }
            
            $sessionSaveHandler = null;
            if (isset ( $session ['save_handler'] )) {
                // class should be fetched from service manager since it will require constructor arguments
                $sessionSaveHandler = $serviceLocator->get ( $session ['save_handler'] );
            }
            
            $sessionManager = new SessionManager ( $sessionConfig, $sessionStorage, $sessionSaveHandler );
            
            if (isset ( $session ['validator'] )) {
                $chain = $sessionManager->getValidatorChain ();
                foreach ( $session ['validator'] as $validator ) {
                    $validator = new $validator ();
                    $chain->attach ( 'session.validate', array (
                            $validator,
                            'isValid' 
                    ) );
                }
            }
        } else {
            $sessionManager = new SessionManager ();
        }
        Container::setDefaultManager ( $sessionManager );
        
        return $sessionManager;
    }
}

?>

et voici la config :

Code:

[lang=php]
'session' => array (
                'config' => array (
                        'class' => 'Zend\Session\Config\SessionConfig',
                        'options' => array (
                                'name' => 'rouille',
                                'cookie_domain' => 'inra.fr',
                                'remember_me_seconds' => 1200,
                                'use_cookies' => true,
                                'cookie_httponly' => true,
                        ) 
                ),
                'storage' => 'Zend\Session\Storage\SessionArrayStorage',
                'validators' => array (
                        array (
                                'Zend\Session\Validator\RemoteAddr',
                                'Zend\Session\Validator\HttpUserAgent' 
                        ) 
                ) 
        )

Ensuite c'est la que ca ce corse lorsque le protocole et : http j'arrive parfaitement a récupérer mes variable session mais seulement lorsque le protocole est de l'https je voit bien la session dans developper tool sur firefox mais lorsque je fais un var_dump(maVariable) il me met un joli null...

Est-ce qu'il y a une config particulière pour le protocole https?

Merci d'avance pour votre aide.
Cordialement

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