2011-10-28 5 views
1

내 컴퓨터에 쿠키가 설정되지 않았습니다. 로컬에서는 작동하지만 라이브에서는 작동하지 않습니다. 나는 단지 쿠키가 20 분 동안 존재하기를 원한다. 서버가 미국에 있기 때문에 작동하지 않는다고 생각할 수있는 유일한 이유가 있습니다. 나는 앞으로 x 시간이다. 따라서 쿠키 설정 시간은 이미 만료되었습니다. 이 올바른지?PHP - 쿠키 만료 + 시간 설정

setcookie($cookiename, $cookie, time() + 1200); 

서버 시간이 오전 6 시이고 시간이 오후 12 시인 경우. 쿠키는 오전 6시 20 분 또는 오후 12시 20 분에 만료되도록 설정됩니까?

예전의 경우 사용자의 현지 시간을 기준으로 쿠키 만료 시간을 어떻게 설정합니까? 나중에 있다면 월요일에 좀 더 문제를 해결할 것입니다.

+0

이것은 쉽게 디버깅 할 수 있습니다 :'echo time();' – str

답변

0

time() 함수는 서버 시간을 가져 오지만 쿠키는 GMT 시간을 사용합니다. 나는에 비슷한 문제를 했어

setcookie($cookiename, $cookie, gmdate('U') + 1200); 
1

:

<?php 
    $gmtime = gmdate('U'); 
?> 

그래서이 같은 쿠키를 설정 것 :

PHP에서 GM 시간을 얻을 수있는 가장 쉬운 방법은 사용하는 것입니다 과거에, 내가 항상 제공 한 조언은 쿠키 (다른 시간대에 설정된 경우)가 최소 25 시간 만료되었는지 확인하는 것입니다. 이렇게하면 누구나 쿠키를 활용할 수 있습니다. 많은 경우 잘못된 쿠키 = 액세스 없음 = 큰 문제입니다.

현대적인 컴퓨팅이 이에 대한 예약을했고 동기화 된 시간은 쿠키가 항상 사용자 현지 시간으로 설정되도록합니다. 그것은 예외가 여전히 발견 될 것이라고 말했다.

쿠키를 활성화하는 데는 매우 짧은 시간이 걸리므로 쿠키를 늘리십시오. 쿠키가 여전히 로컬로 설정되어 있지 않으면 브라우저가 서버에서 들어오는 쿠키를 차단했다고 가정합니다.

+0

, 저에게 감사드립니다. – periklis