2016-12-15 5 views
0

내 웹 사이트에는 데스크톱 용과 모바일 용의 두 가지 버전이 있습니다. (website.com/m.website.com).모바일 웹 사이트로 리디렉션 한 후 내 쿠키가 작동하지 않습니다.

들어오는 모바일 트래픽을 내 웹 사이트의 모바일 버전으로 리디렉션하기 위해 PHP 스크립트를 사용합니다. 몇 가지 이유로 모바일 버전에 트래픽 소스를 알아야합니다.

모바일 리디렉션 전에 스크립트를 사용하여 트래픽 소스 이름이있는 쿠키를 설정합니다.

그러나 모바일 버전으로 쿠키에 액세스 할 수 없습니다. 그것의 설정되지 않은 것 같습니다.

$ref = $_SERVER['HTTP_REFERER']; 
$refData = parse_url($ref); 

if($refData['host'] == 'www.traffic_source_1.com') { 
    setcookie("traffic_source_1", 1, time() + (86400 * 30), "/"); 
} 

// Redirect to mobile version 

모바일 버전 내에서 쿠키에 액세스하려고하면 "작동하지 않음"이라는 결과가 표시됩니다.

if(isset($_COOKIE["traffic_source_1"])) { 
    echo "working"; 
    } else { 
     echo "not working"; 
    } 

은 UPDATE :

그것은 테스트 쿠키와 함께 일하고

setcookie("traffic_source_1", 1, time() + (86400 * 30), "/",".website.com"); 

setcookie("traffic_source_1", 1, time() + (86400 * 30), "/"); 

를 대체되었습니다. 그러나이 선을 내 상태에 포함 시키려고 할 때 그렇지 않습니다. (조건 매개 변수가 작동 중입니다). 당신이 도메인과 하위 도메인 간의 쿠키를 공유 할 같이

+1

로 교체가 – Noman

+1

같은데,이 링크는 당신에게 HTTP 도움이 될 수 있습니다 : //stackoverflow.com/questions/18492576/share-cookie-between-subdomain-and-domain –

답변

1

기존 코드

setcookie("traffic_source_1", 1, time() + (86400 * 30), "/"); 

당신은 도메인 이름의 쿠키 경로를 설정해야

setcookie("traffic_source_1", 1, time() + (86400 * 30), "/",".website.com"); 
관련 문제