推奨:ASP複数のクエリソリューション多くの場合、複数のクエリの問題が発生し、長いSQLステートメントが僧ksを混乱させることがよくあります。特に、クライアントの部分がクエリ条件を埋める場合、通常の方法を使用することはさらに困難になります。以下は、1 = 1(実際には、それはたくさんありますが、真の価値があるだけです)のアイデンティティを巧みに使用して、この問題を解決します。テキストの概要 '件名情報Title'com
ASPのフォームの複数の繰り返し提出を制限する方法は?インターネットでは、毎日無数のフォームに遭遇し、それらのほとんどがユーザーが同じフォームを複数回提出することを制限していないこともわかります。このような制限の欠如は、電子メールサービスのサブスクリプションの重複や投票の複製など、いくつかの予期しない結果を生成する場合があります。
この記事では、ASPアプリケーションの現在のセッション中にユーザーが同じフォームを複数回送信できないようにする簡単な方法について説明します。主に4つのサブルーチンで構成されています。より簡単なアプリケーションでは、これらのコードをインクルードファイルに配置し、それらを直接引用するだけです。これらのより複雑な環境については、記事の最後にいくつかの改善提案をします。
1。基本的な作業プロセス
次に、これらの4つのサブルーチンについて順番に説明します。
(ASPは、フォームの複数の繰り返し提出を制限します)初期化
ここでは、セッションオブジェクトに2つの変数を保存します。
[各フォームはFIDと呼ばれる一意の識別子に対応し、この値を一意にするためにカウンターを使用します。
formフォームが正常に送信されるときはいつでも、fidは辞書オブジェクトに保存する必要があります。
上記のデータを初期化するために専用プロセスを使用します。各サブルーチンは将来それを呼び出しますが、実際には各セッション中に1回しか実行されません。
以下は引用されたコンテンツです。 sub itivityizefid() ISObject(セッション(FIDLIST))ではない場合 セットセッション(fidlist)= server.createobject(scripting.dictionary) セッション(fid)= 0 ifを終了します End Sub |
(ASPのフォームの複数の繰り返し提出を制限)フォームを生成するための一意の識別子
次の関数GenerateFid()は、フォームの一意のフラグを生成するために使用されます。関数は最初にFID値を1で追加してから返します。
以下は引用されたコンテンツです。 function generatefid() intializefid セッション(fid)=セッション(fid)1 generatefid = session(fid) エンド関数 |
(ASPの制限されたフォームの複数の繰り返し提出)提出されたフォームを登録
フォームが正常に送信されると、その一意の識別子は辞書オブジェクトに登録されています。
以下は引用されたコンテンツです。 sub Registerfid() dim strfid intializefid strfid = request(fid) セッション(fidlist).add strfid、now() End Sub |
(ASPは、フォームの複数の繰り返し提出を制限します4)フォームが繰り返し提出されているかどうかを確認します
ユーザーが提出したフォームを正式に処理する前に、FIDが辞書オブジェクトに登録されているかどうかを確認する必要があります。次のCheckFid()関数を使用して、この作業を完了します。登録されている場合、falseを返し、それ以外の場合はtrueを返します。
以下は引用されたコンテンツです。 function checkfid() dim strfid intializefid strfid = request(fid) checkfid = not session(fidlist).exists(strfid) エンド関数 |
2。使い方
上記の機能が使用される2つの場所、つまりフォーム生成と結果処理の場合。上記の4つのサブルーチンがインクルージョンファイルフォームに配置されていると仮定すると、次のコードは、FID値に基づいてフォームを生成するか、フォームの結果を処理するかを決定します。それが説明する処理プロセスは、ほとんどのASPアプリケーションに適しています。
以下は引用されたコンテンツです。 <%オプションexpricit%> <! - #include file = forms.inc <html> <head> <title>フォーム提出テスト</title> < /head <body> <% request(fid)= thenの場合 GenerateForm それ以外 ProcessForm ifを終了します %> < /body> < /html> |
GenerateFormはフォームを生成する責任があり、フォームには次のような隠されたFIDを含める必要があります。
以下は引用されたコンテンツです。 <% sub generateform() %> <form action = <%= request.servervariables(path_info)%> method = get> <入力型=非表示名= fid値= <%= generatefid()%>> <入力タイプ=テキスト名= param1値=> <入力タイプ=送信値= OK> < /form> <% End Sub %> |
ProcessFormはフォームを介して送信されたコンテンツの処理を担当しますが、処理する前に、最初にCHECKFID()を呼び出して、現在のフォームが送信されているかどうかを確認する必要があります。コードクラスは次のようです。
以下は引用されたコンテンツです。 <% sub processform() checkfid()の場合 response.write you typing ove note |
共有:ASPでHTMLを生成する方法は? HTMLを生成するニュースシステムはすでに多くありますが、すべてテンプレートを使用しています。この関数は、ASPページによって生成されたHTMLコードをHTMLファイルに保存するため、HTMLを生成するニュースシステムを簡単に完了するために元のページを変更する必要はありません。 ^ _^コードは比較的短いため、次の引用されたコンテンツはここにコメントされていません:% 'ターゲットの場合