2013-12-10 192 views
1

我在一個PHP項目中使用7digital API。 這裏是我的代碼來調用API:爲什麼會話變量未設置

print_r($_SESSION); 

$requestUrl = "http://api.7digital.com/1.2/release/details?oauth_consumer_key=" . SEVEN_DIGITAL_CONSUMER_KEY . "&country=$CountryCode&releaseid=" . $wishlistArray[$i]['release7id'] . "&imageSize=33"; 
$response = simplexml_load_file($requestUrl); 

print_r($_SESSION); 

它工作正常,但這裏有一個問題,如:

如果我按刷新按鈕一次,然後會話變量未解封的手段(我可以訪問會話數據在API調用代碼之後),但在加載之前的刷新操作之前再次按刷新按鈕,會話數據將自動取消設置。

意思是,如果我連續按下多個刷新按鈕,會話數據會自動銷燬。

可能是什麼原因?

一次刷新它的工作正常。 如果我刪除了XML加載代碼,那麼它可以很好地工作到多次刷新或單次刷新。

+1

我看不出以任何方式改變會話。 – deceze

+0

$ _SESSION在哪裏設置? – Sabari

+0

deceze:但調用API後會話數據被破壞。 –

回答

2

這是一個相當有名的問題/錯誤。

查看here獲取完整的解釋和完整的解決方案。

+0

會話存儲「XML」就好了。 XML只是一串文本。很明顯,* SimpleXMLElement類*在序列化/非序列化或者根本不支持它時是越界錯誤,這是一個不同的問題。 – deceze

+0

我的PHP參考手冊鏈接確實可以解釋問題...... – MarcoS

+0

是的,我只是想確保您的一般性聲明「會話不喜歡排序XML」聽起來不像它那麼糟糕。 – deceze

-1

include session_start();在腳本的頂部