如圖,因為omnigraffle暫時不會玩,所以手繪了一張圖。
建立了3個檔案,第乙個檔案askq.php為表單,第二個檔案qsubmit.php接收第乙個檔案發過來的資料並將其寫入資料庫,第三個檔案將資料庫中的資料列印出來。
那麼問題來了,怎麼防止使用者重新整理頁面重複提交資料?以及怎麼防止使用者過載頁面,寫入無效資料。
重新整理好理解,也就是資料庫中同樣的記錄出現了多條,那麼過載是怎麼回事呢?也就是在位址列按下了回車
這個時候資料庫會出現下面這種情況
原因是頁面過載的時候,detail這些字段沒有資料從askq.php穿過來,欄位為空。
怎麼判定頁面過載呢?
1. 最簡單的方法就是直接判定這些字段是否為空,如果為空則不執行插入的操作
2. 複雜一些的方法
在askq.php的上面插入如下
<?php
session_start();
//根據當前session生成隨機數
$code = mt_rand(0,1000000);
$_session['code'] = $code;
?>
在表單中加一條
">
在qsubmit.php中插入
session_start();
$hide = $_post['code'];
if($hide==$_session['code'])
else
session_destroy();
解析:當第一提交的時候 $hide == $session['code']
當重新整理頁面的時候 $session['code']已經不存在了,自然是返回false
php 防止頁面重新整理重複提交
一.使用session防止重複提交 其實跟驗證碼一樣的原理,主要是生成session和input隱藏域,這邊我的 是在乙個頁面中處理。header content type text html charset utf 8 頁面編碼 session start 開啟session if isset p...
vue 單頁面過載(重新整理)
首先先說一下標題,此處的重新 重新整理 並不是瀏覽器reload,只是當前頁面元件重新create。如下 router.js const router newrouter 需要在views redirectpage資料夾下新建index.vue,內容如下 export default this ro...
VUE重新整理當前頁面,過載頁面資料
在開發vue專案過程中,執行crud完操作的時候,我們需要重新整理一下頁面,過載資料。但發現使用最簡單的頁面重新整理方法location.reload 或this.router.go 0 均會導致頁面重新整理過程 現空白現象的發生,體驗不佳 在vue中,可以用到乙個 provide inject 這...