【问题标题】:Have a delete button exaclty where I want it在我想要的地方有一个删除按钮
【发布时间】:2009-11-03 01:38:46
【问题描述】:

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

基本上,用户有一个允许其他用户制作 cmets 的配置文件。在 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>";
}
?>

我今天已经问了几次这个问题,要么得到了模糊的答案(这部分是我的错,因为我没有提供足够的示例代码,希望上面的内容就足够了)或者我已经被谈及,质疑我的能力或被告知聘请开发人员。哈哈。因此,如果您是一位更有经验的开发人员,想要与一位崭露头角的开发人员分享他们的知识,我们将不胜感激。毕竟这不是本站的目的之一吗?

如果您没有时间向我解释这一点,可以链接到一个很棒的教程或资源来帮助我找到我的方式会很棒!谢谢。

【问题讨论】:

  • 您应该更新您现有的问题 (stackoverflow.com/questions/1662337/… ?) 而不是打开一个新问题...
  • 也许你得到的回答低于标准,因为你问了一个低于标准的问题。代码格式不正确(是的,这很重要),并且没有减少到最低限度来解释您的问题(这有助于读者理解它并证明您已经付出了一些努力,而不是做一个代码转储说“修复这个”) .
  • 另外,一般来说,SO 是关于教授一般概念,而不是为您编写特定代码。因此,虽然询问并没有什么,但如果您基本上是在要求人们为您做,那么如果有时答案没有帮助,请不要感到惊讶。无论如何-澄清一下-您想知道DeleteComment.php中的内容,还是想知道上面的代码中有什么问题,或者什么?
  • 我听到了,但我认为我被误解了,我绝不是要求人们“为我做”我只是以前从未这样做过,正在寻找有关如何做的资源做。我的意思是你应该怎么学习?我必须有某种参考。那有意义吗?所以是的......我确实想知道什么是坏的,如果 DeleteComment.php 中的内容包含从我的页面中删除评论并将其标记为在我的数据库中已死的脚本,那么我就是这样,或者至少是有帮助的我可以看看的资源。谢谢。
  • @Ralph,这里的问题之一不是细节,而是不清楚你在问什么。你已经说明了你想做什么,给出了一些你写的代码,但是你没有把你想让我们回答的内容放在哪里。发生这种情况时,我们将不得不猜测您的意思 - 我们可能无法正确猜测:) 在问题的标题中以及在问题正文的最后写一个单句问题是有帮助的关注你的帖子。这应该可以帮助您在将来获得更好的响应! :)

标签: php html


【解决方案1】:

换行试试:

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

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

这样删除链接仅在个人资料属于发帖人时显示。

【讨论】:

  • 我一开始也放了这个,但我认为他只有在登录用户查看他自己的个人资料时才想要它。虽然如果问题中的措辞不正确,我不会感到惊讶。
  • 伙计,这里的人很严厉。
  • 对不起,如果我在某个地方说了什么冒犯了你的话——我不是故意在上面严厉;我只是想就如何更好地回答你未来的问题提供建议,因为你似乎运气不好。我建议阅读 ESR 的“如何提出聪明的问题”@@catb.org/~esr/faqs/smart-questions.html - 他也有点苛刻,但他在如何有效地传达你想知道的内容以及如何获得好的回应方面提出了很多要点.
  • 感谢 bdonlan,您并不苛刻,我实际上指的是这里的其他几个人。不过你帮了大忙。谢谢!
  • 您的建议是将删除按钮放在所有配置文件所有者的 cmets 上,即使配置文件所有者不是查看配置文件的人。提问者将其用作正确答案,但我不明白为什么。
【解决方案2】:

这里到底有什么问题?看起来您已经正确设置了“删除”链接,现在您需要做的就是创建 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 或类似的方式来解决此问题。

【讨论】:

  • 我认为问题在于每个人都显示了删除链接,因为他的 if 语句将同一个变量与自身进行了比较。
  • 啊...我被他问题中的所有其他废话分心了。
【解决方案3】:
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,而不是评论本身。您可能不想在这里删除整个个人资料。

【讨论】:

    【解决方案4】:
    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 - 因为您没有发布您的架构,但我无法在此处提供具体代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多