删除用户帖子,限制删除帖子的作者

时间:2016-10-13 19:37:27

标签: php

现在,我已经有了一个可以删除网络帖子的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。

1 个答案:

答案 0 :(得分:0)

首先,您的代码不安全!

请记住,在不逃避用户输入时,每个人都会弄乱您的系统!您应该阅读有关here

的更多信息

如果您正在通过会话检查删除用户是否已登录,则您现在必须从删除帖子中获取数据(在$ _GET中查找具有给定帖子ID的帖子[&#39; id&# 39;]( ESCAPE IT !!! ))在表格#34;帖子&#34;中。正如你所说,你的桌子&#34;帖子&#34;包含字段&#34; user_id&#34;如果你得到这个值,你可以简单地用$ _SESSION [&#34; user_id&#34;]

给出的id来比较它。