當前位置:偏方大全网 - 藥品查詢 - Asp控制壹個用戶和IP每天只提交五次數據。

Asp控制壹個用戶和IP每天只提交五次數據。

下面這壹頁應該對參考有用。

/問題/25057020.html

這裏有壹些好東西給妳。

限制同壹表單在ASP中多次提交。本文介紹了壹種簡單的方法來防止用戶在ASP應用程序的當前會話中多次提交同壹個表單。它主要由四個子程序組成。在相對簡單的應用程序中,您只需要將這些代碼放在include文件中並直接引用它們。對於那些復雜的環境,我們在文章的最後給出了壹些改進的建議。

壹、基本工作流程

讓我們依次討論這四個子程序。

(1)初始化

這裏我們想在會話對象中保存兩個變量,其中:

(1)每個表單對應壹個稱為FID的唯壹標識符,使用計數器使該值唯壹。

⑵每當表單提交成功時,它的FID必須存儲在壹個Dictionary對象中。

我們使用壹個特殊的過程來初始化上述數據。盡管每個子例程稍後都會調用它,但實際上,它在每個會話期間只執行壹次:

Sub InitializeFID()

如果不是IsObject(Session("FIDList ")),則

Set Session("FIDList")=Server。CreateObject("腳本。字典》)

會話(" FID")=0

如果…就會結束

末端接頭

(2)生成的表單的唯壹標識符

下面的函數GenerateFID()用於生成表單的唯壹標識。此函數首先將1加到FID值上,然後返回它:

函數GenerateFID()

InitializeFID

會話(" FID") =會話(" FID") + 1

GenerateFID = Session("FID ")

結束功能

(3)登記提交的表格

表單提交成功後,在Dictionary對象中註冊其唯壹標識:

子註冊ID()

模糊標簽

InitializeFID

strFID =請求(" FID ")

會話(“FIDlist”)。添加strFID,now()

末端接頭

(4)檢查表格是否重復提交。

在正式處理用戶提交的表單之前,您應該檢查它的FID是否已經在Dictionary對象中註冊。下面的CheckFID()函數用於完成這項工作。如果已經註冊,則返回FALSE,否則返回TRUE:

函數CheckFID()

模糊標簽

InitializeFID

strFID =請求(" FID ")

CheckFID = not Session("FIDlist ")。存在(strFID)

結束功能

二、如何使用

使用上述函數的地方有兩個,就是生成表單的時候和處理結果的時候。假設上述四個子程序已經放入包含文件Forms.inc,下面的代碼根據FID值決定是生成表單還是處理表單結果。它描述的處理過程適用於大多數ASP應用程序:

< %Option Explicit% >

< !- #include file="forms.inc" ->

< HTML >

< HEAD >

< title >表單提交測試

<正文>

< %

If Request("FID") = " "那麽

生成表單

其他

過程表單

如果…就會結束

%>

GenerateForm負責生成表單,它應該包含壹個隱藏的FID,例如:

< %

子生成表單()

%>

< form action = " < % =請求。server variables(" PATH _ INFO ")% > " method = GET >

< input type = hidden name = FID value = " < % = generate FID()% > " >

< input type = text name = " param 1 " value = " " >

<輸入類型=提交值= "確定">

< %

末端接頭

%>

ProcessForm負責處理通過表單提交的內容,但是在處理之前,妳要調用CheckFID()檢查當前表單是否已經提交。代碼類如下所示:

< %

子流程表單()

如果CheckFID()則

回應。寫“妳輸入的是”&;請求。QueryString("param1 ")

註冊ID

其他

回應。寫“此表只能提交壹次!”

如果…就會結束

末端接頭

%>

第三,限制和改進措施

上面,我們介紹了壹種方法來限制在當前會話中多次提交同壹個表單。在實際應用中,可能需要從多方面進行改進,如:

⑴在註冊表單ID之前檢查用戶輸入數據的合法性,以便當數據不合法時,用戶可以按“返回”按鈕返回,並在更正後再次提交相同的表單。

⑵此表單提交限制最多只能在當前會話期間有效。如果這種限制需要跨越多個會話,就需要使用Cookeis或database來保存相關數據。

(3)這種方法不安全。它僅用於防止誤操作,不能防止熟練用戶有意多次提交同壹個表單。

  • 上一篇:生產管理部門主管崗位職責
  • 下一篇:非法添加藥品的行為怎麽處罰
  • copyright 2024偏方大全网