PHP防止頁面重新整理與過載

2021-07-08 19:04:27 字數 1045 閱讀 9858

如圖,因為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 這...