0

すべてのコメントを上下に表示する小さなコメント システムを作成しています。問題は、送信ボタンを押すたびに、データベースに追加された最初の行が複製されることです。その結果、多くの同じコメントが表示されます。私はすでにヘッダーと終了を使用しようとしましたが、それもうまくいきませんでした。フォームアクションに関係している可能性がありますか?前もって感謝します。

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();
4

1 に答える 1

0

これを防ぐには、 POST/REDIRECT/GET パターンを使用する必要があります。

于 2013-02-24T17:39:28.857 に答える