2014-09-21 3 views
0

Je suis en train de créer et de supprimer des cookies en php mais je suis incapable de le faire. J'ai traversé le site officiel de PHP, mais même cela n'a pas résolu mon problème.Créer et supprimer des cookies dans php

Le code que je l'ai écrit:

<?php 
$cookie_name = "cookie_id"; 

if (!isset($_COOKIE[$cookie_name])) 
{ 
    echo "Inside if: ".$_COOKIE[$cookie_name]; 

    $unique_id = date('ymdhis').''.uniqid('', true); 

    setcookie($cookie_name, $unique_id); 
    setcookie($cookie_name, $unique_id, strtotime('+30 days')); 
    setcookie($cookie_name, $unique_id, strtotime('+30 days') , "/", "www.domain.in", 1); 
} 
echo "Current: ".$_COOKIE[$cookie_name]; 

setcookie ($cookie_name, "", time() - 3600); 
setcookie ($cookie_name, "", time() - 3600, "/", "www.domain.in", 1); 

echo "</br>"; 
echo "After Reset: ".$_COOKIE[$cookie_name]; 
?> 

Fondamentalement, je suis en train de créer et de supprimer le cookie sur la même page puis recréer la charge de la page suivante.

J'ai déjà mentionné: [http://us3.php.net/manual/en/function.setcookie.php][1] mais je ne peux pas passer à travers.

C'est ce que la sortie je reçois:

Inside if: Current: 
After Reset: 
+0

http://php.net/manual/en/function.setcookie.php -> 'Comme d'autres en-têtes, les cookies doivent être envoyés avant toute sortie de votre script (ceci est une restriction de protocole). Cela nécessite que vous placiez des appels à cette fonction avant toute sortie, y compris les balises et ainsi que les espaces blancs. Donc 'echo" Inside si: ". $ _ COOKIE [$ cookie_name];' enverra la sortie, donc 'setcookie ($ cookie_name, $ unique_id);' ne fonctionnera pas – Sean

Répondre

0

Selon la documentation de PHP que vous avez lié:

Une fois que les cookies sont définis, ils peuvent être consultés sur la page suivante charge

Vous essayez de lire le cookie trop rapidement, vous le définissez et ensuite le supprimez avant même qu'il ne parvienne à l'utilisateur.

+0

Oui, j'ai séparé le cookie de création et supprimer le cookie sur différentes pages et ça a marché! –

0

Vous pouvez essayer de supprimer cookies

setcookie($cookie_name, null, null);