示例:
- 用户未登录
- 用户在购物车中有商品
- 用户进入/checkout页面
- 用户被重定向到/login页面
- 用户成功登录并应该被重定向回/checkout页面
在这种情况下,登录操作如何知道要将用户重定向到结账页面?我希望这在许多不同的情况下都能起作用,而不仅仅是在/checkout页面。
示例:
在这种情况下,登录操作如何知道要将用户重定向到结账页面?我希望这在许多不同的情况下都能起作用,而不仅仅是在/checkout页面。
在登录页面中使用查询字符串参数是否足够?
例如:www.example.com/Login.php?returnUrl=[someUrl]
认证成功后,用户将被重定向到查询字符串中指定的URL。
...
编辑:这是一种通用的解决方案,可能不适用于您正在使用的框架。但可以考虑一下。
我在SO1249274上发布了来自我的“My_Form”类的一小部分代码,其中包含表单中的“referrer”跟踪。那里发布的其他解决方案也可能帮助您解决问题。
我已经完成了一个简单的重定向到/login的参数'comeback'。登录页面会检查该参数,并检查引用者是否是我们的页面。如果是,它将重定向回该引用者。这个方法非常有效。否则,可以将重定向后的登录目标放在不同的参数中(无论是查询字符串、会话还是闪存消息)。
我使用会话变量来保存请求的URL。当用户成功登录后,我会检查是否设置了此会话变量。如果已设置,则将重定向到请求的URL。