我有一個簡單的編碼問題。我嘗試使用文本框和分享按鈕創建頁面。瀏覽器上的刷新按鈕
當用戶單擊共享按鈕時,文本框中的文本將作爲字符串插入名爲「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 *被禁用或值接近禁用時,就會發生這種情況。 –