2014-04-03 3 views
2

각 대륙에 대한 마우스 포인터가있는 세계지도가 표시된 웹 사이트의 방문 페이지가 있습니다. 이 클릭하는 A HREF는 다음과 같이 연결했습니다PHP 세션 변수가 작동하지 않습니다.

<a href="setsession.php?c=AU">Australia</a> 

setsession.php가있는 경우에만이 :

<?php 
    session_start(); 

    $_SESSION['SelectedCountry'] = htmlspecialchars($_GET["c"]); 

    header("location:test/index.php"); 
?> 

및 테스트/index.php에 포함

<?php 
    session_start(); 
    echo $_SESSION['SelectedCountry']; 
?> 

그래서 내가 할 수있는 test/index.php가 빈 페이지 만 표시하는 이유를 파악하지 못했습니까?

+0

아마도 간격을? 'header ("Location : test/index.php");' –

+0

echo ... 다음에 index.php를 시도하십시오., print_r ($ _ SESSION); SelectedCountry 세션이 설정되었는지 확인합니다. – CMPS

+0

test/index.php로 전달합니다. 문제는 test/index.php가 세션 변수를 반향하는 대신 빈 페이지 만 표시한다는 것입니다. – JaceG

답변

1

이 문제를 해결할 수 있었고 누구에게나 유용 할 수 있습니다.

세션 변수를 사용할 때 모두 하나의 도메인에 있어야합니다.

내 도메인의 설정으로 인해 /test/index.php는 동일한 호스트이지만 다른 도메인에 있습니다 (그럼에도 setsession.php와 초기 방문 페이지와 관련된 하위 폴더).

test/index.php는 다른 두 파일과 다른 도메인에 표시됩니다. 그래서 landing.php는 동일한 도메인의 setsession.php로 전달하고, setession.php는 다른 도메인의 test/index.php로 전달합니다. 그것이 깨지는 곳입니다.

이제는 두 번째 도메인에있는 setsession.php 로의 landing.php 전달이 있습니다. 따라서 setsession.php에서 오는 변수와 test/index.php에서 오는 변수는 같은 도메인에 있습니다.

문제가 해결되었습니다.

관련 문제