2012-03-13 6 views
0

PHP 매뉴얼은 쿠키는 원격으로 클라이언트 측에 저장되어 있다고한다이PHP 쿠키가 저장된 위치는 어디입니까?

setcookie ($name, $value, $expire, $path, $domain, $secure, $httponly) 

같은 setcookies 구문을 가지고있다. 적용된 쿠키가 서버 측에 저장되는 경우이 구문의 경로는 var입니다.

이제 내가 그 경로를 언급하면 ​​"var"/ ". 그리고 사용자에의 데니쉬 로그라는 이름

setcookie('site_username','denish',time + 3600,'/','.xyz.com') 

이제 다른 사용자가 로그인이.이 이상 이전의 쿠키 또는 새로운 쿠키를 작성합니다 때마다 생성됩니다 나 기능에게 기억에 대해 나는 이름의 쿠키를 만들?

쿠키 클라이언트 측을 만들고 $ domain var을 적용하려면 어떻게해야합니까? 가능한가?

답변

0

당신은 manual에서 경로 인수의 사용에 관한 잘못된 위치 :

쿠키가 사용할 수있는 서버의 경로.

쿠키는 항상 클라이언트 컴퓨터에 저장됩니다.

+0

네, 맞았습니다. 나는 경로를 이해하기가 잘못되었습니다. 고맙습니다. –

4

쿠키는 항상 클라이언트에 저장됩니다. 이 경로는 원격 페이지가 해당 쿠키에 액세스 할 수있는 것에 대한 제한 만 설정합니다. 예를 들어 "/ foo /"경로를 사용하여 쿠키를 설정하면 "/ foo /"디렉토리와 "/ foo /"하위 디렉토리의 페이지 만 쿠키를 읽을 수 있습니다.

도메인은 동일한 제한을 두며, 하위 도메인에만 적용됩니다.

같은 이름의 쿠키는 서로 덮어 쓰게됩니다. 그렇습니다.

보안 문제로 인해 다른 페이지에있는 쿠키 이외의 다른 도메인으로 쿠키를 설정할 수 없다고 생각합니다.

+0

감사합니다. @mroselli –

0

다른 $path을 사용하는 경우 동일한 이름의 쿠키가 두 개있을 수 있습니다.

setcookie("foobar", "root", time()+3600, "/"); 
setcookie("foobar", "test", time()+3600, "/test"); 

첫 번째 쿠키 (루트)가 /test/*를 제외하고,이 도메인의 모든 $path를 사용하여 액세스 할 수 있습니다. /test/*에서 두 번째 쿠키 만 액세스 할 수 있습니다. 두 쿠키는 사용자 브라우저에 저장되며 브라우저는 현재 쿠키와 일치하는 쿠키를 기반으로 제공 할 쿠키를 결정합니다.

관련 문제