0

我使用 Codeigniter(这可能是我的问题的原因),我通过几个 cookie 和会话变量来识别用户。当用户想要注册但根据他们的 cookie 检测到已经有一个帐户时(例如,其他人在他们的计算机上注册了),这是在提交注册表单后控制器中当前发生的情况:

  • 如果检测到用户 #4 已经有一个帐户但仍然注册:删除会话和 cookie,然后创建新的用户识别会话和 cookie 作为用户 #5 并继续使用数据库内容。
  • 否则以用户 #4 的身份继续处理数据库内容。

问题:删除会话和/或 cookie 仅在下一页加载时发生,这意味着我注册用户 4(覆盖当前用户 4)但它会在下一次时成为用户 5(在数据库中没有任何内容)页面加载。正确的行为是立即删除,这样当我创建新会话 + cookie 时,它​​会正确地为用户 #5 创建帐户。

如何立即删除会话变量 + cookie,而不是在下一页加载时?

更新:经过一些测试后会发生这种情况:在下一页加载之前不会删除 cookie;会话变量会立即删除,但不会在下一页加载之前设置。所以要修复 2 个不同的问题,以便它们都被立即删除并重新设置。

4

2 回答 2

0

最后我改变了我的脚本直接创建一个新用户,而不是依赖cookies或session来识别用户,这意味着我不必担心cookies或session变量何时被删除。

于 2013-06-04T21:26:57.007 回答
0
detect user
delete cookies
    optionally you could create new session data right here
redirect to some page of your choosing :)

这样它就会正确地拾取它(并创建新数据)

于 2013-06-04T20:00:08.923 回答