2010-04-24 1 views
0

Я использовал сеансы раньше, но не файлы cookie. Я хотел бы использовать файлы cookie по двум причинам:
1) что-то новое, чтобы узнать
2) Я хочу, чтобы срок действия файла cookie истекал через час или около того (я знаю, что в примере кода он истекает через 40 секунд)Incrmenting cookie с PHP (начальный вопрос)

Я пытаюсь написать базисным, если утверждение, что

 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 
} 

Вот код, я использую, чтобы установить печенье:

// 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"]; 

проблема заключается в том, что счетчик будет таковой t от 0 до 1, но не будет установлено от 1 до 2 и так далее. Любая помощь будет большой, я знаю, что это действительно простой глупый вопрос: |

Спасибо!

+0

Кто украл печенье из куков? – Rob

+0

вы украли куки для кувшина! – BandonRandon

ответ

1

Проблема, скорее всего, связана с этой линии:

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

Похоже, вы ждете SetCookie возвращать значение, но это не произойдет. Вместо этого setcookie просто вернет логическое значение true при успешном выполнении и false при ошибке.

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

Вы могли бы попытаться переписать его так, чтобы достичь желаемого эффекта:

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

спасибо, я получил это работает, используя // если он не делает, то установить по умолчанию \t если (! Исеть ($ _ COOKIE [ "counter_cookie"])) { \t \t SetCookie ("counter_cookie", 0, время() + 40); \t \t \t \t } \t // получить значение счетчика \t $ Счетчик = $ _COOKIE [ "counter_cookie"]; – BandonRandon

+0

Вы редактировали его в то же самое время, когда я был, по сути, мое редактирование делает то же самое, что он просто получает значение cookie после его установки. затем добавляет его. В очередной раз благодарим за помощь – BandonRandon