国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

asp 讀取通過(guò)表單發(fā)送的post數據

發(fā)布時(shí)間:2021-08-17 12:10 來(lái)源: 閱讀:0 作者: 欄目: ASP 歡迎投稿:712375056

學(xué)習ASP,最重要的就是要掌握ASP內置的六大對象。事實(shí)上,在上一講中,我們已經(jīng)了解了Response對象,及Response對象中最常用的Write方法、Redirect方法和Expires屬性??吹綄ο?、方法、屬性、集合、事件這些概念(俺一個(gè)都不識?。?,如果以前沒(méi)接觸過(guò),聰明的您就不要管這些概念了,知道怎么用就行了,我的觀(guān)點(diǎn)是剛開(kāi)始關(guān)鍵在于臨摹。下面我們繼續通過(guò)實(shí)例學(xué)習Request對象,為了加深理解,務(wù)請運行這些程序看看輸出結果。

一、 使用Request.ServerVariables獲取環(huán)境變量,這部分內容很簡(jiǎn)單,但獲取的內容卻很重要,如何獲???請看下例:
代碼如下:
<%@ Language=VBScript %>
<HTML><BODY>
<% 'wuf8.asp
Response.Write "運行ASP文件的路徑: " &_
Request.ServerVariables("Script_Name") & "<Br>"
Response.Write "返回content的數據長(cháng)度: " &_
Request.ServerVariables("Content_Length") & "<Br>"
Response.Write "返回客戶(hù)的IP地址: " &_
Request.ServerVariables("Remote_Addr") & "<Br>"
Response.Write "瀏覽器名: " &_
Request.ServerVariables("HTTP_USER_AGENT") & "<Br>"
Response.Write "返回主頁(yè)實(shí)際物理路徑: " &_
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">內容</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,你應該發(fā)現上一講中的例程wuf2.asp原來(lái)是多么的easy!
注意:該程序的后面一部分HTML標記純是為下面的例子作準備的,所以不要覺(jué)得奇怪。那么,還有哪些環(huán)境變量呢?運行下面的例子就知道了(本程序刪除了部分代碼,最好去我站點(diǎn)下載源程序便于理解)。
代碼如下:
<%@ 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">結果</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),用來(lái)列舉一個(gè)集合中的所有元素。如果后半部分看不懂,請對照wuf8.asp,再瞧瞧運行結果,仔細體會(huì )一下(什么態(tài)度?)。

二、 通過(guò)表單向服務(wù)器傳送數據(也可這樣理解,服務(wù)器端如何讀取客戶(hù)端發(fā)送的數據)
做過(guò)主頁(yè),應該知道很多主頁(yè)通常都使用Form表單讓用戶(hù)輸入數據,然后通過(guò)“submit(提交)”按鈕發(fā)送數據。From表單中的“method”有兩種主要方法:POST和GET,而“action”后一般都是指定一個(gè).cgi、.pl或.asp文件,今天我們要學(xué)習的就是如果編寫(xiě)這個(gè).asp文件。
(一) 如果使用POST方法傳送數據,則用Request.Form來(lái)讀取數據。
先編輯如下一個(gè)wuf10.htm文件,供用戶(hù)輸入數據:
代碼如下:
<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>
愛(ài)好(按住Ctrl鍵可多選):
<select name="hobby" multiple size="4">
<option>電腦</option>
<option>購物</option>
<option>電影</option>
<option>讀書(shū)</option>
</select> <br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>

再編寫(xiě)一個(gè)wuf10.htm需用到的文件wuf11.asp收集數據:
代碼如下:
<%@ Language=VBScript %>
<% 'wuf11.asp
Option Explicit
Response.Expires=0
Dim StrName, StrGender, StrM, StrMsg
StrName = Trim(Request.Form("yourname")) 'Trim函數用來(lái)除首尾空格
StrGender = Trim(Request.Form("gender"))
StrM = Trim(Request.Form("message"))
StrMsg = Replace(StrM,vbcrlf,"<Br>" & vbcrlf)
' vbcrlf相當于回車(chē)符和換行符的組合。至于Replace函數,其作用就是將字符串StrM中的vbcrlf替換為"<Br>" & vbcrlf(請思考這個(gè)vbcrlf有什么用?查看輸出文件的HTML源碼就明白了),詳細請參考VBScript幫助。
%>
<HTML><BODY>
姓名: <%= StrName%><Br><Br>
性別: <%= StrGender%><Br><Br>
留言: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
實(shí)際上, "提交"按鈕的值也被傳遞: <Br>
<%= Request.Form("Submit")%><Br><Br>
<% '先把上面看懂, 有興趣再看看如何讀取多個(gè)選項
Response.Write "共選擇愛(ài)好項數:" & 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>

在這個(gè)的例子中,為了便于理解,我們使用了兩個(gè)程序,實(shí)際上只使用一個(gè)程序也可以,如果有興趣請看下面的例程wuf12.asp,有助于加深對環(huán)境變量的理解。
代碼如下:
<%@ Language=VBScript %>
<% 'wuf12.asp
Option Explicit
Response.Expires=0
Dim StrName, StrGender, StrM, StrMsg
If Request.ServerVariables("Content_Length") <> 0 Then
'提交數據后,這個(gè)長(cháng)度就不會(huì )是 0, 因此執行下面的語(yǔ)句, 將結果顯示出來(lái)
'下面一部分實(shí)際上是照搬 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 "共選擇愛(ài)好項數:" & 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
'當第一次加載頁(yè)面時(shí),沒(méi)有提交任何數據,故前面一部分并不執行,而是從這里開(kāi)始
'這也就是為什么會(huì )有兩對 <HTML></HTML> 的原因
'下面照搬 wuf10.htm 就行了
'<form method="post" action="wuf11.asp"> 給用環(huán)境變量替換掉了, 其實(shí)完全一樣
Response.Write "看看結果: " & 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>
愛(ài)好(按住Ctrl鍵可多選):
<select name="hobby" multiple size="4">
<option>電腦</option>
<option>購物</option>
<option>電影</option>
<option>讀書(shū)</option>
</select> <br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="Reset">
</form>
</BODY></HTML>
<%End If%>
(二)如果使用GET方法傳送數據,則用Request.Querystring來(lái)讀取數據。
先編輯如下一個(gè)wuf13.htm文件,供用戶(hù)輸入數據:
<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>
再編寫(xiě)一個(gè)wuf13.htm需用到的文件wuf14.asp收集數據:
<%@ Language=VBScript %>
<% 'wuf14.asp
Option Explicit
Response.Expires=0
Dim StrCname, StrEname, StrGender
StrEname = Trim(Request.QueryString("Ename")) 'Trim函數用來(lái)除首尾空格
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>

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

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

久久久国产打桩机| 久久综合亚洲鲁鲁五月天| 国产99久久久久久免费看| 精品人妻一区二区三区四区在线| 亚洲色无码一区二区三区| 国模无码一区二区三区|