亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刷新頁面以避免提交的最佳方法

刷新頁面以避免提交的最佳方法

Cats萌萌 2019-10-30 14:36:27
我認為這個問題經常發生在Web應用程序開發中。但是,我將嘗試詳細解釋我的問題。我想知道如何更正此行為,例如,當我有如下代碼塊時:<?    if (isset($_POST['name'])) {        ... operation on database, like to insert $_POST['name'] in a table ...        echo "Operation Done";        die();    }?><form action='page.php' method='post' name="myForm">    <input type="text" maxlength="50" name="name" class="input400" />    <input type="submit" name="Submit" /></form>提交表單后,數據將插入數據庫中,并生成消息“完成操作”。然后,如果刷新頁面,則數據將再次插入數據庫。如何避免這個問題?任何建議將不勝感激:)
查看完整描述

3 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

創建動作后不要顯示響應;操作完成后重定向到另一個頁面。如果有人刷新,則他們刷新的是您重定向到的GET請求頁面。


// submit

// set success flash message (you are using a framework, right?)

header('Location: /path/to/record');

exit;


查看完整回答
反對 回復 2019-10-30
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

我遇到了類似的問題。我需要向用戶顯示POST的結果。我不想使用會話,也不想使用URL中的結果進行重定向(這很安全,我不希望它被意外添加書簽)。我找到了一個非常簡單的解決方案,該解決方案適用于其他答案中提到的情況。


成功提交表單后,請在頁面上添加以下Javascript:


<script>history.pushState({}, "", "")</script>

它將當前URL推送到歷史記錄堆棧。由于這是歷史記錄中的新項目,因此刷新不會重新發布。


查看完整回答
反對 回復 2019-10-30
  • 3 回答
  • 0 關注
  • 601 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號