将数据插入数据库一次,而不是多次插入


insert data into the database once and not come several times

这就是我创建评论系统的方法,因为

这就是我如何使用header来"重新加载"页面,只在将信息放入数据库时使用。

当我将信息发送到数据库中时,我单击f5,然后再次将其放入数据库。就像是垃圾邮件。

if ($stmt = $this->mysqli->prepare('INSERT INTO fms_kommentarforum (getid, brugerid, kommentar) VALUES (?, ?, ?)')) { 
$stmt->bind_param('sss', $getid, $brugerid, $kommentar);
$getid = $_GET['id']; 
$brugerid = $_SESSION["id"];
$kommentar = $_POST["beskedinfo"];
$stmt->execute();
   //reload the page again
   ob_start();
   header("Location: http://www.blabla.dk/forum/" . $_GET["id"] . "/" . $_GET["url"] . "/");
   ob_end_flush();
$stmt->close();
}

添加网址,看起来像一些在这里blabla.com/forum/1/test---ae oe aa aa/#那是我在中向数据库发送信息的时候

我希望#不要在它出现的时候出现。

在我写的action="#"

的表格中

您可以使用303 HTTP状态代码将客户重定向到同一个uri。

http://en.wikipedia.org/wiki/HTTP_303

因此客户端可以在不再次发送post请求的情况下点击F5。

header("HTTP/1.1 303 See Other");
header("Location: http://example/post");

我看到的一个技巧基本上是向GET/POST数据添加一个随机数,并在进行更新时记住它们。如果您使用以前看到的随机数收到第二个更新请求,则您知道它来自F5,并跳过更新。

编辑:请参阅:例如:这个SO问题和这个网页。