是否有任何关于在登录到您的网站后如何将用户返回到其原始页面的“最佳实践”,特别是在 PHP 中?例如,如果我在未登录的情况下查看 StackOverflow 问题,如果我登录,您将如何确保我返回此问题?
根据我的研究,似乎很多建议都围绕着 $_SERVER['HTTP_REFERER'] 变量。基本上,您记下引用者并将其存储在会话中,然后在完成后重定向回该页面。
问题在于 HTTP_REFERER 充其量是不可靠的。
这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。
— [ http://php.net/manual/en/reserved.variables.server.php]
对引用者进行的任何编辑以重定向到站点的其他区域都将通过例行权限检查来处理。如果引用者被屏蔽掉,那么简单地将用户重定向到网站的主页而不是他们来自的页面可能是可以接受的。不过,这似乎是不必要的用户敌对,我希望有更好的方法来处理这个问题。