久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機端+微網站+自適應網頁多模板選擇-建站388元起價!!!
當前位置:主頁 > 網站建設 > 限制同一表單多次提交的分析,網站搭建

限制同一表單多次提交的分析,網站搭建

時間:2023-08-08 08:08:08 閱讀: 文章分類: 網站建設 作者: IT網站員

導讀:網站搭建網站搭建同一表單多次提交有時候會產生某些預料不到的結果,比如重復訂閱郵件或重復 投票等。 本文介紹在ASP應用中防止用戶在當前會話期間限制同一表單 多次提交簡單方法。它技術支持網站建站技術模板。

技術支持網站建站技術模板同一表單多次提交有時候會產生某些預料不到的結果,比如重復訂閱郵件或重復 投票等。 本文介紹在ASP應用中防止用戶在當前會話期間限制同一表單 多次提交簡單方法。它主要由四個子程序組成,在較為簡單的應用場合,你只要 將這些代碼放在包含文件中直接引用即可;   一、基本工作過程 下面我們依次討論限制同一表單多次提交的四個子程序 (一)初始化 這里我們要在Session對象中保存兩個變量,其中: ⑴ 每一個表 單對應一個稱為FID的唯一標識,為使該值唯一要用到一個計數器。 ⑵ 每當一個表單成功提交,必須在一個Dictionary對象中存儲它的FID。 我們用一個專用的過程織夢模板安裝來初始化上述數據。雖然以后各個子程序都要調用它,但 實際上每一個會話期間它只執行一次: Sub InitializeFID() If Not IsObject(Session("FIDList")) Then Set Session("FIDList") =Server.CreateObject("Scripting.Dictionary") Session("FID")=0 End If End Sub (二)生成表單的唯一標識符 下面這個函數GenerateFID()用于生成表單的唯一標志。該函數首先將FID值加1 ,然后返回它: Function GenerateFID() InitializeFID Session("FID") = Session("FID") + 1 GenerateFID = Session ("FID") End Function (三)登記已提交表單   當表 單成功地提交時,在Dictionary對象中登記它的唯一標識: Sub RegisterFID() Dim strFID InitializeFID strFID = Request ("FID") Session("FIDlist").Add strFID, now() End Sub (四)檢查表單是否重復提交 在正式處理用戶提交的表單之前, 應該在Dictionary對象中檢查它的FID是否已經登記。下面的CheckFID()函數用 來完成這個工作,如已經登記,它返回FALSE,否則返回TRUE: Function CheckFID() Dim strFID InitializeFID strFID = Request ("FID") CheckFID = not Session("FIDlist").Exists(strFID) End Function 二、如何使用 有兩個地方要用到上述函數,即 表單生成時與結果處理時。假設上述四個子程序已經放入包含文件Forms.inc中 ,下面的代碼根據FID值來決定生成表單還是處理表單結果,它所描述的處理過 程適合于大多數ASP應用: Option Explicit If Request("FID") = "" Then GenerateForm Else ProcessForm End If GenerateForm負責生成表 單,表單中應該含有一個隱藏的FID,如: Sub GenerateForm() End Sub ProcessForm負責處理通過表單提交的內容,但在處理之前應該先調用 CheckFID()檢查當前表單是否已經提交,代碼類如: Sub ProcessForm() If CheckFID() Then Response.Write "你輸入的內容 是"Request.QueryString("param1") RegisterFID Else Response.Write "此表單只能提交一次!" End If End Sub 三、同一表單多次提交的限制與改進措施   上面我們介紹了在當前 會話期間限制同一表單多次提交的一種方法。在實際應用中可能需要從多方面加 以改進,例如:   ⑴ 在登記表單ID之前檢查用戶輸入數據的合法性,使 得數據不合法時用戶可以按“后退”按鈕返回,在修正后再次提交同一表單。   ⑵ 這種同一表單多次提交的限制最多只能在當前手機模板dede會話期間有效。如果 要求這種限制能夠跨越多個會話,那么就要用到Cookeis或數據庫來保存相關數 據了。   ⑶ 這種方法是不安全的。它僅用于防范誤操作,不能防止熟練 用戶有意地同一表單多次提交; 還有一種只需使用幾行代碼的方法,輕松地 實現了防止用戶同一表單多次提交和使用后退鈕重復多次提交表單。 表單文件formtest.asp Randomize '初始代隨機數種子 num1=rnd() '產 生隨機數num1 num1=int(26*num1)+65 '修改num1的范圍以使其是A-Z范 圍的Ascii碼,以防表單名出錯 session("antry")="test"&chr(num1)  '產生隨機字符串   你的名字: '注意本行中使用了隨機表單項名 表單處理程序 testact.asp teststr=request.form(session("antry")) if teststr="" then response.write "沒有填寫姓名或重復提交" '由于用 戶沒有填寫名字,或表單被重復提交(標志為session("antry")為空)引起 else response.write teststr session("antry")=""  '提交成功 ,清空session("antry"織夢模板網;),以防同一表單多次提交! end if 在這里 ,你只需隨機化一個必填項目的表單項名即可,不必隨機化所有的表單項目。達 到了限制同一表單多次提交的問題相關技術支持網站建站技術模板。

關鍵詞標簽: 網站搭建 表單

聲明: 本文由我的SEOUC技術文章主頁發布于:2023-08-08 ,文章限制同一表單多次提交的分析,網站搭建主要講述表單,網站搭建網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://m.bifwcx.com/article/web_38115.html

我的IDC 網站建設技術SEOUC.COM
專注網站建設,SEO優化,小程序設計制作搭建開發定制網站等,數千家網站定制開發案例,網站推廣技術服務。
  • 5000+合作客服
  • 8年從業經驗
  • 150+覆蓋行業
  • 最新熱門源碼技術文章

    主站蜘蛛池模板: 呼玛县| 镇宁| 沙湾县| 得荣县| 卫辉市| 商河县| 澄城县| 兴宁市| 濮阳县| 博白县| 许昌县| 永清县| 马龙县| 汶上县| 静海县| 沙河市| 长兴县| 宽甸| 多伦县| 江西省| 彭阳县| 凤城市| 盐边县| 河间市| 包头市| 山东省| 醴陵市| 孝感市| 色达县| 遂宁市| 蓬莱市| 东辽县| 莒南县| 历史| 尼木县| 宜黄县| 庐江县| 兴海县| 隆回县| 湖口县| 新巴尔虎右旗|