2013-04-15 258 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