2012-06-22 4 views
1

웹 사이트에 "환영 로더"를 추가하고 있습니다. 방문 쿠키 새로운인지 아닌지쿠키없이 쿠키없이 사이트를 처음 방문하는 방법은 무엇입니까

내가 감지 할 수 있습니다 :

function show_loader() 
{ 
setcookie("loader_shown", "1", time() + 80,"/"); 

echo "<div class='loader'>hello</div>";  

} 

if(! $_COOKIE['loader_shown']) 
{ 
die(show_loader()); 
} 

// the rest of the code to show the site....... 

활성화 쿠키와 브라우저에 대한 모든 좋은 ....하지만 내가 어떻게 비 쿠키 활성화 브라우저이 상황을 처리까요? 다른 쿠키를 설정하고이 비트를 실행하기 전에 쿠키가 설정되어 있는지 확인한 후 ....

엽서에 대답!

+0

한 페이지 방문/체크 쿠키를 설정할 수 있습니다. 사용자가 쿠키를 다시 보냈는지 확인하기 위해 사용자가 조회 # 2로 돌아올 때까지 기다려야합니다. 대부분의 사이트는 쿠키를 설정하여 페이지를 새로 고침하여 # 2의 조회가 시작되도록합니다. –

+0

네, 그런 경우가 될 것이라고 생각합니다. "새로 고침"접근 방식은 갈 길이 멀다고 생각합니까? 브라우저가 쿠키를 사용할 수 없게되면 그 순간에 항상 로더가 표시되어 전체 사이트가 숨겨집니다. – Nick

답변

1

사용자의 IP 및 사용자 에이전트를 서버에 저장할 수 있으며 지정된 IP/UA 조합이 최근에 본 경우 메시지를 표시하지 않습니다. 그냥 쿠키를 사용하려면

이 (의사 틱)처럼해야 할 것 :

# page 1 
if(isset($_COOKIE['welcome_shown'])) { 
    redirect('home page') 
    exit 
} 
setcookie('has_cookies', true) 
redirect(page 2) 

# page 2 
if(isset($_COOKIE['has_cookies']) && !isset($_COOKIE['welcome_Shown'])) { 
    show_welcome_message() 
    setcookie('welcome_shown', true) 
    exit 
} 
redirect('home page') 
+0

실제로 "환영"스타일의 페이지에 대해 가양 성 및 거짓 음성 모두가 오히려 무해합니다. – ThiefMaster

+1

예, ip/user agent는 비 쿠키 시나리오를 해결하기위한 합리적인 접근 방법입니다. 이것은 여러 번 전에 직면 된 문제 여야합니다. IM은 더 이상이 답변을 찾을 수 없습니다. – Nick

+0

ip + 사용자 에이전트는 나에게 좋을 것 같지만이 체크에 더 잘 작동하도록 추가 할 변수가 있습니까? – Pons