当按下浏览器后退按钮时,不允许在他登录后返回


donot allow to go back after he logged in when pressing browser back button

a.php在这里,我将我的状态保存为登录 当我登录时我转到 B.php所以当我尝试返回 A 时.php如果我的状态已登录,它会检查我的状态以将我定向到 B.php

再次
<?php 
session_start();
$_SESSION['login_state'];
?>
<?php
if($_SESSION['login_state'] == "loged in")
header("location:b.php");
?>
<html>
<body>
<form name="form1" method="post" action="b.php">
username :<input type="text"/>
</br>
submit :<input type="submit"/>
</form>
</body>
</html> 

乙.php在这里,当我按下链接注销时,我有一个函数的链接,我调用该函数将我的状态更改为注销并将我的状态定向到 A.php所以当 A.php 检查我的状态时,它没有登录,所以它不会再次将我定向到 B.php。

<script type="text/javascript">
function logout()
{
<?php
$_SESSION['login_state']="loged out";
header("location:a.php");
?>
}
</script>
<?php
session_start();
$_SESSION['login_state']="loged in";
echo $_SESSION['login_state'];
?>
<html>
<body>
<a href="#" onClick="logout()">logout</a>
</body>
</html>

我想通过显示警报来阻止用户(您想注销还是想在离开此页面之前保存您的工作)我该怎么做?

我不确定你想实现什么,因为你的英语很笨重......

你不能在logout()函数中混合javascript和php。但是有一个解决方案:

  1. 制作名为"注销.php"的新文件
  2. 把你的JavaScript logout()函数内容放进去
  3. 然后修复您的 html: <a href="logout.php">logout</a>

然后,你最初的问题。您可以使用 .onbeforeunload

window.onbeforeunload = function(e) {
  return 'Do you want to log out or do you want to save you work before leaving this page?';
};

请记住,并非所有浏览器都支持返回文本。