OVH Cloud OVH Cloud

session_start and headers

1 réponse
Avatar
alicante
Un module de session, et un autre de cache font la mauvaise tête et ne
veulent pas travailler ensemble... après débogage, voilà le diagnostique:

Dans le code suivant, si on active la ligne "session_start()" le Header
'Etag' est perdu. tous va bien si on laisse PHP démarrer les sessions en
mettant en commentaire session_start();

$myETag = 'xcache-testing-'.time();
// session_name('toto');// set name of session
session_start();// start session

$_SESSION['toto'] = 'woups'; // automatically start session if not started.

header('ETag: '.$myETag);

echo (isset($_SESSION)) ? var_dump($_SESSION).'<hr/>' : 'no session
started'.'<hr/>' ;
echo '<br/>HTTP_IF_NONE_MATCH :<br/>'. getenv("HTTP_IF_NONE_MATCH");



Bug ? bêtises ? idées ?
-----
config:

PHP 4.33 - windows 2000
session.auto_start = 0

1 réponse

Avatar
alicante
Dans le code suivant, si on active la ligne "session_start()" le
Header 'Etag' est perdu. tous va bien si on laisse PHP démarrer les
sessions en mettant en commentaire session_start();

$myETag = 'xcache-testing-'.time();
// session_name('toto');// set name of session
session_start();// start session

$_SESSION['toto'] = 'woups'; // automatically start session if not
started.

header('ETag: '.$myETag);

echo (isset($_SESSION)) ? var_dump($_SESSION).'<hr/>' : 'no session
started'.'<hr/>' ;
echo '<br/>HTTP_IF_NONE_MATCH :<br/>'. getenv("HTTP_IF_NONE_MATCH");



OK - parès recherche et test, il faut indiquer
header("Cache-control: public "); //private
header('ETag: '.$myETag);
et ça marche...