我正在尝试在Zend框架应用程序中实现Flash上传程序,但我遇到了会话问题。
Flash不会发送任何Cookie标头,这就是会话丢失的原因。我正在尝试将sessionId作为post param发送,并且在我的bootstrap文件中我添加了一个session_id($ _ POST ['session_id])但是这个doenst似乎有效。
我使用MySQL表作为会话存储
我尝试调试错误,据我所知,session_id已设置,存储器从数据库返回corect数据,但似乎没有在$ _SESSION全局中正确设置。
甚至更奇怪的是它似乎可以在我的Windows计算机上运行,但不能在Linux登台服务器上运行。
答案 0 :(得分:4)
您知道在安装PHP时是否使用Suhosin吗?
我听说过few reports Suhosin对会话做了这个,在这种情况下的解决方案是禁用php.ini中的suhosin.session.cryptua
。
无论如何,如果这不是你的问题,只需要确定基础知识:
session_id()
传递给Flash中的帖子,例如SWF Upload,这可以通过将其传递到配置数组的post_params
值来完成。< / LI>
session_id($_POST['session_id])
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();