根据id变量删除帖子 - 不同的用户会话

时间:2013-05-29 17:42:54

标签: php mysql session sql-delete

解决

我有一个问题,过去两周一直在撕裂我。 我希望能够根据给定的变量删除表格中的帖子。由于用户内容不同,删除属于该特定用户的帖子非常困难。

我真正想知道的是如何从admin.php上的$ rad获取某个ID到perform_remove_time.php上的删除查询。我应该使用GET或POST或任何其他方法吗?稍后我将使用real_escape_string进行“输入清理”,并且我也知道mysqli vs mysql。我的代码并不漂亮,请耐心等待。

来自perform_remove_time.php

<?
$user_id = $_SESSION['user_id'];
$time_id = ($_GET['time_id']);

$sql = "DELETE FROM time WHERE time_id = '$time_id' AND user_id = '$user_id'";
$result = mysql_query($sql);

if($result) {
    echo "<h3>Time deleted!</h3>";
    header("location:admin.php");
} else {
    echo "Something is wrong!";
}
?> 

这是获取和显示帖子的位置 - admin.php

$user_id = $_SESSION['user_id'];
$time_id = ($_GET['time_id']);

$sql = "SELECT * FROM time WHERE user_id = '$user_id' ORDER BY time_id DESC"; 
$result = mysql_db_query("database","$sql") or die (mysql_error());

while ($rad=mysql_fetch_array($result))  {
?>
<?='Work session: '.$rad["time_id"]?>&nbsp;&#124;&nbsp;Time on projekt: <?=$rad["hours"]?><a href="perform_remove_time.php?id=<? echo $rad['time_id']; ?>"> | Delete work session</a>

也可以从页面上的admin.php进一步了解

if (!isset($_SESSION['user'])) {
    header("Location:default.php");
    die();    
}

1 个答案:

答案 0 :(得分:2)

根据我的观察,'admin.php'中的删除链接不会让您使用正确的GET参数(time_id)来执行'perform_remove_time.php',以使删除代码生效。

所以我对你的删除链接进行了一些修改:

<? echo "<a href='perform_remove_time.php?time_id=".$rad['time_id']."'> | Delete work session</a>"; ?>

该修改将使您的删除链接变为'perform_remove_time.php',并使用正确的GET参数使其正常工作


<强>更新

来自 perform_remove_time.php 的代码段对我来说很好,并且只要 $ time_id $ user_id 包含有效值就可以正常工作以及你的sql语句是否正确。现在,从您发布的代码段中,我发现 perform_remove_time.php $ time_id 将不包含任何内容,因为没有 time_id GET参数您的删除链接代码<a href="perform_remove_time.php?id=<? echo $rad['time_id']; ?>"> | Delete work session</a>,GET参数有 ID ,因此我只需将 id 更改为 time_id 即可使其正常运行。

新的删除链接代码

<? echo "<a href='perform_remove_time.php?time_id=".$rad['time_id']."'> | Delete work session</a>"; ?>