PHP会话数据没有简单存储

时间:2012-04-05 12:31:42

标签: php session

PHP会话数据仅存储一次,无法更新!

请帮助我存储会话,但无法更新会话数据:

请考虑以下示例代码:

<?php

session_start();


header("Cache-control: private");


   $_SESSION['counter']++;

   echo $_SESSION['counter'];

   session_write_close();

?>

第一次调用会话文件C:\ Window \ Temp \ sess_fs3r6tfmoc2tpv9ggnv8542ib2时,包含正确的数据: counter|i:1; 并且还设置了session_cookie,其中包含相同的sessionID:fs3r6tfmoc2tpv9ggnv8542ib2

当我再次跑它时,计数器不会增加! 文件\ Temp \ sess_fs3r6tfmoc2tpv9ggnv8542ib2未获得更新。 但是sessionID是正确的。

请帮助,在我看来配置问题。

I Use: 
PHP Version 5.3.10
Windows 7
Microsoft-IIS/7.5
with Zend Extension     220090626 

Session Setting were all default:
Session Support     enabled
Registered save handlers     files user
Registered serializer handlers     php php_binary wddx

Directive    Local Value    Master Value
session.auto_start    Off    Off
session.bug_compat_42    Off    Off
session.bug_compat_warn    Off    Off
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    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    C:\Windows\Temp    C:\Windows\Temp
session.serialize_handler    php    php
session.use_cookies    On    On
session.use_only_cookies    On    On
session.use_trans_sid    0    0

1 个答案:

答案 0 :(得分:2)

关于session_write_close()@ http://www.php.net/manual/en/function.session-write-close.php#107945

的第一个用户评论

“从Ajax页面调用PHP脚本时要小心session_write_close:这不会”最终化“会话数据写入,但事实上它会重置它!”

只需删除该行;)