2010-04-19 1 views
3

Im regardant dans les sessions un peu plus et voudrais une entrée.PHP - session_set_cookie_params et session_get_cookie_params

sur un formulaire de connexion simple une fois que le formulaire est submited j'ai les suivantes

. 
.. 
... 
session_name('TOKEN'); 
session_set_cookie_params(time() + 600, './', 'example.co.uk', false, false); 
session_start(); 
$_SESSION['TOKEN'] = TOKEN; 
... 
.. 
. 

puis lorsqu'une demande au serveur est fait je cela.

. 
.. 
... 
session_name('TOKEN'); 
$session_data = session_get_cookie_params(); 
print_r($session_data); 
... 
.. 
. 

qui retourne Array ([lifetime] => 0 [path] =>/[domain] => [secure] => [httponly] =>)

que vous pouvez voir quelque chose ne fonctionne pas ou je manque quelque chose ou im aller un peu pot!

de toute façon, Si quelqu'un a une entrée sur où je vais mal je voudrais l'ici!

Répondre

0

la meilleure solution est de ne pas toucher les paramètres de cookie de session à tous
sessions fonctionne très bien avec les valeurs par défaut. et avec une correction manuelle, vous feriez le pire. En ce qui concerne votre question, session_get_cookie_params fonctionne correctement. il vous montre les paramètres actuels qui ne semblent pas être modifiés dans un autre fichier.

+0

Je ne vois pas comment cela répond à cette question autrement que d'offrir une opinion. La plupart des implémentations de 'remember me' utilisent le champ expires du cookie de session pour leur implémentation AFAIK, Zend Framework serait 1 cas particulier. – quickshiftin

+1

"expire le champ du cookie de session" est un oxymore. –

+0

Même si je comprends votre point de vue, ce n'est toujours pas une réponse valide à la question. J'apprécie la rip ripabout sur Zend Framework cependant, encore une autre défaillance dans un cadre global minable. Voyez par vous-même dans le 'Zend_Session :: rememberUntil()' [implémentation] (http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Session.php) – quickshiftin

4

Vous l'avez peut-être déjà compris, mais session_set_cookie_params() doit être appelé avant session_start() pour chaque requête de page. Donc, disons l'entrée manuelle pour la fonction.

+0

+1 pour la réponse 'correcte', c'est ce qui se passe dans mon cas. – quickshiftin

0

Je pense qu'il peut travailler

session_set_cookie_params(time() + 600, '/', '.example.co.uk', false, false); 

'/' non './'

'.example.co.uk' non 'example.co.uk'

cela a bien fonctionné pour moi.