何避免頁面重新整理資料重複寫入資料庫
當表單的資料是提交給本頁面處理並寫入資料庫時,點提交後,重新整理頁面的話使資料重複寫入資料庫。網上搜尋一下,發現了不少的解決方案:
一、把一頁面分開為兩個,資料提交給另乙個頁面處理,之後再跳到輸入頁面。
優點:避免了重新整理的影響,並可連續提交資料。
缺點:當使用者在還沒有完整的填寫表單時,點了提交。若不執行資料入庫操作又要保留使用者之前輸入的內容,用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...