ASP を学ぶ上で最も重要なことは、ASP に組み込まれている 6 つのオブジェクトをマスターすることです。これまでに ASP に触れたことがない場合は、これらの概念を無視して、それらの使用方法を知っておくだけで十分です。 ASP を学ぶ最初の鍵は、ASP をコピーすることです。最も重要なことは、ASP の 6 つの組み込みオブジェクトをマスターすることです。実際、前回の講義では、Response オブジェクトと、Response オブジェクトで最も一般的に使用される Write メソッド、Redirect メソッド、および Expires プロパティについてすでに学習しました。オブジェクト、メソッド、プロパティ、コレクション、イベントの概念 (私はどれも知りません!) を見たときに、これまでそれらに触れたことがないのであれば、あなたは賢明で、これらの概念など気にしません。私の見解では、それは単なる始まりに過ぎず、コピーすることです。例を通して Request オブジェクトについて学び続けましょう。理解を深めるために、これらのプログラムを実行して出力結果を確認してください。
1. Request.ServerVariables を使用して環境変数を取得します。この部分は非常に簡単ですが、取得する内容は非常に重要です。次の例を参照してください。
次のようにコードをコピーします。
<%@ 言語=VBScript %>
<HTML><本文>
<% 'wuf8.asp
Response.Write ASP ファイルを実行するパス: &_
Request.ServerVariables(Script_Name) & <Br>
Response.Write はコンテンツのデータ長を返します: &_
Request.ServerVariables(Content_Length) & <Br>
Response.Write はクライアントの IP アドレスを返します: &_
Request.ServerVariables(Remote_Addr) & <Br>
応答。ブラウザ名を書き込みます: &_
Request.ServerVariables(HTTP_USER_AGENT) & <Br>
Response.Write は、ホームページへの実際の物理パスを返します: &_
Request.ServerVariables(APPL_PHYSICAL_PATH) & <Br>
%>
<tablecolspan=8 cellpadding=5 border=0>
<tr>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>環境変数名</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>コンテンツ</font></td>
</tr>
<tr>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
結果1
</font></td>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
結果2
</font></td></tr>
</テーブル>
</BODY></HTML>
これで、前の講義の wuf2.asp ルーチンがいかに簡単であるかがわかるはずです。
注: このプログラムの後半の HTML マークアップは、純粋に次の例の準備のためのものなので、驚かないでください。では、他にはどのような環境変数があるのでしょうか?次の例を実行するとわかります (このプログラムでは一部のコードが削除されています。理解しやすいように、私のサイトからソース プログラムをダウンロードするのが最善です)。
次のようにコードをコピーします。
<%@ 言語=VBScript %>
<% 'wuf9.asp
明示的なオプション
ディム SV
%>
<HTML><本文>
<tablecolspan=8 cellpadding=5 border=0>
<tr>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>環境変数名</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>結果</font></td>
</tr>
<%
Request.ServerVariables の各 Sv について
応答.書き込み<tr>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
応答.書き込みSV
応答.書き込み </font></td>
Response.Write <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'>
応答.書き込み要求.サーバー変数(Sv)
応答.書き込み </font></td></tr>
次
%>
</テーブル>
</BODY></HTML>
ここでは、コレクション内のすべての要素をリストするために For...Each ループが使用されています。後半が理解できない場合は、wuf8.asp を比較し、実行結果を見て、よく理解してください (どういう態度ですか?)。
2. フォームを通じてサーバーにデータを送信します (これは、サーバーがクライアントによって送信されたデータを読み取る方法としても理解できます)
ホームページで作業したことがある場合は、多くのホームページで通常、ユーザーがデータを入力し、送信ボタンを通じてデータを送信できるようにフォーム フォームを使用していることを知っているはずです。 From フォームには、POST と GET という 2 つの主なメソッドがあります。アクションの後に、通常、.cgi、.pl、または .asp ファイルが指定されます。今日学習するのは、この .asp ファイルの記述方法です。
(1) POSTメソッドでデータを送信する場合、Request.Formを使用してデータを読み込みます。
まず、ユーザーがデータを入力できるように次の wuf10.htm ファイルを編集します。
次のようにコードをコピーします。
<html>
<body bgcolor=#FFFFFF>
<フォームメソッド=ポストアクション=wuf11.asp>
名前: <入力タイプ=テキスト名=あなたの名前><br>
性別: <名前=性別を選択>
<オプション>男性</オプション>
<オプション>女性</オプション>
</選択> <br>
メッセージ: <textarea name=message>こんにちは!
複数行テキストの処理に注意してください</textarea> <br>
趣味 (Ctrl キーを押しながら複数選択します):
<select name=ホビーマルチ サイズ=4>
<オプション>コンピュータ</オプション>
<option>ショッピング</option>
<オプション>映画</オプション>
<オプション>読み取り</オプション>
</選択> <br>
<入力タイプ=送信名=送信値=送信>
<入力タイプ=リセット名=送信2値=リセット>
</form>
</body>
</html>
次に、データを収集するために wuf10.htm が使用する必要があるファイル wuf11.asp を作成します。
次のようにコードをコピーします。
<%@ 言語=VBScript %>
<% 'wuf11.asp
明示的なオプション
応答.有効期限=0
Dim StrName、StrGender、StrM、StrMsg
StrName = Trim(Request.Form(yourname)) 'Trim 関数は先頭と末尾のスペースを削除するために使用されます
StrGender = Trim(リクエスト.フォーム(性別))
StrM = Trim(リクエスト.フォーム(メッセージ))
StrMsg = 置換(StrM,vbcrlf,<Br> & vbcrlf)
' vbcrlf は、キャリッジ リターンとライン フィードの組み合わせに相当します。 Replace 関数については、文字列 StrM 内の vbcrlf を <Br> と vbcrlf に置き換える機能です (この vbcrlf の使用方法については、出力ファイルの HTML ソース コードを見ればわかります)。詳細については、VBScript ヘルプを参照してください。
%>
<HTML><本文>
名前: <%= StrName%><Br><Br>
性別: <%= StrGender%><Br><Br>
メッセージ: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
実際、送信ボタンの値も渡されます: <Br>
<%= リクエストフォーム(送信)%><Br><Br>
<% 'まず上記を理解してから、興味がある場合は複数のオプションを読む方法を見てください。
Response.Write 選択された趣味の合計数: & Request.Form(hobby).Count & <Br>
ディムI
I = 1 の場合、Request.Form(hobby).Count に
Response.Write Request.Form(hobby)(I) & <Br>
次
%>
</BODY></HTML>
この例では、理解を容易にするために 2 つのプログラムを使用しています。実際には、1 つのプログラムだけを使用することもできます。興味がある場合は、環境変数の理解を深めるのに役立つ次のルーチン wuf12.asp を参照してください。
次のようにコードをコピーします。
<%@ 言語=VBScript %>
<% 'wuf12.asp
明示的なオプション
応答.有効期限=0
Dim StrName、StrGender、StrM、StrMsg
If Request.ServerVariables(Content_Length) <> 0 then
'データ送信後は長さが0にならないので、以下の文を実行して結果を表示します
'以下の部分は実際には wuf11.asp からコピーしたものです
StrName = Trim(リクエスト.フォーム(あなたの名前))
StrGender = Trim(リクエスト.フォーム(性別))
StrM = Trim(リクエスト.フォーム(メッセージ))
StrMsg = 置換(StrM,vbcrlf,<Br> & vbcrlf)
%>
<HTML><本文>
名前: <%= StrName%><Br><Br>
性別: <%= StrGender%><Br><Br>
メッセージ: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
<%
Response.Write 選択された趣味の合計数: & Request.Form(hobby).Count & <Br>
ディムI
I = 1 の場合、Request.Form(hobby).Count に
Response.Write Request.Form(hobby)(I) & <Br>
次
%>
</BODY></HTML>
<%
それ以外
'初めてページが読み込まれるときはデータが送信されないため、前の部分は実行されず、ここから始まります。
' これが、<HTML></HTML> のペアが 2 つある理由です。
' 以下の wuf10.htm をコピーしてください。
'<form method=post action=wuf11.asp> は環境変数に置き換えられていますが、まったく同じです
Response.Write で結果を確認します: & Request.ServerVariables(Script_name) & <Br>
%>
<HTML><本文>
<フォームメソッド=ポストアクション=<%=Request.ServerVariables(Script_name)%>>
名前: <入力タイプ=テキスト名=あなたの名前><br>
性別: <名前=性別を選択>
<オプション>男性</オプション>
<オプション>女性</オプション>
</選択> <br>
メッセージ: <textarea name=message>こんにちは!
複数行テキストの処理に注意してください</textarea> <br>
趣味 (Ctrl キーを押しながら複数選択します):
<select name=ホビーマルチ サイズ=4>
<オプション>コンピュータ</オプション>
<option>ショッピング</option>
<オプション>映画</オプション>
<オプション>読み取り</オプション>
</選択> <br>
<入力タイプ=送信名=送信値=送信>
<入力タイプ=リセット名=送信2値=リセット>
</form>
</BODY></HTML>
<%End If%>
(2) GETメソッドでデータを送信する場合は、Request.Querystringを使用してデータを読み込みます。
まず、ユーザーがデータを入力できるように次の wuf13.htm ファイルを編集します。
<html>
<body bgcolor=#FFFFFF>
<フォームメソッド=getアクション=wuf14.asp>
英語名: <input type=text name=Ename> <br>
中国語名: <input type=text name=Cname><br>
性別: <名前=性別を選択>
<オプション>男性</オプション>
<オプション>女性</オプション>
</選択> <br>
<入力タイプ=送信名=送信値=送信>
<入力タイプ=リセット名=送信2値=リセット>
</form>
</body>
</html>
次に、データを収集するために wuf13.htm が使用する必要があるファイル wuf14.asp を作成します。
<%@ 言語=VBScript %>
<% 'wuf14.asp
明示的なオプション
応答.有効期限=0
Dim StrCname、StrEname、StrGender
StrEname = Trim(Request.QueryString(Ename)) 'Trim 関数は先頭と末尾のスペースを削除するために使用されます
StrCname = Trim(Request.QueryString(Cname))
StrGender = Trim(Request.QueryString(gender))
%>
<HTML><本文>
英語名: <%= StrEname%><Br><Br>
中国語名: <%= StrCname%><Br><Br>
性別: <%= StrGender%><Br><Br>
送信された文字列を見てください: <Br>
<%= Request.ServerVariables(Query_String)%>
</BODY></HTML>
このプログラムをよりよく理解するには、まずブラウザでルーチン wuf13.htm の効果を試し、出力結果を確認してください。アドレス バーに見覚えのある長い文字列が表示されていることがわかります。 Yahooで検索するとほぼ同じです。このとき、アドレス バーに http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女 と直接入力しようとしても、同じ結果が得られます。このように見ると、wuf13.htm の結果は次のようなパラメータを持つリンクを取得することになります。 Request.QueryString は、http:// アドレスの追加パラメーターから各データを読み取ります。
実際、送信ボタンが押されると、データ転送の目的を達成するために、クエリ文字列 (入力データ) がパラメータの形式で URL アドレスに追加されます (各パラメータは & で区切られます)。同時に、ブラウザに表示されるクエリ文字列には中国語はありませんが、パーセント記号を含む認識できない文字化けが発生することに注意してください。これはエンコードされているためです。最後に、前と同様に、これら 2 つのプログラムを 1 つのプログラムにマージすることもできます (ルーチン wuf15.asp、私のサイトからダウンロードする必要があります)。
いくつかのメモ:
1. POST メソッドを使用してデータを送信する場合は、Request.ServerVariables(Content_Length)>0 になります。
GET メソッドを使用してデータを送信する場合は、Request.ServerVariables(Query_String) <> を使用します。
2. 原理を理解した後は、同じ ASP ファイル内で Request.Form と Request.QueryString を混在させることができます。
3. フォームに複数のボタンがある場合、ユーザーがどのボタンを押したかをどのように判断すればよいでしょうか?注意してみると、ルーチン wuf11.asp の中に送信ボタンの値も送信するという文があり、wuf13.htm で生成されるクエリ文字列にも同様の値が見つかります。注意:押されたボタンの値のみが送信され、他のボタンの値は判断の基準となります(「中国計画ニュース」InfoWeb Webサイトにも同様の記事があります)。