2014-03-04 2 views
0

lang이라는 쿠키를 en으로 설정하는 다음 PHP 코드가 있습니다.하위 집합에서 PHP setcookie가 작동하지 않습니다.

setcookie('lang','en',time() + (86400 * 14)); 

이 설정은 루트 또는 때때로 하위 폴더의 스크립트를 통해 설정되는 경우가 있습니다. 나는이 같은 하위 폴더의 쿠키의 가치와 루트를 읽고 있어요 : 난 데

echo $_COOKIE['lang']; 

문제는 내가 하위 폴더 내부에서 쿠키를 설정하면, 내가 그 값을 읽을 수 있다는 것입니다. 따라서 각 하위 폴더에 대한 쿠키 값이 만들어지는 것 같습니다.

어떻게 해결할 수 있습니까? 나는 같은 쿠키 이름에 대한 각 폴더의 쿠키를 갖고 싶어 그나마 랭

* UPDATE *

내가 쿠키/적용하기 위해 코드를 변경했습니다. 쿠키가 모든 하위 폴더에 적용된다는 의미입니까?

setcookie('lang',$selected_language,time() + (86400 * 14),'/'); 
+1

각 하위 폴더에 대해 생성 된 것으로 보입니까? 예, 그게 정확히 무엇입니까 * 기본값은 쿠키가 설정되는 현재 디렉토리를 의미합니다 *. 나는 당신이이 코드를 어딘가에서 찾은 것 같지만 실제로는 문서를 확인하지 않았다. –

답변

2

여기 setcookie() 기능의 기본 동작입니다 http://php.net/setcookie을 볼 수 있듯이.

쿠키를 사용할 수있는 서버의 경로입니다. 이 '/'로 설정된 경우 쿠키는 전체 도메인에서 사용할 수 있습니다. 이 '/ foo /'로 설정된 경우/foo/ 디렉토리 및 도메인의/foo/bar/디렉토리와 같은 모든 하위 디렉토리에서만 쿠키를 사용할 수 있습니다. 기본값은 쿠키에 를 설정되는 현재 디렉토리입니다.

당신은 당신의 경로를 설정해야하는 '/'당신이 쿠키는 전체 도메인에 대해 유효합니다.

+0

고마워, /를 포함한 코드를 /와 편집 한 내 게시물을 추가했습니다. 이것이/도메인 전체에 적용된다는 의미입니까? – John

+0

' '/'로 설정하면 전체 도메인에서 쿠키를 사용할 수 있습니다. '/'로 설정하면 전체 도메인에서 사용할 수 있습니다. –