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 :
[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 :
[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