-1

用户登录,并从他们的用户名创建一个会话变量。网站上的菜单由用户状态决定——管理员看到管理员菜单,教练看到教练菜单,等等。一切正常。

当我需要$_SESSION['value']再次使用该事物将某些内容从一页传递到另一页时,事情就会崩溃。例如,教练将登录并查看他创建的游戏列表。要编辑游戏,他选择一个游戏,然后将一个变量传递到下一页,他可以在其中编辑他在前一页选择的游戏的详细信息。在第一页提交表单的那一刻(当他选择游戏时),就像我的会话被打破了,我失去了所有的菜单等。

站点上的其他表单只需将不需要$_SESSION传递任何内容的内容(用户、游戏等)添加到数据库中就可以正常工作。

有什么明显的我忽略了吗?是否有另一种将信息从一个页面传递到另一个页面的方法不会中断我的会话?

4

2 回答 2

3

这听起来像经常...

session_start ();“哦该死,我忘记在使用前打电话了$_SESSION


但是当然还有很多其他的事情可能会导致这种头痛。

  • 检查您的表单提交到的页面是否使用相同(或更低)的子域(如果您的网站www在任何地方使用但不在那里,则保存会话信息的 cookie 将无法正常工作)。

  • 检查您网站的某些部分没有使用 https,而其他部分没有使用 http

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

于 2012-10-20T20:04:25.830 回答
1

确保所有页面上都有 session_start() ;包括您的表单提交给的那个

于 2012-10-20T20:02:45.707 回答