zend会话问题

时间:2009-12-13 17:14:27

标签: php zend-framework session

我和Zend Session有一个奇怪的问题。

我在zend框架工作中构建了一个网站,我使用Zend_session来存储登录用户的信息。它工作正常,但当我使用uploadify让用户上传文件到服务器时,我认为uploadify在服务器中创建新会话,我之前无法通过Zend_session_namespace访问我存储的旧会话。但在我的本地服务器上,它完美无缺。

当我检查本地服务器和服务器之间的不同之处时,我看到本地服务器中的会话文件具有固定名称,但是每次调用新的Zend_Session_namespace时,我服务器中的会话文件存储总是会更改其名称。

以下是我服务器上的php.ini设置

session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php/session /var/lib/php/session
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

以下是我的本地服务器

session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\xampp\tmp C:\xampp\tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

如何修复此问题或设置服务器有固定的会话文件名? 谢谢大家,

2 个答案:

答案 0 :(得分:1)

我认为我发现了问题,因为我使用了iframe,iframe中的src从另一个Zend控制器获取内容。

当调用此控制器时,它将生成一个新的sessionId并设置新的PHPSESSID,但主页仍然使用旧的PHPSESSID。

我通过加载src从公共文件夹中的静态php文件修复它,它的工作正常。

答案 1 :(得分:0)

添加:

register_shutdown_function('session_write_close');

到index.php之前:

$application->bootstrap()->run();