引入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']);
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com