2013-04-15 257 views
0

我正在使用php Session在API調用期間在服務器上存儲值。php:會話數據丟失

這裏的問題是,我的本地服務器工作正常,而在活服務器上沒有任何東西存儲在會話中。

這是工作流程,基本上我有一個indipendent腳本中調用Magento的API:

[Script calling API ] -> [Magento Server]

在Magento的一面:

  1. 的API調用
  2. API設置一些價值在會議中
  3. 觀察員嘗試讀取這些值

奇怪的是,如果我在我的本地Magento服務器(DEV的副本)上運行我的API調用,在調用Magento DEV服務器時,一切正常,session var爲空。

這是我如何設置會話值:

Mage::getSingleton('admin/session')->setApiQuoteId($quoteId); 

不過我敢肯定的代碼部分是確定的(因爲它在這裏工作罰款)我的疑問是:

  1. 能我使用瀏覽器使用會話,但使用腳本/ API調用來訪問服務器?
  2. 任何服務器設置都可以打破上述功能?

本地服務器:PHP - 5.4.6

開發服務器:PHP - 5.2.17

+0

檢查服務器配置中的'register_globals'並確保它已關閉 –

+0

''register_globals'在DEV服務器上關閉 – WonderLand

+0

確保您有session_start();在你經歷的每個單一文件的頂部(需要的腳本不一定要,但必須在當前用戶環境的頂部有session_start();)。 – Jonast92

回答

1

會議通過cookie來識別。如果你的api不能持有一個cookie並且每次都發送它,你將會每次釋放會話變量,因爲新的會話將被分配。

+0

嗯所以爲什麼在本地工作正常? – WonderLand

+0

你在本地使用瀏覽器嗎? – Xnoise

+0

我總是使用瀏覽器來調用腳本文件(test.php)。我只需將該URL更改爲該文件(test.php)內的API服務器,即可在本地Magento或DEV Magento上對其進行測試 – WonderLand