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

Php 页面之间的会话变量丢失或使用相同的变量,php,session-variables,Php,Session Variables,大家好,祝大家新年快乐 我有带有PHP(5.2.9.-2)的Wamp服务器(2.2.11)。 我知道我做错了什么,但我没有发现自己。在我写这封电子邮件之前,我用不同的搜索项删除了许多文档 我用不同的用户ID测试同一个应用程序。 当我使用“session.use_cookies=0”时,相同用户ID的页面之间会丢失会话变量。 当我使用“session.use_cookies=1”时,相同的会话变量用于不同的用户ID My php.ini的会话设置如下所示: [Session] session.sa

大家好,祝大家新年快乐

我有带有PHP(5.2.9.-2)的Wamp服务器(2.2.11)。 我知道我做错了什么,但我没有发现自己。在我写这封电子邮件之前,我用不同的搜索项删除了许多文档

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

My 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"
我犯了什么错?感谢您从现在起的所有回复


致以最诚挚的问候。

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


至于每次获取新ID,请使用Firebug或HTTPFox之类的工具来查看服务器和浏览器之间的交互情况。如果浏览器没有随每个请求返回会话cookie,PHP别无选择,只能每次启动一个新会话。

如果关闭cookie,则PHP必须使用
trans\u sid
方法,该方法将会话ID嵌入为查询参数和隐藏表单字段。您的trans_sid设置为0(关闭),因此在关闭Cookie的情况下,您实际上完全禁用了会话


至于每次获取新ID,请使用Firebug或HTTPFox之类的工具来查看服务器和浏览器之间的交互情况。如果浏览器没有在每次请求时返回会话cookie,PHP别无选择,只能每次启动一个新会话。

确保在所有这些页面的顶部都有session_start()。仅供参考,“WAMP”是一个流行词,而不是实际的服务器。它代表了Windows作为操作系统、Apache作为Web服务器、MySQL作为DBMS和PHP作为服务器端脚本平台的流行堆栈。所以你真的应该说“我有Apache2.2.11和PHP(5.2.9.-2)”。这将有助于避免将来的误解。请确保在所有这些页面的顶部都有session_start()。仅供参考,“WAMP”是一个流行语,而不是实际的服务器。它代表了Windows作为操作系统、Apache作为Web服务器、MySQL作为DBMS和PHP作为服务器端脚本平台的流行堆栈。所以你真的应该说“我有Apache2.2.11和PHP(5.2.9.-2)”。这将有助于避免将来的误解。