0

以前にセッションを使用したことがありますが、Cookie は使用したことがありません。Cookie を使用したい理由は 2 つあります
。1) 新しいことを学ぶためです
。2) 1 時間ほどで Cookie の有効期限が切れるようにしたいです (コード例では、40 秒で有効期限が切れることがわかっています)。

私は基本的なif文を書こうとしています

      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
}

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

問題は、カウンターが 0 から 1 に設定されますが、1 から 2 に設定されないなどです。どんな助けでも素晴らしいでしょう、これは本当に単純なばかげた質問であることを知っています:|

ありがとう!

4

1 に答える 1

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);
于 2010-04-24T03:34:13.657 に答える