会话中断表单提交

时间:2012-10-20 19:58:23

标签: php session

用户登录,并根据用户名创建会话变量。网站上的菜单由用户状态决定 - 管理员查看管理菜单,教练查看教练菜单等。一切正常。

当我需要再次使用$_SESSION['value']这个东西从一个页面传递到另一个页面时,事情就会崩溃。例如,教练将登录并查看他创建的游戏列表。为了编辑游戏,他选择一个游戏,然后将变量传递到下一页,在那里他可以编辑他在前一页上选择的游戏的细节。表格在第一页上提交的那一刻(当他选择游戏时),就像我的会话被打破,我丢失了所有的菜单等。

网站上的其他表单只是简单地将数据添加到数据库(用户,游戏等),而不需要$_SESSION来传递任何正常工作。

我有什么明显的东西可以忽略吗?是否有另一种方法可以将信息从一个页面传递到另一个页面而不会破坏我的会话?

2 个答案:

答案 0 :(得分:3)

这听起来像是经常......

“哦,狗屎,我忘了在使用session_start ();之前致电$_SESSION


但当然还有许多其他因素可能导致这种头痛。

  • 检查您的表单所提交的页面是否使用相同(或更低级别)的子域名(如果您的网站在任何地方使用www但不在那里,那么持有会话信息的Cookie会赢得'做它的工作)。

  • 检查您是否在网站的某些部分使用https而在其他部分使用http

  • 确保会话cookie的TTL(实验)足够长,以便用户有时间进行编辑(这通常不是问题,我还没有遇到默认情况配置)

答案 1 :(得分:1)

确保所有网页上都有session_start();包括你的表格提交给

的那个