很多時會因為用戶按了重新整理(F5)引致重複送出表單
如重複留言等問題
當然使用AJAX可以解決這個問題
但現在我介紹一個比較簡單的方式解決
在表單和SESSION中加插一個隨機隱藏數值來定義是否重複送出
請從下方繼續閱讀觀看全文
inc.function.php
<?php //隨機產生數字 function formResubmitGen(){ global $_SESSION; $_SESSION["formHash"] = rand(10000, getrandmax()); } //輸出Hidden表單 function formResubmitPrint(){ global $_SESSION; if($_SESSION["formHash"]=="") formResubmitGen(); echo '<input name="formHash" type="hidden" value="'.$_SESSION["formHash"].'" />'; } //輸出檢查 function formResubmitCheck(){ global $_SESSION, $_POST; if($_SESSION["formHash"]==$_POST["formHash"]){ $_SESSION["formHash"] = ""; return true; } return false; } ?>
guestbook.php
<?php //必須開啟SESSION @session_start(); //引用上面的函式 include("inc.function.php"); //檢查表單輸入及是否重複 if($_POST["name"] && $_POST["comment"] && formResubmitCheck()){ $db->insert($_POST,tblComment); } ?>
參考文獻:http://b.lineage.idv.hk/300/teach-php-reflesh-form-resubmit