现在,我已经有了一个可以删除网络帖子的PHP脚本。但是现在,如果他们登录,每个人都可以删除每个帖子。我想将这个限制为帖子的作者,因此他们只能删除自己的帖子。我怎么能这样做?
这就是我的 delete.php 的样子:
<?php
session_start();
if (empty($_SESSION['user_id'])) {
header('Location: index.php');
exit;
}
$user_id = $_SESSION['user_id'];
include "connect.php";
if(isset($_GET['id'], $user_id))
{
mysqli_query($GLOBALS["___mysqli_ston"], "DELETE FROM posts WHERE id=".$_GET['id']);
mysqli_query($GLOBALS["___mysqli_ston"], "UPDATE users SET posts = posts - 1 WHERE id='$user_id' ");
header("location: index.php");
}
mysqli_connect();
?>
在显示帖子的主页面中,按钮显示如下:
<a href=\"delete.php?id=" . $postid . "\"> Delete </a>
它找到了postid本身。我有两个表,用户和帖子。两者都有列user_id,因此post表确实获得与users_id相同的user_id。
答案 0 :(得分:0)
首先,您的代码不安全!
请记住,在不逃避用户输入时,每个人都会弄乱您的系统!您应该阅读有关here
的更多信息如果您正在通过会话检查删除用户是否已登录,则您现在必须从删除帖子中获取数据(在$ _GET中查找具有给定帖子ID的帖子[&#39; id&# 39;]( ESCAPE IT !!! ))在表格#34;帖子&#34;中。正如你所说,你的桌子&#34;帖子&#34;包含字段&#34; user_id&#34;如果你得到这个值,你可以简单地用$ _SESSION [&#34; user_id&#34;]
给出的id来比较它。