我是php的初学者。我设计了一个网页,它运行良好,但是当我 重新加载 时 我通过提交内容发布的页面,它再次将这些文本重新发送到数据库并创建相同的记录。现在的问题是如何防止这个重发数据进入我的数据库?感谢。
答案 0 :(得分:1)
您可以对包含插入数据的消息的页面执行REDIRECT。 你可以使用这个头函数来做到这一点:
header('Location: http://www.example.com/');
您也可以重定向到其他查询。使用此代码:
header("Location: ?page=successfulsending");
然后你不需要if子句检查重发POST数据是否已发送。如果页面等于成功发送,则只显示成功的发送页面。
答案 1 :(得分:0)
您可以做的是使用ajax提交表单,或者在写入数据库完成后使用php中的标题函数重定向。
答案 2 :(得分:0)
假设您在表单中使用POST
方法,请尝试以下方法:
if( !empty( $_POST ) )
{
/*
success is a boolean value which you would put in $success on form successful submission), do a redirect
*/
if( $success )
{
header( 'HTTP/1.1 303 See Other' );
header( 'Location: http://www.example.com/index.php?message=success' );
exit();
}
}
// if the form submission has succeeded then only show your message
if( isset( $_GET[ 'message' ] ) && $_GET[ 'message' ] == 'success' )
{
?>
<h2>Thank you</h2>
<p>
Your submission is successful.
</p>
<?php
}
else
{
?>
<!-- submission is not with post method, So show error message and so on ... -->
<?php
}
这会告诉我们:
?message=success
,则会向用户显示错误消息。?message=success
附加到您拥有的网址)?message=success
,则会向他显示一条感谢信息。希望这会对你有所帮助。