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