我设计了一个网站,子菜单中有一个注销选项。代码是HTML格式,在这里: -
p:graphicImage
现在这成功地将我带回了adminlogin.php页面,但之后每当我按下Web浏览器顶部的后退按钮时,我会在按下注销按钮之前再次转到该页面。但是如果我按下退出按钮就不会发生这种情况,那么除非我再次登录,否则无法返回该页面
答案 0 :(得分:1)
退出后避免浏览器后退按钮:
您必须添加每个页面的顶部,以检查用户是否已登录 如果没有,则应将它们重定向到登录页面:
示例:强>
<?php
if(!isset($_SESSION['username']) && !isset($_SESSION['useremail'])){
header("Location: login.php"); // redirect to login page or index page if email and username is not set in session
}
?>
现在在退出页面上,只需取消设置
username
和useremail
会话变量,并销毁会话或(Cookies)。你设定了什么。
示例:强>
<?php
if(isset($_GET['logout'])) {
session_start();
session_destroy();
unset($_SESSION["username"]);
unset($_SESSION["useremail"]);
header('Location: index.php');
exit;
}
?>
用户登录后所有页面的工作代码:
Home.php
about.php
contact.php
等。
示例:
<?php
// After User Login and come to home page.
require 'database_conn.php'; // Connection
session_start(); // Session start
?>
<?php
// If User is Not Login Then Redirect to `index` Page Automatically
//if(!isset($_SESSION['username']) && !isset($_SESSION['useremail']))
if(!isset($_SESSION['useremail'])){
header("Location: index.php");
// Redirect to index page if email is not set in session
}
?>
工作代码注销用户:
Logout.php
示例:
<?php
// After User Click On Logout page.
require 'database_conn.php'; // Connection
session_start(); // Session start
?>
<?php
if(isset($_POST['logout'])) {
if(isset($_SESSION['useremail'])){
unset($_SESSION["useremail"]);
session_destroy();
session_unset();
header('Location: index.php');
}
}
?>
简单退出按钮
<a href="logout.php">Logout</a>
<强> logout.php 强>
<?php
if(isset($_GET['logout'])) {
session_start();
session_destroy();
header('Location: login.php');
exit;
}
?>
或者如果Cookie设置则
<?php
if(isset($_GET['logout'])) {
unset($_COOKIE['access_token']);
header('Location: login.php');
exit;
}
?>
答案 1 :(得分:0)
您需要会话才能执行此操作。 所以基本上当你登录时,你需要设置会话变量,如
$_SESSION['loged_in']=1; // set session with desired name
在注销时,您需要销毁此会话值
unset($_SESSION["loged_in"]); // unset specific session
或
session_destroy(); // destroy al
最重要的部分是您需要在每个页面上检查此会话值,而不希望用户登录。例如
if(isset($_SESSION['loged_in']) && !empty($_SESSION['loged_in'])) {
redirect('login.php'); // redirect to log in page
}