php:会话数据丢失

php:会话数据丢失,php,api,magento,session,session-variables,Php,Api,Magento,Session,Session Variables,我使用php会话在API调用期间在服务器上存储值 这里的问题是,在我的本地服务器上工作正常,而在实时服务器上,会话中没有存储任何内容 这是工作流程,基本上我有一个独立的脚本调用Magento API: [脚本调用API]->[Magento服务器] 在Magento一侧: API被调用 API在会话中设置了一些值 观察者试图读取这些值 奇怪的是,如果我在本地Magento服务器(DEV的副本)上运行API调用,调用Magento DEV服务器时一切正常,会话变量为空 以下是我设置会话值的方式:

我使用php会话在API调用期间在服务器上存储值

这里的问题是,在我的本地服务器上工作正常,而在实时服务器上,会话中没有存储任何内容

这是工作流程,基本上我有一个独立的脚本调用Magento API:

[脚本调用API]->[Magento服务器]

在Magento一侧:

  • API被调用
  • API在会话中设置了一些值
  • 观察者试图读取这些值
  • 奇怪的是,如果我在本地Magento服务器(DEV的副本)上运行API调用,调用Magento DEV服务器时一切正常,会话变量为空

    以下是我设置会话值的方式:

    Mage::getSingleton('admin/session')->setApiQuoteId($quoteId); 
    
    然而,我很确定代码部分是可以的(因为它在这里工作得很好),我的疑问是:

  • 我是否可以在不使用浏览器的情况下使用会话,而是通过脚本/API调用访问服务器
  • 任何服务器设置都可能破坏上述功能
  • 本地服务器:PHP-5.4.6


    开发服务器:PHP-5.2.17会话由cookie标识。如果您的api无法保存cookie并每次发送cookie,则每次都会丢失会话变量,因为将分配新会话。

    在服务器配置中检查
    register\u globals
    ,并确保它已关闭
    register\u globals
    在开发服务器上已关闭确保已启动会话();在您处理的每个文件的顶部(虽然不必使用必需的脚本,但在当前用户环境的顶部必须有一个会话_start())。jonast92这不是问题所在Magento以正确的方式管理会话,并且在本地它正在工作(相同的代码)您是否在本地使用浏览器?我总是使用浏览器调用脚本文件(test.php)。我只是将URL更改为该文件(test.php)中的API服务器,以便在本地Magento或DEV Magento浏览器上测试它。浏览器本机支持cookie。api调用是完全不同的。通常api不具备保留cookie并在每次请求时重新发送cookie的能力。也许我把问题搞错了,在这种情况下多解释一下会有帮助。回答第一个问题:通常api不能使用会话,而浏览器默认使用会话(不管怎么说,大多数都是这样)。奇怪的是,在一台服务器上,它在另一台服务器上工作正常,而不是。。。不管怎样,你有没有替代会话的方法呢?我想你可以试试看。但是,在开发版本和测试版本之间,没有任何与此相关的内容,但我可能错了。那时候有相当多的版本。