2014-04-03 62 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

嘗試在index.php之後的echo ...,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在同一個域上,setsession.php轉發到另一個域上的test/index.php。那就是它破裂的地方。

所以現在 - 我已將landing.php轉發到setsession.php,它現在位於第二個域 - 所以來自setsession.php和去測試/ index.php的變量位於同一個域中。

問題解決了:)