2014-11-03 70 views
0

我想將一個數組傳遞給另一個頁面,然後使用該數組中的元素生成JSON,然後將其回顯出來供第一頁訪問。

現在我可以將數組發送到其他頁面,然後將其格式化爲我想要的格式,我將其作爲第一頁獲取,然後當我嘗試回顯url的fetch_get_contents回顯關於它的信息,它突然間打破了$ _SESSION變量。

這是我的第一個文件

$_SESSION['map'] = $rowContentArray; 
$url2 = "http:....php"; 

在我的第二個文件,我可以在陣列不錯,我做的一切,我想用它 我附和了我從我的其他網頁想要的信息,那麼當我再次嘗試訪問在第一頁上的信息,它只是加入這個最後的換行符

$_SESSION['map'] = $rowContentArray; 
$url2 = "http:.....php"; 
echo file_get_contents($url2, true); 

我得到的指數我使用t的誤差O訪問在$ _SESSION變量數組中的我的第二個文件是未定義

$map = $_SESSION['map']; 

錯誤:

注意:未定義指數:地圖

在第一個文件,我可以附和任何隨機字符串會後的東西和一切仍然工作..但當我嘗試回聲的網址內容它打破。

我很困惑,什麼可能會導致會話變量丟失。

非常感謝您的幫助。

+1

在每個文件的頂部添加'session_start()' – 2014-11-03 01:22:00

+1

你是否在所有頁面調用[session_start()](http://php.net/manual/pt_BR/function.session-start.php)? – 2014-11-03 01:22:12

+0

是的,我在兩頁 – jacoballenwood 2014-11-03 18:16:27

回答

0

搭檔,腳本中沒有任何錯誤!其實這正是預期的行爲。

當您從瀏覽器訪問該頁面時,會設置一個特定的COOKIE,並將$_SESSION數組綁定到此cookie。

當您通過file_get_contents($url2, true);訪問該頁面服務器正在分配另一個COOKIE以及全新的$_SESSION數組綁定到它。

顯然第二$_SESSION陣列沒有map按鍵,所以按預期越來越
Notice: Undefined index: map

請記住,變量$_SESSION是特定的會話,所以如果你有說1000個同時打開會話該服務器有1000個不同版本的$_SESSION變量。

檢查這篇文章,以獲得東西清楚:http://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie

如果你能定義什麼是您的具體使用情況下,我們將能夠幫助你更多。

當您需要在不同會話之間傳輸數據時,通常的方法是使用GETPOST變量。例如,你的情況,你可以嘗試:
file_get_contents($url2 . '?map=' . json_encode($rowContentArray));

然後,而不是在$_SESSION['map']你會得到你在$_GET['map']

陣列如果陣列$rowContentArray足夠大,並不適合作爲GET參數,那麼你會必須使用POST方法。

+0

ahh都有session_start(),這是有道理的。我試圖使用獲取並通過它之前通過網址,並遇到麻煩,所以我切換到嘗試和使用會話..仍然有麻煩哈哈 – jacoballenwood 2014-11-03 18:17:29

+0

所以我切換回嘗試使用get,現在它說' map'是來自$ _GET ['map']的未定義索引; – jacoballenwood 2014-11-03 18:56:25

+0

我在$ url2 – jacoballenwood 2014-11-03 18:57:09