2011-09-06 3 views
1

나는 모든 세션을 session_set_save_handler을 통해 MySQL에 저장하고 있지만, 이제 localhost의 하위 도메인에서 세션을 사용해야합니다. 로컬 호스트에서도 작동합니까?localhost의 하위 도메인에서 세션을 사용하려면 어떻게해야합니까?

ini_set('session.cookie_domain', '.localhost'); 

내 코드에,하지만 로컬 호스트의 코드를 실행하고 아마 때문에 그 어느 문제를 해결하는 것 같지 않았어요 :

은 이미 덧붙였다. 아니면 localhost에서 사용할 수있는 해결 방법이 있습니까?

나는 Win7에서 XAMPP를 사용하고 있습니다.

예 :

http://localhost가 SESSION_ID에게 2oog13m67rr1sd1gk94lbf1he2

http://sub.localhost을 가지고하는 것은 그래서 SESSION_ID에게 3vr0pdqljothmmf4btlenvk047

을 가지고, 당신이 바로 session.cookie_domain에 대한 .localhost을 사용할 수 없습니다 같아요.

+0

어떤 브라우저를 사용하고 있습니까? –

+0

Chrome을 사용하고 있습니다 –

+1

'호스트 '파일을 사용하여'mypc.local'과 같은 "적절한"도메인 이름을 설정하지 않으시겠습니까? 그것은'localhost'를 질식시킬 것입니다. 왜냐하면 하나의 구성 요소가 있기 때문입니다. –

답변

1

이미 도메인 이름을 구성하고 있으므로 최상위 도메인을 다시 사용하지 않는 것이 좋습니다. 소유하고있는 것을 사용하거나 새로운 것을 발명하십시오. localhost이라는 이름은 이미 잘 정의 된 의미를 지니고있어 사용자가 직면 한 것과 같은 문제가 발생할 수 있습니다. 특히 브라우저는 TLD를 기반으로 제한을 부과하기 때문에 예를 들어 쿠키 .com 또는 .co.uk을 설정할 수 없습니다. 나는 대부분의 브라우저에서뿐만 아니라 localhost 자체 규칙이 있다고 확신합니다.

업데이트 : 당신은 레지스트리 제어 도메인에 대한 도메인 쿠키를 설정할 수 있습니다

.com 또는 이렇게 끝나는 즉 뭔가를하지만, : 당신은 크롬을 사용하는 경우, 유효하지 않은this bug report가 해결 참조 하지 로컬 호스트와 같은 IP를 또는 인트라넷 호스트 이름

관련 질문 : Localhost Cookie

+0

대신 Firefox에서 테스트 해 보겠습니다. Alvaro에게 감사드립니다! –

1

.localhost.com에 쿠키를 설정하려고 시도했지만 제대로 작동했습니다. 컴퓨터 호스트 파일에 localhost.com에 127.0.0.1 을 가리키는 항목을 추가하면 브라우저가 localhost.com의 쿠키를 http://sub.localhost.com으로 전달합니다.

그것은 node.js에서 나를 위해 일한 것, 비슷한 일이 PHP에서도 작동해야한다고 생각합니다.

관련 문제