php/mysql注释在重新加载页面时自动复制



我为我的网站创建了一个评论系统。我遇到的问题是,每当网页刷新或重新加载时,旧评论都会重复。如何停止此操作并只显示原始评论?我在下面添加了整个代码:

<pre>
require 'data/connect.php';

 if(isset($_POST['name'])&& isset($_POST['comment'])){
     $name = trim($_POST['name']);
     $comment = trim($_POST['comment']);
     if(!empty($name) && !empty($comment)){
         $insert = $connect->query("INSERT INTO 
         comments(name,comment)VALUES('$name','$comment')");
         if($insert){
             echo "Success";
         }else{
             echo "Sorry";
         }
     }
 }
 ?>
 </pre>

在此处形成

<pre>
<?php 
    if(isset($_POST['name'])&& isset($_POST['comment'])){
        $name = trim($_POST['name']);
        $comment = trim($_POST['comment']);
        if(!empty($name) && !empty($comment)){
             $query = $connect->query("SELECT name,comment FROM comments WHERE name='$name' AND comment='$comment'");
            while($row = $query->fetch_object()){
                echo "<b>",$row->name,"</b><br/>",$row->comment;
            } 
        }
    }
   ?>
</pre>

我们将感谢您的帮助。

在表单的隐藏字段中发送一个唯一的值(例如用php的uniqid()创建)。每次将表单发送到浏览器时,都要更改值。如果你从同一个浏览器中两次获得相同的值,你就知道这是一个双重帖子。

您还可以计算发布信息的哈希,并将其与数据库中已有信息的哈希进行比较,为了提高速度,您可以将每条评论的哈希存储在数据库中。

您还可以在数据库级别对此进行限制,例如,使用replace而不是insert(对于mySQL)。

最新更新