【问题标题】:zend session problemZend 会话问题
【发布时间】:2010-12-26 04:58:26
【问题描述】:

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

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

当我检查本地和服务器之间的差异时,我看到本地服务器中的会话文件有一个固定的名称,但是每次我调用 new 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

我怎样才能解决这个问题或设置服务器有固定的会话文件名? 谢谢大家,

【问题讨论】:

  • 不要向我们展示 php.ini 文件。向我们展示给您带来麻烦的页面中的 ini_get() 值。

标签: php zend-framework session


【解决方案1】:

添加:

register_shutdown_function('session_write_close');

到 index.php 之前:

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

【讨论】:

    【解决方案2】:

    我想我找到了问题所在,因为我使用的是 iframe,而 iframe 中的 src 从另一个 Zend 控制器获取内容。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多