php - 注销后,我也可以通过单击浏览器的后退按钮打开页面
问题描述
正如我上面问的,即使在注销后如何不打开页面?我检查了很多问题和解决方案,但没有一个对我有用,恐怕我可能做错了什么不知道。但这个问题是因为我在以前的解决方案中读到的浏览器缓存。请帮助我解决任何问题。
我将在下面发布我的代码:
会话.php
<?php
session_start();
if(!isset($_SESSION['id']))
{
header("Location: index.php");
}
$userid = $_SESSION['id'];
include_once 'includes/connection.php';
$stmt = $conn->prepare("SELECT * FROM admin");
$stmt->execute();
$dets = $stmt->fetch();
?>
登录.php
session_start();
require_once 'includes/connection.php';
if(isset($_POST['uname']))
{
$user_name = $_POST['uname'];
$password = md5(trim($_REQUEST['password']));
try
{
$stmt = $conn->prepare("SELECT * FROM admin WHERE BINARY username=:username");
$stmt->bindParam(':username', $user_name, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch();
$count = $stmt->rowCount();
if($count > 0)
{
if($row['password']==$password)
{
$_SESSION['id'] = $row['id'];
$_SESSION['username'] = $row['username'];
$_SESSION['email'] = $row['email'];
echo "1"; // log in
}
else
{
echo "Username or Password does not exist."; // wrong details
}
}
}
catch(PDOException $e)
{
die("ERROR: Could not prepare/execute query: " . $e->getMessage());
}
}
?>
注销.php
<?php
session_start();
session_destroy();
header("Location: index.php");
?>
解决方案
使用 session_destroy() 后,会话在幕后被销毁。由于某种原因,这不会影响 $_SESSION 中的值,该值已为此请求填充,但在以后的请求中它将为空。
如果您愿意,您可以手动清除 $_SESSION ($_SESSION = [];)。
推荐阅读
- python - Append 删除 Python 中的最后一个索引
- c# - System.ArgumentNullException:“值不能为空。参数名称:实体”
- python - 每行numpy的非对角线元素的平均值
- oculus - 如何从统一脚本触发 Oculus dash?
- python - 在 Python 的类中使用字典
- c - 如何通过链接列表节点将信息保存到结构?
- python - TypeError:“float”和“NoneType”的实例之间不支持“<”
- nginx - 使用 SSL 的两个 Nginx 反向代理
- python - 带有多级解析器/子解析器的 Argparse 可选参数
- git - Git:可以在 .gitconfig 中引用来自 .gitconfig 的变量吗?