zend框架失去会议

时间:2009-03-02 23:54:15

标签: flash zend-framework session upload

我正在尝试在Zend框架应用程序中实现Flash上​​传程序,但我遇到了会话问题。

Flash不会发送任何Cookie标头,这就是会话丢失的原因。我正在尝试将sessionId作为post param发送,并且在我的bootstrap文件中我添加了一个session_id($ _ POST ['session_id])但是这个doenst似乎有效。

我使用MySQL表作为会话存储

我尝试调试错误,据我所知,session_id已设置,存储器从数据库返回corect数据,但似乎没有在$ _SESSION全局中正确设置。

甚至更奇怪的是它似乎可以在我的Windows计算机上运行,​​但不能在Linux登台服务器上运行。

3 个答案:

答案 0 :(得分:4)

您知道在安装PHP时是否使用Suhosin吗?

我听说过few reports Suhosin对会话做了这个,在这种情况下的解决方案是禁用php.ini中的suhosin.session.cryptua

无论如何,如果这不是你的问题,只需要确定基础知识:

  1. 请确保将session_id()传递给Flash中的帖子,例如SWF Upload,这可以通过将其传递到配置数组的post_params值来完成。< / LI>
  2. 请务必在session_id($_POST['session_id])
  3. 之前致电session_start()

    但无论如何,如果您说它在Windows环境下运行,它可能与您的PHP安装有关。

答案 1 :(得分:0)

这听起来类似于多年来报告的各种错误,但在大多数情况下它适用于Linux而不是Windows。

http://framework.zend.com/issues/browse/ZF-2459 https://www.zend.com/en/forums/index.php?t=msg&goto=16104&S=de7d9b854db445eb37d0f33470cac6b0

最近一个月:

http://blog.rac.me.uk/2009/01/09/php-zend-session-dont-set-it-up-in-the-initalizer/

- MarkusQ

答案 2 :(得分:0)

在控制器操作中尝试以下操作:

session_write_close();
session_id($this->_getParam('PHPSESSID'));
session_start();