站內搜尋

Tuesday, July 30, 2013

[JavaScript][PHP] 如何避免使用者在表單送出後,利用 "重新整理" 或 "回到上一頁" 來重覆送出表單資料

避免 "重新整理" 的方法,就是表單送出後進行"轉頁"的動作。

避免 "回到上一步" 的方法,就是不去紀錄瀏覽的紀錄,使瀏覽器無法回到上一步。

這兩個預防對策可以在一個指令同時完成,那就是 location.replace() ,使用方式就是在表單送出後,接收資料的頁面在處理完資料後,就利用 location.replace() 去轉頁,這樣可以避免重覆執行的問題了,範例如下:

if($_POST['action'] == 'add'){  //執行資料新增 (略)  echo '<script>alert("新增成功");</script>';  echo '<script>location.replace("index.php");</script>';  exit(); } 備註:如果想在原本頁面使用replace重新整理,可以使用下列語法  echo '<script>location.replace(location.href);</script>'; 備註:如果用 location.href 去轉頁 使用者仍可回到上一步,所以不建議使用。

No comments:

Post a Comment