2012-03-02 2 views
-2

가능한 중복 :
PHP: Cookie domain/subdomain controlhttp://www.domain.com의 PHP 세션 값이 domain.com에서 작동하지 않는 이유는 무엇입니까?

나는 견인 페이지 a.php에와 b.php 있습니다. URL이 http://www.domain.com/a.php 인 a.php 페이지를 실행 중입니다. 여기서 페이지에는 몇 가지 세션 값이 있습니다.

예 : $ _SESSION [ 'name'] = '내 이름';

b.php에서 세션 값 위에 인쇄하고 있습니다. URL이 http://www.domain.com/b.php 인 b.php 페이지에 액세스하면 세션 값이 정상적으로 작동합니다.

예 : echo $ _SESSION [ 'name']; // 출력 '내 이름';

URL이 동일한 페이지 (예 : http://domain.com/b.php)에 액세스하는 경우 세션 값이 작동하지 않습니다.

EX : echo $ _SESSION [ 'name']; // 결과 없음

무엇이 문제이며 어떻게 해결할 수 있습니까?

+4

쿠키의 기본 동작입니다. 그것은 바뀔 수 있지만 왜 처음에는'domain.com'과'www.domain.com'을 제공합니까? 그것은 수시로 수색 엔진을 위해 좋지 않은 이중 내용으로 이끌어 낸다. URL이 일관되도록 URL을 다른 URL로 리디렉션하지 않는 이유는 무엇입니까? –

답변

2

당신은 session_set_cookie_params() 기능을 모든 하위 도메인에 대한 세션을 활성화 할 수 있습니다

session_set_cookie_params (0, '/' '.domain.com'); 
0

이에 a lot of similar questions 당신이 게시하기 전에 검색 않았다 있습니다)? 요약

:

  • 세션이
  • www가 특별한 문자열이 아닌 쿠키와 함께 작동, 즉 example.com의 단지 www가 하위 도메인
  • 쿠키은 도메인과 직접 액세스 할 수 있습니다
    • example.com에 쿠키 집합된다위한 하위 (오히려 또는 "."을 example.com)
    • 쿠키가 www.example.com CANN에 설정된 하위 적용 또는 그 반대의 과정 - 당신도 만약 당신이 단순히 redirect from www.example.com -> example.com 그것에 대해 생각 무시할 수 - OT는 example.com

모든이가 말했다되는 액세스 할 수.

0

중복되는 콘텐츠를 피하려면 www.example.com에서 example.com으로 또는 그 반대로 설정하는 것이 가장 좋습니다. 그러나 php.ini을 수정하여 원하는 도메인을 선택할 수 있습니다. 귀하의 호스트가 귀하의 PHP를 편집 할 수 있습니다.가, (보통 public_html 또는 htdocs) 웹 사이트의 루트에 .htaccess라는 파일을 생성하지 않는 경우

session.cookie_domain = example.com 

을 추가하십시오 : INI, 그것은이 추가

php_value session.cookie_domain example.com 

분명히 당신이됩니다 example.com을 www 또는 다른 하위 도메인이없는 도메인으로 대체해야합니다..

관련 문제