2011-10-27 7 views
6

웹 사이트 www.example.com
모든 쿠키는 www 하위 도메인으로 설정됩니다.
이제 새 하위 도메인이 있으며 쿠키를 모든 하위 도메인에 표시하려고합니다.특정 쿠키의 도메인을 가져 오는 방법은 무엇입니까?

기존의 모든 방문자가 www.example.com이되도록 www.example.com 쿠키를 다시 쓰거나 www가 설정된 경우 .example.com에 대해 새로운 쿠키를 작성하는 것이 목표입니다.

이렇게하려면 기존 쿠키의 도메인을 가져오고 싶습니다.
가능합니까? 이 목적을위한 PHP 함수가 있습니까?

+0

['$ cookie-> setDomain ($ 도메인)'(https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php#L117) [이 독립형 라이브러리] (https://github.com/delight-im/PHP-Cookie)에있는 유용한 정보입니다. 이미 전송 된 (그리고 클라이언트에 설정된) 쿠키의'domain' 속성에 접근 할 수 없지만, 간단히 새로운 쿠키를 설정할 수 있습니다. 그것은 잘 작동합니다. – caw

답변

3

쿠키를 읽을 때 도메인을 사용할 수 없다고 생각합니다. 브라우저에 의해 제한됩니다. 해결책은 이전 쿠키를 제거하고 새 쿠키로 변경하는 것입니다.

예.

$value = $_COOKIE['TestCookie']; 
setcookie("TestCookie", "", time() - 3600, "www.example.com"); 
setcookie("TestCookie", $value, time + (60 * 60 * 24 * 30), ".example.com"); 
당신은 찾을 수
+0

나는이 아이디어를 가지고 있었지만이 방법으로 모든 쿠키가 변경된 후에도 과정은 영원히 반복 될 것입니다. 나는 서버 쪽에서 그것을하고있다. 그리고 다른 것은 : 구글 크롬은 (Inspect Element에서) 쿠키 도메인을 알고 있습니다. – lvil

+1

당신은 이미 당신이 변환을했음을 알려주는 다른 쿠키를 추가 할 수 있습니다. – Noodles

1

정확하게 알고 계시다면 현재 클라이언트에있는 쿠키의 도메인을 변경 하시겠습니까?

이것은 불가능합니다 (*).

쿠키 서버 쪽을 가져 오는 경우 도메인 정보가없는 클라이언트 양식을 전달한 쿠키가 계속 유지되므로 www 도메인에 대해 설정되었는지 확인할 수 있습니까?

(*) 클라이언트 쪽 JavaScript가있을 수 있습니다.

관련 문제