2011-06-22 3 views
1

Le cookie que j'ai défini dans codeigniter est supprimé après le redémarrage du navigateur. J'installe un cookie comme:Les cookies sont supprimés lors du redémarrage du navigateur

$test_cookie = array(
        'name'=>'test', 
        'value'=> 'test', 
        'expire'=> time() + 60*60*24*14 
       ); 

$this->input->set_cookie($test_cookie); 

Les retours print_r($test_cookie):

Array ([name] => test [value] => test [expire] => 1309943188) 

Maintenant, je peux imprimer le cookie pour vous assurer que le cookie est:

$test_cookie= $this->input->cookie('test'); 
echo "<b> Cookie value: </b>". $test_cookie; 

Le cookie imprime la valeur correctement. Cependant, si je redémarre le navigateur, je ne reçois plus la valeur du cookie. J'ai essayé plusieurs navigateurs. Avec le var_dump, je reçois: bool(false) Pourquoi le cookie est supprimé lorsque le navigateur redémarre?

Merci.

+0

Certains paramètres de votre navigateur suppriment-ils automatiquement les cookies à l'arrêt? Cela arrive-t-il avec tous les navigateurs? –

+0

@Diamain Pirsy comme je l'ai mentionné j'ai trouvé plusieurs navigateurs, et son passe avec tous. – Roman

Répondre

4

La documentation CodeIgniter indique la valeur expires est ajoutée à l'heure actuelle. Donc effectivement la valeur expires dans votre cas est time() + time() + 60*60*24*14. Cela peut dépasser la limite d'entier de 32 bits et devenir une valeur négative. Cela entraînera à son tour un cookie temporaire qui est supprimé lors de la fermeture du navigateur.

$test_cookie = array(
    'name'=>'test', 
    'value'=> 'test', 
    'expire'=> 60*60*24*14 
); 

devrait fonctionner. Je pense.

+0

Merci, c'est exactement le problème était. – Roman

Questions connexes