2010-04-16 2 views
1

쿠키를 처음 사용하고 리퍼러 (org ref)를 저장할 위치에 쿠키를 설정하려고합니다.
하지만 난이 기능하려고하면쿠키가 두 번 설정됩니다 (복제 됨)

function do_it_cookie() { 

// Check if cookie exists 
if (isset($_COOKIE['ref'])) { 

    // It dose exist, do nothing or anything... 

    } else { 
     setcookie ('ref', $_SERVER['HTTP_REFERER'], time() + 60, '/'); 
     header ("Location: http://www.nyttforetag.com/mind-your-own-business/"); 
    } 
} 

내가 반환 내가 초기 심판의 URL을 알고 싶다면, 30 일 동안 사용자의 컴퓨터에 쿠키를 저장할합니다.

그러나 이것을 사용하면 내 사이트의 다른 페이지로 이동 한 다음 다시 홈페이지로 이동한다고 가정하면 동일한 이름과 이전 페이지의 참조와 함께 새 쿠키가 설정됩니다.

이 문제를 방지하려면 멀리 있습니까?

답변

1

이제 쿠키 저장을 60 초 동안합니다. 쿠키가 만료 시간

-

time()+60*60*24*30 //this makes store it for 30 days. 

expirephp.net에서. 이것은 유닉스 타임 스탬프이므로 신기원 이후로 초의 숫자입니다. 다른 단어의 경우 을 만료시키기 전에 time() 함수에 초를 더한 값 을 설정하는 것이 가장 일반적입니다. 또는 mktime()을 사용할 수도 있습니다. time() + 60 * 60 * 24 * 30은 쿠키가 30 일 후에 만료되도록 설정합니다. 0으로 설정하거나 가 생략 된 경우, 쿠키 (브라우저 닫을) 세션의 끝

0

첫 번째 포인트에 만료됩니다, 쿠키 이름이 매일에 고유 설정하십시오. 쿠키 이름에 날짜를 추가하십시오. 집이나 첫 페이지에만 쿠키를 설정하십시오. 30 일 동안 계산을 time() + 60 * 60 * 24 * 30으로 사용할 수 있습니다.

+0

쿠키 이름을 고유하게 만드는 이유는 무엇입니까? –

+0

사용자가 30 일 동안 쿠키를 저장하기 때문에. – Karthik

+0

당신이 의미하는 바를 이해하지 못하고, 저장된 첫 번째 쿠키를 어떻게 선택합니까? –

관련 문제