PHP-防止用户使用back

PHP-防止用户使用back,php,redirect,back,Php,Redirect,Back,我环顾了一下四周,但找到的最接近的是asp.net。我想阻止用户在浏览器中按下后退按钮,或者如果可能,如果用户确实按下后退按钮,则将其链接到其他页面 第1页:登记册 第2页:注册完成 当用户按下back键时,应该将其重定向到主页(home.html) 欢迎大家帮忙 你不能阻止他使用back。时期即使您打开弹出窗口并隐藏导航按钮,也可以绕过它 您可以做的是,当用户注册时,在$\u会话中设置cookie或存储某些内容,如果用户已注册($\u会话['justRegistered']=true),您可以

我环顾了一下四周,但找到的最接近的是asp.net。我想阻止用户在浏览器中按下后退按钮,或者如果可能,如果用户确实按下后退按钮,则将其链接到其他页面

第1页:登记册 第2页:注册完成 当用户按下back键时,应该将其重定向到主页(home.html)


欢迎大家帮忙

你不能阻止他使用back。时期即使您打开弹出窗口并隐藏导航按钮,也可以绕过它


您可以做的是,当用户注册时,在
$\u会话中设置cookie或存储某些内容,如果用户已注册(
$\u会话['justRegistered']=true
),您可以在第1页上检查该值是否存在。如果该值存在且为true,则执行
标题\u位置('../home.php')

出于可用性原因,不鼓励这样做,但从技术上讲,如果用户已完成注册,则可以通过会话跟踪

如果用户已完成注册并再次打开“注册”页面,则她将被重定向


从用户的角度来看,如果back不起作用,看起来是这样的。

您也可以查看


$_SERVER['HTTP_REFERER'];

如果参考页面已注册完成,则显示主页。

当用户第一次到达查看页面时,您可以创建存储在当前会话中的变量(如果尚未定义)。如果已创建,则只需检查用户是否完成了注册过程,如下所示:

if( isset( $_SESSION[ "userRegistered" ] ) && $_SESSION[ "userRegistered" ])
    header("Location: index.php"); // go to the home page if the registration is already done
else
    $_SESSION["userRegistered"] = false;
然后,在注册过程之后,将该变量设置为true

现在,如果用户按下back键,注册页面将检查该过程是否完成,如果完成,它将重定向用户


希望这有帮助。祝你有一个美好的一天。

那些试图摆弄“后退”按钮的网站真让人讨厌。请不要这样做!
ASP.NET
解决方案使用了什么技术?你不能把它移植到PHP吗,如果是的话,为什么?我看到了这篇文章:我知道它可能是个婊子,但我确信它一定是可以解决的?剩下的唯一问题是关于已经注册的用户的问题。是否允许他们查看注册页面?如果是这样的话,整个混乱局面将变得毫无用处。如果不是,解决方案就变得毫无用处了。称自己为“婊子”并不是坚持错误问题的借口。如果我的记忆正确的话,并非所有浏览器都会发送HTTP_REFERER:)我认为这可能是最好的解决方案。因此,从技术上讲,用户从第1页转到第2页,并在第2页接收会话。如果他按下返回键,他将返回到第1页,但由于他收到的会话,他将链接到另一页?用户会看到这些吗?谢谢,这就像Snake所说的,但是带有代码。在第一页和第二页,我会设置分配一个会话,对吗?我认为会话是我最好的选择。这取决于你想要实现什么。会话处理可能会对用户产生意外的副作用。为了防止副作用,请提高网站的可用性。例如,提交后获得重定向。您还可以使
注册完成
页面具有与
注册页面
相同的URL,这通常会更好地工作,并且对用户更透明。它们会从第1页重定向到第2页,需要在那里单击任何菜单项。我只是想阻止他们使用back返回注册表表单,这样会话听起来不错。