2010-07-01 4 views
0

생각하기가 쉽지 않았지만 지난 반 시간 동안 아무 소용이 없다고 생각했습니다. 나는 $ _COOKIE를 통해 쿠키를 확인하기 위해 갈 때쿠키가 PHP로 설정되어 있지 않음

$unique_id = uniqid(microtime(),1); 

if (is_null($_COOKIE['client_id'])) 
    { 
    setcookie("client_id", $unique_id); 
    } 

은 그러나 [ 'CLIENT_ID'], 나는 null 값을 얻는다. 아이디어가 어떻게됩니까?

+2

와 쿠키, 당신은 동일한 요청 또는 다른 하나의 쿠키 값을 확인하는 설정해야합니까? – riwalk

+0

같은 요청입니까, 중요합니까? – JoeCortopassi

+1

http://stackoverflow.com/questions/2444635/cant-set-cookies-in-php/2444671#2444671 (및/또는 내 수정 답변)을 참조하십시오. – fbstj

답변

3

_COOKIE 배열은 스크립트가 초기화 될 때 만들어지고 PHP에 의해 혼자 남겨집니다. 스크립트 내에서 쿠키를 설정해도 $ _COOKIE에 마술처럼 추가되지는 않습니다. 다음 스크립트 요청시에만 표시되거나 $ _COOKIE에 수동으로 지정됩니다.

8

아무 것도 출력되기 전에 쿠키를 설정해야합니다. 또한 전에 쿠키에 많은 문제가있었습니다.

자세한 내용은 Can't set cookies in PHP?을 참조하십시오. 이유는 설정하는 것과 동시에 그 존재를 확인할 수없는 이유입니다.

1

예 FallingBullets에 대한 권리가 있습니다. UTF8 파일 인코딩을 사용할 때 성가 시게하십시오 - 클라이언트와 함께 보내는 첫 번째 문자는 UTF8 파일 헤드 (š 0xEF 0xBB 0xBF)입니다. 이 경우 ob-start http://php.net/manual/en/function.ob-start.php이 작동하지 않습니다 (UTF8 파일 헤드가 ob-start 전에 전송됩니다).

내가 설명하는 것은 아마도 웹 서버의 특징 일 것입니다. ASCII 인코딩으로 jour 스크립트 저장을 시도하십시오.

2

당신은 호기심에서

$_COOKIE['key'] = 'value'; 
관련 문제