0

Cookie が設定されているかどうかを確認する関数を作成し、設定されていない場合は Cookie を設定します。

Cookie はすぐには利用できないため、ページを一度更新する必要があるため、値にアクセスできます。

ただし、関数を呼び出すと、ページがリロードされ続けます。関数の外では正しく動作します。関数内にあり、それを呼び出した場合にのみ発生します。

function getCookie (){
    if(isset($_COOKIE['ID'])){
        $cookieID = $_COOKIE['ID'];
    }
    else{
        //generate random value for cookie id
        $charid = strtoupper(md5(uniqid(rand(), true)));
        $uuid =  substr($charid, 0, 8)
                 .substr($charid,20,12);

        setcookie( "ID", $uuid, strtotime( '+7 days' ) ); 
        $cookieID = $_COOKIE['ID'];
        echo "<META HTTP-EQUIV='Refresh' CONTENT='0'>  ";
    }
    echo $cookieID;
}
4

2 に答える 2

0

何を正確に返すかを確認しissetます。あなたの説明から、このコードの最初の実行後にCookieが設定されていないようです。FireFoxでは、firebugツールを使用してCookieが設定されているかどうかを確認できます。

の代わりに任意の例でデータのタイプも比較することifをお勧めします。次のことを覚えておいてください。if(isset($some_var) === true){if(isset($some_Var)){

$v = 0;

if($v == 0){ } true を返します

if($v === 0){ }true を返します

if($v == false){ }true を返します

if($v === false){ }false を返す

于 2013-04-24T10:29:56.377 に答える