Php 有没有办法使用未设置的会话
如果单击“删除”按钮,我在浏览器上看不到任何成功消息。 我再次注意到,我注释掉了unset函数Php 有没有办法使用未设置的会话,php,session,Php,Session,如果单击“删除”按钮,我在浏览器上看不到任何成功消息。 我再次注意到,我注释掉了unset函数 unset($_会话['message']) unset($_SESSION['msg_type']) 该消息将显示在浏览器上,但问题是即使我刷新我的页面,该消息仍将显示,请说明现在可能出现什么问题 My codes: if(isset($_GET['delete'])){ $id = $_GET['delete']; $db->query("DELETE FROM
unset($_会话['message'])代码>
unset($_SESSION['msg_type'])代码>
该消息将显示在浏览器上,但问题是即使我刷新我的页面,该消息仍将显示,请说明现在可能出现什么问题
My codes:
if(isset($_GET['delete'])){
$id = $_GET['delete'];
$db->query("DELETE FROM music WHERE id=$id") or die($db->error());
$_SESSION['message'] = "Rocord has been deleted!";
$_SESSION['msg_type'] = "danger";
header("location: music.php");
}
//display message
<?php
session_start();
if(isset($_SESSION['message'])):?>
<div class="alert alert-<?=$_SESSION['msg_type']?>">
<?php
echo $_SESSION['message'];
unset($_SESSION['message']);
unset($_SESSION['msg_type']);
?> </div>
<?php endif ?>
我的代码:
如果(isset($\u GET['delete'])){
$id=$\u GET['delete'];
$db->query(“从id=$id的音乐中删除”)或die($db->error());
$\会话['message']=“Rocord已被删除!”;
$\会话['msg\u type']=“危险”;
标题(“location:music.php”);
}
//显示消息
您是否启动了会话?
添加session_start()代码>如果还没有,则在文件顶部
您的代码易于SQL注入,并且您没有过滤或验证传入的数据。
如果在这里您需要一个数值,例如5,为什么不过滤它或将其类型转换为int,以确保这是您真正想要的值。如果它是一个危险的SQL而不是一个数值呢
$id = (int) $_GET['id'];
OR
$id = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);
类型转换或筛选会将任何非数值转换为0
$db->query("DELETE FROM music WHERE id=$id")
您不应该像那样在SQL中输入值。
请尝试将代码更改为
<?php
session_start();
if(isset($_GET['delete'])){
$id = $_GET['delete'];
$db->query("DELETE FROM music WHERE id=$id") or die($db->error());
$_SESSION['message'] = "Rocord has been deleted!";
$_SESSION['msg_type'] = "danger";
header("location: music.php");
}
?>
<?php if(isset($_SESSION['message'])) {?>
<div class="alert alert-<?php echo $_SESSION['msg_type'];?>">
<?php
echo $_SESSION['message'];
unset($_SESSION['message']);
unset($_SESSION['msg_type']);
?>
</div>
<?php } ?>
另一方面,请确保$id仅对经过身份验证的用户可用,否则有人可以删除其他人的数据。在PHP中是否启用了错误日志记录?当包含代码时,可能会发生错误?您是否在页面中启动会话?否,但我将如何启用错误记录是的,我启动会话,它位于我的php代码“how will enable error logging”的顶部…只需在Google中键入“php enable error logging”。说真的,这不是你需要问的问题,它有很好的记录