会话变量在页面之间丢失或使用相同的变量

时间:2011-01-02 16:04:33

标签: php session-variables

嗨,祝大家新年快乐,

我有Wamp Server(2.2.11)和PHP(5.2.9.-2)。 我知道我做错了但我没有找到自己。在我写这封电子邮件之前,我用不同的搜索项目重写了许多文档。

我使用不同的用户ID测试相同的应用程序。 当我使用“session.use_cookies = 0”时,会话变量在SAME UserID的页面之间丢失。 当我使用“session.use_cookies = 1”时,相同的会话变量使用不同的用户ID。

我的php.ini会话设置如下:

[Session]
session.save_handler = files
session.save_path = "c:/wamp/tmp"
session.use_cookies = 1
;session.cookie_secure =
;session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = 
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

我的错误是什么?感谢您现在的所有回复。

最好的问候。

1 个答案:

答案 0 :(得分:3)

如果您关闭cookie,那么PHP必须使用trans_sid方法,该方法将会话ID嵌入为查询参数和隐藏表单字段。您的trans_sid设置为0(关闭),因此关闭Cookie后,您实际上已完全禁用了会话。

至于每次获取新ID,使用类似Firebug或HTTPFox的内容来查看服务器和浏览器之间来回传输的内容。如果浏览器没有为每个请求返回会话cookie,那么PHP别无选择,只能每次都开始一个新会话。

相关问题