基本上我通过表单将数据提交到表中,并希望特定用户能够删除他/她自己的帖子而没有其他人的帖子。此代码有效,但它允许您删除任何人的帖子。我如何将其限制为仅限于您自己的?
Delete.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";
}
}
?>
答案 0 :(得分:1)
在$ _SESSION中也保存登录的用户ID,例如$ _SESSION [“userid”]。所以你可以使用像
这样的WHERE我不确定这些mysql表是什么。但是例如。
mysql_query("DELETE FROM `post` WHERE `id`='$id' and `userid`='" . $_SESSION["userid"] . "';");
当然,在用户添加新帖子的页面中,代码必须将他的“作者ID”保存在mysql表中。
编辑:
要打印用户没有auth删除消息,请使用if
if(mysql_affected_rows() == 0) echo "You are not the author of this post";
Addon:安全性改进,始终设置来自“不受信任的来源”的整数值($ _GET,$ _ POST,外部文件),如
$id = intval($_GET["id"]);