2009-12-13 92 views
1

我有一個Zend Session的奇怪問題。zend會話問題

我在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 

我怎樣才能修復這個問題,或者設置服務器有固定的會議文件名? 謝謝大家,

+1

不要我們展示的php.ini文件。向我們展示給您帶來麻煩的頁面中的'ini_get()'值。 –

回答

1

我想我找到了問題,因爲我使用Iframe,並在iframe中的src從另一個Zend控制器獲取內容。

當調用此控制器時,它將生成一個新的sessionId並設置新的PHPSESSID,但主頁仍使用舊的PHPSESSID。

我通過加載src從公共文件夾中的靜態php文件修復它,並且它的工作正常。

0

地址:

register_shutdown_function('session_write_close'); 

到index.php前:

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