2010-04-24 5 views
0

J'ai déjà utilisé des sessions mais jamais des cookies. Je voudrais utiliser des cookies pour deux raisons:
1) c'est quelque chose de nouveau à apprendre
2) Je voudrais que le cookie expire dans une heure ou deux (je sais que dans l'exemple de code il expire dans 40 sec)Incrémentation d'un cookie avec PHP (Débutant Question)

Je suis en train d'écrire une base instruction if qui

 if($counter=="1") { //do this second 
} 
     elseif ($counter >="2") { //do this every time after the first and second 
} 
     else {// this is the first action as counter is zero 
} 

Voici le code que je utilise pour définir le cookie:

// if cookie doesnt exsist, set the default 
    if(!isset($_COOKIE["counter_cookie"])) { 
     $counter = setcookie("counter_cookie", 0 ,time()+40); 

    } 

    // increment it 
    $counter++; 



    // save it 
    setcookie("counter_cookie", $counter,time()+40); 
    $counter = $_COOKIE["counter_cookie"]; 

le problème est que le compteur sera soi t de 0 à 1 mais ne sera pas réglé de 1 à 2 et ainsi de suite. Toute aide serait géniale Je sais que c'est une question stupide vraiment simple: |

Merci!

+0

Qui a volé les cookies de la jarre à biscuits? – Rob

+0

vous avez volé le cookie pour le cookie jar! – BandonRandon

Répondre

1

Le problème est très probablement lié à cette ligne:

$counter = setcookie("counter_cookie", 0 ,time()+40); 

Il semble que vous attendez setcookie pour renvoyer une valeur, mais qui ne va pas se produire. A la place, setcookie retournera simplement un booléen vrai en cas de succès et faux en cas d'échec.

http://php.net/manual/en/function.setcookie.php

Vous pouvez essayer de réécrire comme celui-ci pour obtenir l'effet désiré:

if(isset($_COOKIE["counter_cookie"])) 
{ 
    $counter = $_COOKIE["counter_cookie"]; 
} 
else 
{ 
    $counter = 0; 
} 
$counter++ 
setcookie("counter_cookie", $counter ,time()+40); 
+0

merci je l'ai eu à travailler en utilisant // si elle ne marche pas, réglez la valeur par défaut \t if (! Isset ($ _ COOKIE [ "counter_cookie"])) { \t \t setcookie ("counter_cookie", 0, le temps() + 40); \t \t \t \t} // \t obtenir la valeur du compteur \t $ compteur = $ _COOKIE [ "de counter_cookie"]; – BandonRandon

+0

Vous étiez en train de l'éditer en même temps que moi, essentiellement mon édition fait la même chose que la valeur du cookie une fois qu'il a été défini. puis l'ajoute. Merci encore pour votre aide – BandonRandon