Php 登录后将用户重定向回最初需要的URL

Php 登录后将用户重定向回最初需要的URL,php,zend-framework,url,redirect,login,Php,Zend Framework,Url,Redirect,Login,例如: 用户未登录 用户的购物车中有商品 用户转到/签出 用户被重定向到/login页面 用户成功登录,应重定向回/签出页面 在这种情况下,登录操作如何知道将用户重定向到签出?我希望它能在许多不同的情况下工作,而不仅仅是/checkout。登录页面中的查询字符串参数就足够了吗 例如:www.example.com/Login.php?returnUrl=[someUrl] 身份验证成功后,用户将被重定向到查询字符串中指定的url 编辑:这是一个通用的解决方案,考虑到您使用的框架,它可能不是一个

例如:

  • 用户未登录
  • 用户的购物车中有商品
  • 用户转到/签出
  • 用户被重定向到/login页面
  • 用户成功登录,应重定向回/签出页面

  • 在这种情况下,登录操作如何知道将用户重定向到签出?我希望它能在许多不同的情况下工作,而不仅仅是/checkout。

    登录页面中的查询字符串参数就足够了吗

    例如:www.example.com/Login.php?returnUrl=[someUrl]

    身份验证成功后,用户将被重定向到查询字符串中指定的url


    编辑:这是一个通用的解决方案,考虑到您使用的框架,它可能不是一个选项。但我需要考虑一下。

    < P>我从我的“MyIrFrm”类中张贴了一段代码,它在表单上内置了“Realror”跟踪。这里发布的其他解决方案也可能帮助您解决问题。

    我已经完成了重定向到/login的操作,其中使用了一个简单的参数“comeback”。Login会看到参数,并检查referer以查看它是否是我们的一个页面。如果是,它将重定向回该引用程序。效果非常好。否则,可以在登录后将重定向的“目的地”放在不同的参数中(无论是查询字符串、会话还是flashmessage)

    我使用会话变量保留请求的URL。当他成功登录时,我会检查是否设置了此会话变量。如果设置了,我将重定向到请求的URL。

    感谢您提供的解决方案,但我更希望它不作为查询字符串作为URL的一部分,只是为了维护和清洁……如果您不希望它成为URL的一部分,则需要将其存储在会话中。POST也可以,但我不推荐。是的,将其存储在会话/POST中也是一种可行的替代方法。stackoverflow似乎使用相同的方法登录到upvote/downvoteSimilar:Hi,你找到了一个很好的解决方案吗?我不幸地发现HTTP\U REFERER对我来说总是空白的?我从来没有遇到过依赖HTTP\U REFERER的问题,也许是服务器配置问题?