php - php按钮会话检查并允许访问
问题描述
这对我没有帮助 PHP检查会话,检查多个变量以允许访问特定页面
如果登录用户只能访问或其打印错误,我尝试使用会话 user.php 进行简单的 php CRUD,但这是 user.php 顶行
<?php include('server.php') ?>
<?php
if(!isset($_SESSION['name'])){
// header("Location:login.php");
echo "nee to login to access this page" ;
exit;
session_destroy();
}
?>
这是我的删除按钮代码
<a href="server.php?delete=<?php echo $row['id'];?>" class ="btn btn-danger" > delete </a>
当此按钮 gt 单击 ip/user.php?delete=id (从数据库中获取 id)时,当没有登录时,当键入ip/user.php?delete=20
它从数据库中删除时,我该如何停止呢?
它是我的 server.php 用于删除
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
$qry = "DELETE FROM crud WHERE id=$id" ;
mysqli_query($conn, $qry);
$_SESSION['message'] = "recoard deleted success";
$_SESSION['msg_type'] = "danger";
header('location: user.php');
}
解决方案
//on the top of page check session is set or not
session_start();
if(isset($_SESSION) && isset($_SESSION['name']))
{
if (isset($_GET['delete']))
{
$id = $_GET['delete'];
$qry = "DELETE FROM crud WHERE id=$id" ;
mysqli_query($conn, $qry);
$_SESSION['message'] = "recoard deleted success";
$_SESSION['msg_type'] = "danger";
header('location: user.php');
}
}
else
{
echo 'cant access this page you need to login first';
}
如果您仍然遇到问题,请尝试打印 $_SESSION 数组并检查 sesison 是否真的被破坏了?
如果没有,那么在 logout.php
unset($_SESSION['name']);
session_destroy();
推荐阅读
- sql - 在 SQL 的同一行中获取传出消息的回复?
- r - 当一个组有多个观察值时,组“加权”滚动平均值同时排除自己的组值
- c# - 找不到 Visual Studio 的 Live Share 源代码(Windows,而不是 VS Code 版本)
- r - ggplot2:没有具有多个 geom_point 的图例
- javascript - 限制css中的最大页面长度
- bash - 将文本添加到 gzip 文件的开头和结尾
- r - 由于“类别太多”,R 中的 RandomForest 出错
- django - 如何在 django modelformset factory 中传递额外的 kwargs 来形成?
- db2 - 我使用什么 REST API load_source 和 params 将 CSV 数据从 IBM COS S3 加载到 IBM Db2 on Cloud
- powershell - 对象是空的吗?