Php 每次我刷新网页时,添加的第一行都会被复制

Php 每次我刷新网页时,添加的第一行都会被复制,php,header,duplicates,Php,Header,Duplicates,我正在创建一个小的评论系统,它可以显示彼此上方的所有评论。问题是,每次我按下submit按钮时,数据库中添加的第一行都是重复的。这将导致显示大量相同的注释。我已经尝试使用header和exit,但也没有成功。这可能与形式动作有关吗?提前谢谢 public function comment($username, $comment) { if (!empty($username) && !empty($comment)) { $date = date("Y-m

我正在创建一个小的评论系统,它可以显示彼此上方的所有评论。问题是,每次我按下submit按钮时,数据库中添加的第一行都是重复的。这将导致显示大量相同的注释。我已经尝试使用header和exit,但也没有成功。这可能与形式动作有关吗?提前谢谢

public function comment($username, $comment)
{
    if (!empty($username) && !empty($comment)) {
        $date = date("Y-m-d H:i:s");
        if ($insert = $this->db->prepare("INSERT INTO reviews (username, comment, time) VALUES (?, ?, ?)")) {
            $insert->bind_param('sss', $username, $comment, $date);
            $insert->execute();
        } else {
            echo "something is wrong with the query";
        }
    } else {
        echo "missing fields";
    }
}

这里是用法,表单在下面,正如您所看到的,我重定向以避免重复,然后退出

$reizen = new reizen;
if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $comment  = $_POST['comment'];
    header("Location: index.php?" . $_SERVER['QUERY_STRING']);
    $reizen->comment($username, $comment);
    exit();
}
echo $reizen->retrieve();

您需要使用来防止这种情况。

您需要交换行
标题(“位置:index.php?”。$\u服务器['QUERY\u字符串])
$reizen->comment($username,$comment)谢谢,但它仍然会复制更多的想法?如果总是这样,您的注释函数会被调用两次,或者您的db有一个复制行的奇怪触发器:)