濮阳杆衣贸易有限公司

主頁 > 知識庫 > asp 讀取通過表單發(fā)送的post數(shù)據(jù)

asp 讀取通過表單發(fā)送的post數(shù)據(jù)

熱門標簽:創(chuàng)意電話機器人 濟源電銷外呼系統(tǒng)線路 石家莊慧營銷外呼系統(tǒng) 梧州市地圖標注 武穴地圖標注 java外呼系統(tǒng)是什么 世界地圖標注了哪些城市 地圖標注陽江 外呼線路批發(fā)
學(xué)習(xí)ASP,最重要的就是要掌握ASP內(nèi)置的六大對象。事實上,在上一講中,我們已經(jīng)了解了Response對象,及Response對象中最常用的Write方法、Redirect方法和Expires屬性??吹綄ο蟆⒎椒?、屬性、集合、事件這些概念(俺一個都不識?。?,如果以前沒接觸過,聰明的您就不要管這些概念了,知道怎么用就行了,我的觀點是剛開始關(guān)鍵在于臨摹。下面我們繼續(xù)通過實例學(xué)習(xí)Request對象,為了加深理解,務(wù)請運行這些程序看看輸出結(jié)果。

一、 使用Request.ServerVariables獲取環(huán)境變量,這部分內(nèi)容很簡單,但獲取的內(nèi)容卻很重要,如何獲?。空埧聪吕?
復(fù)制代碼 代碼如下:

%@ Language=VBScript %>
HTML>BODY>
% 'wuf8.asp
Response.Write "運行ASP文件的路徑: " _
Request.ServerVariables("Script_Name") "Br>"
Response.Write "返回content的數(shù)據(jù)長度: " _
Request.ServerVariables("Content_Length") "Br>"
Response.Write "返回客戶的IP地址: " _
Request.ServerVariables("Remote_Addr") "Br>"
Response.Write "瀏覽器名: " _
Request.ServerVariables("HTTP_USER_AGENT") "Br>"
Response.Write "返回主頁實際物理路徑: " _
Request.ServerVariables("APPL_PHYSICAL_PATH") "Br>"
%>
table colspan=8 cellpadding=5 border=0>
tr>
td align=CENTER bgcolor="#800000" width="109"> font style="ARIAL NARROW" color="#ffffff" size="2">環(huán)境變量名/font>/td>
td align=CENTER width=459 bgcolor="#800000"> font style="ARIAL NARROW" color="#ffffff" size="2">內(nèi)容/font>/td>
/tr>
tr>
td bgcolor="f7efde" align=CENTER> font style="ARIAL NARROW" size="2">
result1
/font>/td>
td bgcolor="f7efde" align=CENTER> font style="ARIAL NARROW" size="2">
result2
/font>/td>/tr>
/table>
/BODY>/HTML>

Now,你應(yīng)該發(fā)現(xiàn)上一講中的例程wuf2.asp原來是多么的easy!
注意:該程序的后面一部分HTML標記純是為下面的例子作準備的,所以不要覺得奇怪。那么,還有哪些環(huán)境變量呢?運行下面的例子就知道了(本程序刪除了部分代碼,最好去我站點下載源程序便于理解)。
復(fù)制代碼 代碼如下:

%@ Language=VBScript %>
% ‘wuf9.asp
Option Explicit
Dim Sv
%>
HTML>BODY>
table colspan=8 cellpadding=5 border=0>
tr>
td align=CENTER bgcolor="#800000" width="109"> font style="ARIAL NARROW" color="#ffffff" size="2">環(huán)境變量名/font>/td>
td align=CENTER width=459 bgcolor="#800000"> font style="ARIAL NARROW" color="#ffffff" size="2">結(jié)果/font>/td>
/tr>
%
for each Sv In Request.ServerVariables
Response.Write "tr>"
Response.Write "td bgcolor='f7efde' align=CENTER> font style='ARIAL NARROW' size='2'>"
Response.Write Sv
Response.Write "/font>/td>"
Response.Write "td bgcolor='f7efde' align=CENTER> font style='ARIAL NARROW' size='2'>"
Response.Write Request.ServerVariables(Sv)
Response.Write "/font>/td>/tr>"
next
%>
/table>
/BODY>/HTML>

這里使用了For…Each循環(huán),用來列舉一個集合中的所有元素。如果后半部分看不懂,請對照wuf8.asp,再瞧瞧運行結(jié)果,仔細體會一下(什么態(tài)度?)。

二、 通過表單向服務(wù)器傳送數(shù)據(jù)(也可這樣理解,服務(wù)器端如何讀取客戶端發(fā)送的數(shù)據(jù))
做過主頁,應(yīng)該知道很多主頁通常都使用Form表單讓用戶輸入數(shù)據(jù),然后通過“submit(提交)”按鈕發(fā)送數(shù)據(jù)。From表單中的“method”有兩種主要方法:POST和GET,而“action”后一般都是指定一個.cgi、.pl或.asp文件,今天我們要學(xué)習(xí)的就是如果編寫這個.asp文件。
(一) 如果使用POST方法傳送數(shù)據(jù),則用Request.Form來讀取數(shù)據(jù)。
先編輯如下一個wuf10.htm文件,供用戶輸入數(shù)據(jù):
復(fù)制代碼 代碼如下:

html>
body bgcolor="#FFFFFF">
form method="post" action="wuf11.asp">
姓名: input type="text" name="yourname">br>
性別: select name="gender">
option>男/option>
option>女/option>
/select> br>
留言: textarea name="message">您好!
注意多行文本的處理/textarea> br>
愛好(按住Ctrl鍵可多選):
select name="hobby" multiple size="4">
option>電腦/option>
option>購物/option>
option>電影/option>
option>讀書/option>
/select> br>
input type="submit" name="Submit" value="提交">
input type="reset" name="Submit2" value="Reset">
/form>
/body>
/html>

再編寫一個wuf10.htm需用到的文件wuf11.asp收集數(shù)據(jù):
復(fù)制代碼 代碼如下:

%@ Language=VBScript %>
% 'wuf11.asp
Option Explicit
Response.Expires=0
Dim StrName, StrGender, StrM, StrMsg
StrName = Trim(Request.Form("yourname")) 'Trim函數(shù)用來除首尾空格
StrGender = Trim(Request.Form("gender"))
StrM = Trim(Request.Form("message"))
StrMsg = Replace(StrM,vbcrlf,"Br>" vbcrlf)
' vbcrlf相當(dāng)于回車符和換行符的組合。至于Replace函數(shù),其作用就是將字符串StrM中的vbcrlf替換為"Br>" vbcrlf(請思考這個vbcrlf有什么用?查看輸出文件的HTML源碼就明白了),詳細請參考VBScript幫助。
%>
HTML>BODY>
姓名: %= StrName%>Br>Br>
性別: %= StrGender%>Br>Br>
留言: Br>Br>
%= StrM%>Br>Br>
%= StrMsg%>Br>Br>
實際上, "提交"按鈕的值也被傳遞: Br>
%= Request.Form("Submit")%>Br>Br>
% '先把上面看懂, 有興趣再看看如何讀取多個選項
Response.Write "共選擇愛好項數(shù):" Request.Form("hobby").Count "Br>"
Dim I
For I = 1 to Request.Form("hobby").Count
Response.Write Request.Form("hobby")(I) "Br>"
Next
%>
/BODY>/HTML>

在這個的例子中,為了便于理解,我們使用了兩個程序,實際上只使用一個程序也可以,如果有興趣請看下面的例程wuf12.asp,有助于加深對環(huán)境變量的理解。
復(fù)制代碼 代碼如下:

%@ Language=VBScript %>
% 'wuf12.asp
Option Explicit
Response.Expires=0
Dim StrName, StrGender, StrM, StrMsg
If Request.ServerVariables("Content_Length") > 0 Then
'提交數(shù)據(jù)后,這個長度就不會是 0, 因此執(zhí)行下面的語句, 將結(jié)果顯示出來
'下面一部分實際上是照搬 wuf11.asp
StrName = Trim(Request.Form("yourname"))
StrGender = Trim(Request.Form("gender"))
StrM = Trim(Request.Form("message"))
StrMsg = Replace(StrM,vbcrlf,"Br>" vbcrlf)
%>
HTML>BODY>
姓名: %= StrName%>Br>Br>
性別: %= StrGender%>Br>Br>
留言: Br>Br>
%= StrM%>Br>Br>
%= StrMsg%>Br>Br>
%
Response.Write "共選擇愛好項數(shù):" Request.Form("hobby").Count "Br>"
Dim I
For I = 1 to Request.Form("hobby").Count
Response.Write Request.Form("hobby")(I) "Br>"
Next
%>
/BODY>/HTML>
%
Else
'當(dāng)?shù)谝淮渭虞d頁面時,沒有提交任何數(shù)據(jù),故前面一部分并不執(zhí)行,而是從這里開始
'這也就是為什么會有兩對 HTML>/HTML> 的原因
'下面照搬 wuf10.htm 就行了
'form method="post" action="wuf11.asp"> 給用環(huán)境變量替換掉了, 其實完全一樣
Response.Write "看看結(jié)果: " Request.ServerVariables("Script_name") "Br>"
%>
HTML>BODY>
form method="post" action="%= Request.ServerVariables("Script_name")%>">
姓名: input type="text" name="yourname">br>
性別: select name="gender">
option>男/option>
option>女/option>
/select> br>
留言: textarea name="message">您好!
注意多行文本的處理/textarea> br>
愛好(按住Ctrl鍵可多選):
select name="hobby" multiple size="4">
option>電腦/option>
option>購物/option>
option>電影/option>
option>讀書/option>
/select> br>
input type="submit" name="Submit" value="提交">
input type="reset" name="Submit2" value="Reset">
/form>
/BODY>/HTML>
%End If%>
(二)如果使用GET方法傳送數(shù)據(jù),則用Request.Querystring來讀取數(shù)據(jù)。
先編輯如下一個wuf13.htm文件,供用戶輸入數(shù)據(jù):
html>
body bgcolor="#FFFFFF">
form method="get" action="wuf14.asp">
英文姓名: input type="text" name="Ename"> br>
中文姓名: input type="text" name="Cname">br>
性別: select name="gender">
option>男/option>
option>女/option>
/select> br>
input type="submit" name="Submit" value="提交">
input type="reset" name="Submit2" value="Reset">
/form>
/body>
/html>
再編寫一個wuf13.htm需用到的文件wuf14.asp收集數(shù)據(jù):
%@ Language=VBScript %>
% 'wuf14.asp
Option Explicit
Response.Expires=0
Dim StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString("Ename")) 'Trim函數(shù)用來除首尾空格
StrCname = Trim(Request.QueryString("Cname"))
StrGender = Trim(Request.QueryString("gender"))
%>
HTML>BODY>
英文姓名: %= StrEname%>Br>Br>
中文姓名: %= StrCname%>Br>Br>
性別: %= StrGender%>Br>Br>
看看提交的字符串: Br>
%= Request.ServerVariables("Query_String")%>
/BODY>/HTML>

