我使用Codeigniter(这可能是我的问题的原因),我通过几个cookie和会话变量识别用户。当用户想要注册但被检测到已经拥有基于他们的cookie的帐户(例如,其他人在他们的计算机上注册)时,这是在提交注册表单后控制器中当前发生的事情:
问题:删除会话和/或Cookie只会在下一页加载时发生,这意味着我向用户4签名(覆盖当前用户4)但它成为用户5(谁拥有下一页加载后,DB中没有任何内容。正确的行为是立即删除,这样当我创建新的会话+ cookie时,它会正确地为用户#5创建帐户。
如何立即删除会话变量+ Cookie,而不是在下一页加载?
更新: 经过一些测试后会发生这种情况:在下一页加载之前不会删除cookie;会话变量会立即删除,但在下一页加载之前不会设置。因此需要修复2个不同的问题,以便它们立即被删除并重新设置。
答案 0 :(得分:0)
detect user
delete cookies
optionally you could create new session data right here
redirect to some page of your choosing :)
这样它会正确地拾取它(并创建新数据)
答案 1 :(得分:0)
最后,我更改了我的脚本以直接创建新用户,而不是依靠cookie或会话来识别用户,这意味着我不必担心何时删除cookie或会话变量。