ASP编程:读取经由过程表单发送的数据
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。进修ASP,最主要的就是要把握ASP内置的六年夜工具。现实上,在上一讲中,我们已懂得了Response工具(是吗?有无弄错!),及Response工具中最经常使用的Write办法、Redirect办法和Expires属性。看到工具、办法、属性、汇合、事务这些观点(俺一个都不识!),假如之前没打仗过,伶俐的您就不要管这些观点了,晓得怎样用就好了,我的概念是刚入手下手关头在于摹仿。上面我们持续经由过程实例进修Request工具,为了加深了解,务请运转这些程序看看输入了局。1、利用Request.ServerVariables猎取情况变量,这部份内容很复杂,但猎取的内容却很主要,怎样猎取?请看下例:
<%@Language=VBScript%>
<HTML><BODY>
<%wuf8.asp
Response.Write"运转ASP文件的路径:"&_
Request.ServerVariables("Script_Name")&"<Br>"
Response.Write"前往content的数据长度:"&_
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>"
%>
<tablecolspan=8cellpadding=5border=0>
<tr>
<tdalign=CENTERbgcolor="#800000"width="109"><fontstyle="ARIALNARROW"color="#ffffff"size="2">情况变量名</font></td>
<tdalign=CENTERwidth=459bgcolor="#800000"><fontstyle="ARIALNARROW"color="#ffffff"size="2">内容</font></td>
</tr>
<tr>
<tdbgcolor="f7efde"align=CENTER><fontstyle="ARIALNARROW"size="2">
result1
</font></td>
<tdbgcolor="f7efde"align=CENTER><fontstyle="ARIALNARROW"size="2">
result2
</font></td></tr>
</table>
</BODY></HTML>
Now,你应当发明上一讲中的例程wuf2.asp本来是何等的easy!
注重:该程序的前面一部分HTML标志纯是为上面的例子作筹办的,以是不要以为奇异。那末,另有哪些情况变量呢?运转上面的例子就晓得了(本程序删除部分代码,最好往我站点下载源程序便于了解)。
<%@Language=VBScript%>
<%‘wuf9.asp
OptionExplicit
DimSv
%>
<HTML><BODY>
<tablecolspan=8cellpadding=5border=0>
<tr>
<tdalign=CENTERbgcolor="#800000"width="109"><fontstyle="ARIALNARROW"color="#ffffff"size="2">情况变量名</font></td>
<tdalign=CENTERwidth=459bgcolor="#800000"><fontstyle="ARIALNARROW"color="#ffffff"size="2">了局</font></td>
</tr>
<%
foreachSvInRequest.ServerVariables
Response.Write"<tr>"
Response.Write"<tdbgcolor=f7efdealign=CENTER><fontstyle=ARIALNARROWsize=2>"
Response.WriteSv
Response.Write"</font></td>"
Response.Write"<tdbgcolor=f7efdealign=CENTER><fontstyle=ARIALNARROWsize=2>"
Response.WriteRequest.ServerVariables(Sv)
Response.Write"</font></td></tr>"
next
%>
</table>
</BODY></HTML>
这里利用了For…Each轮回,用来枚举一个汇合中的一切元素。假如后半部分看不懂,请对比wuf8.asp,再瞧瞧运转了局,细心体味一下(甚么立场?)。
2、经由过程表单向服务器传送数据(也可如许了解,服务器端怎样读取客户端发送的数据)
做过主页,应当晓得良多主页一般都利用Form表单让用户输出数据,然后经由过程“submit(提交)”按钮发送数据。From表单中的“method”有两种次要办法:POST和GET,而“action”后一样平常都是指定一个.cgi、.pl或.asp文件,明天我们要进修的就是假如编写这个.asp文件。
(一)假如利用POST办法传送数据,则用Request.Form来读取数据。
先编纂以下一个wuf10.htm文件,供用户输出数据:
<html>
<bodybgcolor="#FFFFFF">
<formmethod="post"action="wuf11.asp">
姓名:<inputtype="text"name="yourname"><br>
性别:<selectname="gender">
<option>男</option>
<option>女</option>
</select><br>
留言:<textareaname="message">您好!
注重多行文本的处置</textarea><br>
喜好(按住Ctrl键可多选):
<selectname="hobby"multiplesize="4">
<option>电脑</option>
<option>购物</option>
<option>影戏</option>
<option>念书</option>
</select><br>
<inputtype="submit"name="Submit"value="提交">
<inputtype="reset"name="Submit2"value="Reset">
</form>
</body>
</html>
再编写一个wuf10.htm需用到的文件wuf11.asp搜集数据:
<%@Language=VBScript%>
<%wuf11.asp
OptionExplicit
Response.Expires=0
DimStrName,StrGender,StrM,StrMsg
StrName=Trim(Request.Form("yourname"))Trim函数用来除首尾空格
StrGender=Trim(Request.Form("gender"))
StrM=Trim(Request.Form("message"))
StrMsg=Replace(StrM,vbcrlf,"<Br>"&vbcrlf)
vbcrlf相称于回车符和换行符的组合。至于Replace函数,其感化就是将字符串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"共选择喜好项数:"&Request.Form("hobby").Count&"<Br>"
DimI
ForI=1toRequest.Form("hobby").Count
Response.WriteRequest.Form("hobby")(I)&"<Br>"
Next
%>
</BODY></HTML>
在这个的例子中,为了便于了解,我们利用了两个程序,实践上只利用一个程序也能够,假如有乐趣请看上面的例程wuf12.asp,有助于加深对情况变量的了解。
<%@Language=VBScript%>
<%wuf12.asp
OptionExplicit
Response.Expires=0
DimStrName,StrGender,StrM,StrMsg
IfRequest.ServerVariables("Content_Length")0Then
提交数据后,这个长度就不会是0,因而实行上面的语句,将了局显现出来
上面一部分实践上是照搬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"共选择喜好项数:"&Request.Form("hobby").Count&"<Br>"
DimI
ForI=1toRequest.Form("hobby").Count
Response.WriteRequest.Form("hobby")(I)&"<Br>"
Next
%>
</BODY></HTML>
<%
Else
当第一次加载页面时,没有提交任何数据,故后面一部分其实不实行,而是从这里入手下手
这也就是为何会有两对<HTML></HTML>的缘故原由
上面照搬wuf10.htm就好了
<formmethod="post"action="wuf11.asp">给用情况变量交换失落了,实在完整一样
Response.Write"看看了局:"&Request.ServerVariables("Script_name")&"<Br>"
%>
<HTML><BODY>
<formmethod="post"action="<%=Request.ServerVariables("Script_name")%>">
姓名:<inputtype="text"name="yourname"><br>
性别:<selectname="gender">
<option>男</option>
<option>女</option>
</select><br>
留言:<textareaname="message">您好!
注重多行文本的处置</textarea><br>
喜好(按住Ctrl键可多选):
<selectname="hobby"multiplesize="4">
<option>电脑</option>
<option>购物</option>
<option>影戏</option>
<option>念书</option>
</select><br>
<inputtype="submit"name="Submit"value="提交">
<inputtype="reset"name="Submit2"value="Reset">
</form>
</BODY></HTML>
<%EndIf%>
(二)假如利用GET办法传送数据,则用Request.Querystring来读取数据。
先编纂以下一个wuf13.htm文件,供用户输出数据:
<html>
<bodybgcolor="#FFFFFF">
<formmethod="get"action="wuf14.asp">
英文姓名:<inputtype="text"name="Ename"><br>
中文姓名:<inputtype="text"name="Cname"><br>
性别:<selectname="gender">
<option>男</option>
<option>女</option>
</select><br>
<inputtype="submit"name="Submit"value="提交">
<inputtype="reset"name="Submit2"value="Reset">
</form>
</body>
</html>
再编写一个wuf13.htm需用到的文件wuf14.asp搜集数据:
<%@Language=VBScript%>
<%wuf14.asp
OptionExplicit
Response.Expires=0
DimStrCname,StrEname,StrGender
StrEname=Trim(Request.QueryString("Ename"))Trim函数用来除首尾空格
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的效果,看看输入的了局,你会发明地点栏中长长的字符串素昧平生,好像在Yahoo搜刮时看到的差未几。这时候,你试着在地点栏中间接输出“http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女”,竟然也失掉了一样的了局。以是你能够如许看,wuf13.htm的了局就是失掉了相似如许的一个带参数的链接。而Request.QueryString则是从http://地点的附加参数中读取各个数据。
实践上,当按“提交”按钮后,查询字符串(输出的数据)会以参数的情势附加到URL地点后(各参数间以“&”分开),到达传送数据的目标。同时,注重扫瞄器中显现的查询字符串中没有中文,而是不熟悉的含百分号的乱码,这是由于举行了编码的原因。最初,与后面一样,这两个程序也可兼并为一个程序(例程wuf15.asp,需往我站点下载)。
几点申明:
1.若利用POST办法提交数据,则Request.ServerVariables("Content_Length")>0。
若利用GET办法提交数据,则Request.ServerVariables("Query_String")""。
2.弄懂道理后,你完整能够在统一个ASP文件中夹杂利用Request.Form和Request.QueryString。
3.假如在一个Form表单中,有几个按钮,你怎样断定用户按了哪一个按钮?假如寄望的话,会发明例程wuf11.asp中有一句,“提交”按钮的值也被传送,而wuf13.htm中天生的查询字符串最初也能够找到相似的值。请注重:只要被按按钮的值被传送,而其他按钮的值为””,这就是判别根据(《上钩报》InfoWeb网站有一篇相似文章)。
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]