在我想要的地方准确删除按钮

时间:2009-11-03 01:38:46

标签: php html

并且它与'确认评论已删除页面相关联。理想情况下,我希望它被删除并重新加载页面,然后将其发送到标记为已死的数据库。

基本上,用户有一个允许其他用户发表评论的个人资料。在PHP的帮助下,我希望能够在用户查看他们的个人资料时显示删除按钮。

这是我到目前为止所做的:

$query = "SELECT * FROM `ProfileComments` WHERE `ToUserID` = '".$prof->id."' ORDER BY `date` DESC, `time` DESC LIMIT 10";

$request = mysql_query($query,$connection);

while($result = mysql_fetch_array($request)) {

    $poster = new User($result['FromUserID']);

    echo "<div id='CommentProfile'>";
    echo "<div id='CommentPhotoProfile'>";
    echo "<a href='http://www.blahblah.org/Profile.php?id=".$poster->id."'>";
    echo "<img src='" . $poster->img('mini') . "' border='0'/>";
    echo "</a>";
    echo "</div>";
    echo "<div id='ProfileCommentBody' class= 'round_10px'>";
    echo "<div id='CommentNameProfile'>";
    echo "<div class='ProfileCommentTail'>&nbsp;</div>";
    echo "<a href='http://www.blahblah.org/Profile.php?id=".$poster->id."'>";
    echo $poster->first_name. " ". $poster->last_name. " <span style='font-weight:normal'>says...</span>";
    echo "</a>";
    echo "</div>";
    echo stripslashes(nl2br($result['commentProfileBody']));
    echo "<div id='CommentInfoProfile'>";
    echo date('M d, Y',strtotime($result['date']));
    echo " at " . date('g:i A',strtotime($result['time']));
    if ($prof->id == $prof->id)
        echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>";
    echo " delete";
    echo "</a>";
    echo "</div>";
    echo "</div>";
    echo "</div>";
}
?>

我今天已经多次问过这个问题并且得到了模糊的答案(这部分是我的错,因为我没有提供足够的示例代码,希望上面的内容已经足够了)或者我已经谈到了,质疑我的问题能力或被告知雇用开发人员。哈哈。因此,如果您是一位经验丰富的开发人员,他希望与即将到来的开发人员分享他们的知识,那将非常感激。毕竟这不是这个网站的目的之一吗?

如果您没有时间向我解释这一点,那么可以帮助我找到自己的方式的精彩教程或资源的链接将是惊人的!谢谢。

4 个答案:

答案 0 :(得分:2)

尝试更改行:

if ($prof->id == $prof->id)

if ($poster->id == $prof->id)

以便删除链接仅在个人资料属于海报时显示。

答案 1 :(得分:1)

这究竟是什么问题?看起来您已经正确设置了“删除”链接,现在您只需创建DeleteComment页面即可。在其中,你会做这样的事情:

$id = $_GET['id']; // make sure to sanitize this variable
mysql_query("DELETE FROM ProfileComments WHERE id=$id");
header('location:'.$_SERVER['REQUEST_URI']); // redirect to last page

其他人也可能会建议你使用POST而不是GET,因为我不想进入这里(蜘蛛可能会“点击”它)。而你可能想确保用户登录或类似的东西。并且REQUEST_URI或者不可靠,因为它取决于客户端的浏览器向您发送该信息。您可以通过在会话中保存最后一个URL或类似的东西来解决这个问题。

答案 2 :(得分:0)

if ($prof->id == $prof->id)
    echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>";

这应该总是如此。

看起来像你需要

if ($logged_in_user->id == $prof->id)
    echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>";

我还应该注意,您传递到删除链接的ID是配置文件的ID而不是注释本身。你可能不想在这里删除整个个人资料。

答案 3 :(得分:0)

if ($prof->id == $prof->id)

这将永远是真的。你的意思是:

if ($prof->id == $poster->id)

我假设$prof是登录用户的个人资料。如果不是这种情况,你需要在这里使用别的东西! (如果在代码示例中不清楚,请说明变量是什么,它将帮助我们帮助您)

请务必在DeleteComment.php中重新检查 - 只是因为没有按钮并不意味着一个有进取心的黑客不会为自己创造一个!

此外,

echo "<a href='http://www.blahblah.org/DeleteComment.php?id=".$prof->id."'>";

如果我正确理解您的变量,$prof是登录的用户个人资料;不是评论。所以这无法指定需要删除的评论;只有当前登录的用户。你可能想要传递评论的ID - 因为你没有发布你的模式,我不能在这里给出具体的代码。