我有一个简单的编码问题。我尝试使用文本框和分享按钮创建页面。浏览器上的刷新按钮
当用户单击共享按钮时,文本框中的文本将作为字符串插入名为“posts”的数据库表中。
我使用下面的代码。
<?php
if(isset($_POST['share']))
{
$status = $_POST['status'];
$res = mysql_query("insert into `posts`(postid,username,post,pointscollected) values('','$username','$status','')");
if($res)
echo "<script type='text/javascript'>alert('Posted successfully')</script>";
else
echo "<script type='text/javascript'>alert('some error')</script>";
}
else
{
?>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post">
Status : <input type = "text" name ="status">
<input type = "submit" name ="share">
</form>
<?php
}
这个解决方案工作正常,但存在当用户刷新该页面的问题。浏览器将显示一个消息窗口,要求重新发送信息,该信息将再次提交该表格。然后同一条目在表中两次。
我希望用户在提交后留在同一页面。但是页面刷新不应该显示消息窗口或再次发送信息。
在此先感谢!
此解决方案正常工作。谢谢! – sumit
@sumit欢迎:) –
如果'header(...);'放在输出之前会更好。虽然它可能以当前形式工作,但如果缓冲区在'header(...);'之前被刷新,它可能会中断。例如,当某人在''内部添加更多行时,或者仅当* output_buffering *被禁用或值接近禁用时,就会发生这种情况。 –