php如何防止form重複提交
#引入cookie機制來解決(推薦學習:PHP編程從入門到精通)
使用者提交表單到後端,在Cookie 中做標記,指定時間內重複提交無效。但是使用者禁用 Cookie 這個方法就失效了。
<?php if (isset($_COOKIE['formFlag'])) { exit('error'); } // 处理数据 // 30秒内重复提交无效 setcookie('formFlag', time(), time() + 30);
Session
展示表單頁面的時候,產生隨機數,同時儲存在 Session 中以及表單隱藏域中。第一次提交的時候,比較成功刪除 Session 中的值。
利用PHP的Session功能,也能避免重複提交表單。 Session保存在伺服器端,在PHP運行過程中可以改變Session變量,下次訪問這個變量時,得到的是新賦的值,所以,可以用一個Session變量記錄表單提交的值,如果不匹配,則認為是用戶在重複提交。
<?php if (!isset($_SESSION['formFlag']) || $_POST['formFlag'] != $_SESSION['formFlag']) { exit('error'); } // 处理数据 unset($_SESSION['formFlag']);
以上是php如何防止form重複提交的詳細內容。更多資訊請關注PHP中文網其他相關文章!