PHP技巧 何避免頁面重新整理資料重複寫入資料庫

2021-05-23 09:17:02 字數 903 閱讀 6709

何避免頁面重新整理資料重複寫入資料庫

當表單的資料是提交給本頁面處理並寫入資料庫時,點提交後,重新整理頁面的話使資料重複寫入資料庫。網上搜尋一下,發現了不少的解決方案:

一、把一頁面分開為兩個,資料提交給另乙個頁面處理,之後再跳到輸入頁面。

優點:避免了重新整理的影響,並可連續提交資料。

缺點:當使用者在還沒有完整的填寫表單時,點了提交。若不執行資料入庫操作又要保留使用者之前輸入的內容,用php來實現有些困難或說不方便。(當然,用js實現可能比較容易。在此約定本文只是從php的角度評價,研究php的運用)

*總的說來,這是一種不錯的解決方案。

二、在session中儲存變數

_session['submit']=false

提交後 改為true

檢測變數

if (_session['submit']=true)

優點:避免了重新整理的影響,並且只有乙個頁面,沒有第一種方法的缺點

缺點:只能提交一次,不能連續提交資料。

*有可取之處,但適用面太窄。

三、在資料入庫之前執行一次驗證查詢,看資料庫裡是否已經存在了相同的記錄,由此來決定是否寫入資料。

優點:沒有了前兩種方法的缺點。

缺點:**不精簡,操作繁瑣。再說有時並不排斥儲存完全相同的資訊。

*實現代價太高,***過大。

有沒有沒整合三種方法優點不要其缺點的方法呢?有!下面就是一種不錯的解決方案,與大家分享:

///<?php

session_start();

if(!isset(_session['h']))

_session['h']++;

if(isset(_post['h']) and _session['h']==_post['h'])else

?>

b:>

c:d:

PHP避免重新整理頁面重複提交

情景 從html提交資料到x.php 在x.php中 post資料寫庫並且顯示,當x.php重新整理時,入庫操作會被再次執行,用了if post 並且在程式結尾給 post賦空值,但是重新整理的時候post依然有值,求知道怎麼避免反覆提交。關鍵 1.資料從html過來的,不是php 2.要在x.ph...

頁面重新整理 重新整理vue頁面,解決資料丟失

解決方法一 最先想到的應該就是利用localstorage sessionstorage將資料儲存在外部,做乙個持久化儲存,下面是利用localstorage儲存的具體方案 方案一 由於state中的資料是響應式的,而資料又是通過mutation來進行修改,故在通過mutation修改state中資...

php獲取遠端資料,避免頁面卡死問

大家都知道php是解釋執行語言,是順序執行。如果中間有個地方卡住,那麼程式就會一直卡在這裡,不會往下執行,直到超時。看下面一段 content file get contents echo content 由於使用file get contents,並且是從乙個url裡獲取資料,相當於http請求w...