0

基本上,我通过表单将数据提交到表格中,并希望特定用户能够删除他/她自己的帖子而不是其他人的帖子。此代码有效,但它可以让您删除任何人的帖子。我如何将其限制在您自己的范围内?

删除.php

    <?php session_start();
include('db.php');
if(isset($_SESSION['username']))
{
$id=$_GET['id'];
$username=$_GET['username'];
$query1=mysql_query("delete FROM search WHERE id='$id'");
$query2=mysql_query("delete FROM users WHERE username='$username'");
if($query1 || $query2)
{
header('location:search.php');
}
else { echo "You did not make this post";
}
}
?>
4

1 回答 1

1

将登录的用户 ID 也保存在 $_SESSION 中,例如 $_SESSION["userid"] 。所以你可以使用 WHERE 之类的

我不确定这些 mysql 表是什么。但例如。

mysql_query("DELETE FROM `post` WHERE `id`='$id' and `userid`='" . $_SESSION["userid"] . "';");

当然在用户添加新帖子的页面中,代码必须将他的“作者id”保存在mysql表中。

编辑:

并打印用户没有身份验证来删除消息,请使用 if

if(mysql_affected_rows() == 0) echo "You are not the author of this post";

插件:安全性改进,始终设置来自“不受信任的来源”($_GET、$_POST、外部文件)的整数值,例如

$id = intval($_GET["id"]);
于 2013-08-14T19:18:37.930 回答