我正在使用javascript和php创建一个网站。
当用户从网站注销然后如果他点击浏览器的后退按钮,那么它将进入用户登录的先前状态。
1。我该如何限制?
2。可以通过会话或其他任何方式完成吗?
答案 0 :(得分:0)
当用户单击后退按钮时,内容将从浏览器缓存加载,而不是从服务器加载。这就是它发生的原因。
据我了解,如果上一页处理来自同一页面的某些输入,则浏览器会显示网页过期通知。 这是我在php中的例子。
的login.html
<!doctype HTML>
<html>
<body>
<form action="action.php" method="post">
username <input type="text" name="uname"/>
<input type="submit" value='login' />
</form>
</body>
</html>
action.php的
<?php
if(isset($_POST["uname"])){
$user = $_POST["uname"];
session_start();
echo "welcome ". $user;
}
if(isset($_POST["logout"])){
session_unset();
}
?>
<html>
<body>
<form action="action.php" method="post" >
<input type="hidden" name="logout" />
<input type="submit" value="logout" />
</form>
</body>
</html>
如果用户在退出浏览器后点击后退按钮显示网页过期消息。
答案 1 :(得分:0)
使用sessions
的login.php:
...
$_SESSION["foo"] = $foo;
...
Logout.php:
...
unset($_SESSION["foo"]);
...
在login.php
中,您将设置名为SESSION
的{{1}}变量(因此用户已登录)。当他退出时,您将foo
名为destroy/unset
的{{1}}变量,因此在每个登录页面中,您可能需要执行SESSION
语句检查{{1}设置(登录)其他(未登录)变量,然后您可以将用户重定向到您想要的位置。
答案 2 :(得分:0)
我希望你很开心。
请检查此代码可能会对您有所帮助。
文件名:_32_session.php
<?php
session_start();
?>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Please enter your Name</label>
<input type="text" name="name">
<input type="submit" name="submit" value="Login">
<input type="submit" name="Unset" value="Logout">
</form>
</body>
<?php
if(isset($_POST['Unset']))
{
session_destroy();
header('Location:_32_session.php');
}
elseif(isset($_POST['submit']))
{
$name = $_POST['name'];
$_SESSION['name']=$name;
}
if(isset($_SESSION['name']))
{
echo "<br>";
echo "Wellcome ".$_SESSION['name'];
}
else
{
echo "<br>";
echo "Wellcome Guest";
}
?>
</html>
使用此代码并检查。
此致