2011-01-11 10 views
3

たとえば、ページを更新するまで、Cookieが実際に設定されていても、次のようなコードは機能しないようです。そうでない場合ユーザがページリロードなしでPHPで有効になっているCookieを持っているかどうか確認できますか?

、ユーザーがコンピュータに設定されたCookieを持っているかどうかをチェックするに基づいて動作します私のサイト上で正確な「ユニークユーザー」カウンタを書き込もうと
setcookie("cookies","1", time()+ 86400,"/"); 
if (!isset($_COOKIE["cookies"])) { 
    $cookies = "foobar"; 
} 

イム、それは+1ありません、クッキーを設定します。ここで問題となるのは、Cookieのないユーザーはすべてのページの読み込み時に+1するだけなので、当然のことながら、Cookieを有効にしているユーザーに対してこのコードを実行したいだけです。

しかし、上記のCookieチェッカーは、Cookieをオンまたはオフにしているユーザーに関係なく、最初のページの読み込み時に常に$ cookies = "foobar"を返します。したがって、ユーザーがサイトの1ページだけを閲覧すると、その訪問はカウンターによって登録されません。

+1

代わりにjavascriptでこれを解決できますか? – amosrivera

答えて

0

私の考えでは、ページがロードされた後にjavascriptcheckを実行し、次にajaxを使用してデータベースにカウンタを書き込んだり、保存したりしたいと考えています。 PHPはサーバサイドであり、クッキーはクライアント側に格納されているので、あなたがしようとしているようなチェックは問題になるでしょう。

1

クライアントへの次回の往復までクッキーがブラウザに送信されないため、設定値をチェックすることでクッキーの存在をすぐに確認することはできません。

あなたができることの1つは、ページにCookieを設定し、イメージスクリプトで確認することです。

その他の回避策があります。

関連する問題