2011-01-11 2 views
3

예를 들어, 페이지를 새로 고칠 때까지 쿠키가 실제로 설정되어 있어도 다음과 같은 코드가 작동하지 않는 것 같습니다.사용자가 페이지를 다시로드하지 않고도 PHP에서 쿠키를 사용할 수 있는지 확인할 수 있습니까?

setcookie("cookies","1", time()+ 86400,"/"); 
if (!isset($_COOKIE["cookies"])) { 
    $cookies = "foobar"; 
} 

임 사용자가 컴퓨터에 쿠키가 설정되어있는 경우 그렇지 않은 경우, 확인 점검을 기반으로 작품 내 사이트에 정확한 "고유 한 사용자"카운터를 작성하는 노력이 수행 한 쿠키를 설정합니다. 여기에서 문제는 쿠키가없는 사용자는 모든 페이지로드시 +1 할 것이므로 당연히 쿠키를 사용하도록 설정 한 사용자 만이 코드를 실행하고 싶다는 것입니다.

그러나 위의 쿠키 검사기는 쿠키가 켜져 있거나 꺼져있는 사용자와 관계없이 첫 번째 페이지로드시 항상 $ cookies = "foobar"를 반환합니다. 따라서 사용자가 사이트의 1 페이지를 조회하면 방문객은 카운터에 등록되지 않습니다.

+1

대신 자바 스크립트로 해결할 수 있습니까? – amosrivera

답변

0

내 마음에 오는 아이디어는 페이지가로드 된 후 javascriptcheck을 수행 한 다음 아약스를 사용하여 데이터베이스에 카운터를 쓰거나 저장하려고합니다. PHP는 서버 측이고 쿠키는 clientside에 저장되므로 문제가 될 것처럼 체크를하는 것이 좋습니다.

1

다음 번에 클라이언트로 왕복 할 때까지 브라우저에 쿠키가 전송되지 않기 때문에 설정 값을 확인하여 쿠키의 존재 여부를 즉시 확인할 수 없습니다.

당신이 할 수있는 한 가지는 페이지에 쿠키를 설정 한 다음 이미지 스크립트에서 확인하는 것입니다.

다른 해결 방법이 있습니다.

관련 문제