為了更好地理解這個程序,你最好先在瀏覽器中試試例程wuf13.htm的效果,看看輸出的結(jié)果,你會發(fā)現(xiàn)地址欄中長長的字符串似曾相識,如同在Yahoo搜索時看到的差不多。這時,你試著在地址欄中直接輸入“http://localhost/wuf14.asp?Ename=RoseCname=李二gender=女”,居然也得到了同樣的結(jié)果。所以你可以這樣看,wuf13.htm的結(jié)果就是得到了類似這樣的一個帶參數(shù)的鏈接。而Request.QueryString則是從http:// 地址的附加參數(shù)中讀取各個數(shù)據(jù)。

實際上,當(dāng)按“提交”按鈕后,查詢字符串(輸入的數(shù)據(jù))會以參數(shù)的形式附加到URL地址后(各參數(shù)間以“”分隔),達到傳遞數(shù)據(jù)的目的。同時,注意瀏覽器中顯示的查詢字符串中沒有中文,而是不認識的含百分號的亂碼,這是因為進行了編碼的緣故。最后,與前面一樣,這兩個程序也可合并為一個程序(例程wuf15.asp,需去我站點下載)。
幾點說明
1. 若使用POST方法提交數(shù)據(jù),則Request.ServerVariables("Content_Length")>0。
若使用GET方法提交數(shù)據(jù),則Request.ServerVariables("Query_String") > ""。
2. 弄懂原理后,你完全可以在同一個ASP文件中混合使用Request.Form和Request.QueryString。
3. 如果在一個Form表單中,有幾個按鈕,你如何確定用戶按了哪個按鈕?如果留意的話,會發(fā)現(xiàn)例程wuf11.asp中有一句,“提交”按鈕的值也被傳送,而wuf13.htm中生成的查詢字符串最后也可以找到類似的值。請注意:只有被按按鈕的值被傳送,而其他按鈕的值為””,這就是判斷依據(jù)(《中計報》InfoWeb網(wǎng)站有一篇類似文章)。

標簽:甘南 南寧 淮北 滁州 揭陽 迪慶 來賓 唐山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《asp 讀取通過表單發(fā)送的post數(shù)據(jù)》,本文關(guān)鍵詞  asp,讀取,通過,表單,發(fā)送,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp 讀取通過表單發(fā)送的post數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp 讀取通過表單發(fā)送的post數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    竹北市| 仁怀市| 白银市| 扶绥县| 金阳县| 左贡县| 玉龙| 商南县| 昭通市| 仁寿县| 嵊州市| 保德县| 阿坝县| 巴彦淖尔市| 枝江市| 任丘市| 神农架林区| 玉环县| 弥渡县| 长治县| 镶黄旗| 汨罗市| 儋州市| 天祝| 离岛区| 康保县| 溧水县| 高青县| 岳阳市| 玉环县| 凤城市| 宁波市| 青龙| 广南县| 兴国县| 柘城县| 应城市| 罗田县| 江北区| 华池县| 汉沽区|