Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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 :
<?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 :
'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