马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。Dreamweaver|编程 实例4、联合DW MX办事器行动在办事器端查验表单的正当性
固然人人可使用DW MX的“行动”的反省表单生成JS代码来反省用户提交的表双数据是不是正当,但这是在客户端履行的,咱们的用户千奇百样,假如利用较低版本的阅读器能够会使客户端查验掉败,把不正当的信息拔出到数据库中。这是不答应的。上面咱们使用下面进修的request对象和判别语句添加到DW MX“办事器行动”代码中,完成办事器端查验表单,以根绝不正当的表单信息。
新建一个ASP页,用ACCESS创立一个数据表,设计两个字段:“uers”、“pws”,设这两个字段为必填字段。用“自定字符串”毗连数据库。在页面中拔出表单、三个文本域、一个按扭,表双方法为:“POST”,按扭类型为“提交表单”,三个文本域称号对应以下:
用 户 名:uers
密 码:pws
反复暗码:pws2
如今,请求这三项为必填项,而且“暗码”必需等于“反复暗码”,不然告知操作者,输出有误,请前往!。操作步调以下:
实例三(3)
1、拔出“拔出纪录”办事器行动,按“F12”键预览页面,能正常拔出纪录。
2、找到以下几句代码:
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) = "form1") Then
MM_editConnection = MM_new_STRING
MM_editTable = "use"
MM_editRedirectUrl = ""
MM_fieldsStr = "uers|value|pws|value"
MM_columnsStr = "Cuse|',none,''|pws|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
..........
拔出纪录代码....
%>
在下面这句“If (CStr(Request("MM_insert")) = "form1") Then”上面输出以下代码:
if request.Form("uers")="" then
response.write"对不起!请输出用户名!请<a href='untitled-5.asp'>前往!</a>"
response.end
elseif request.form("pws")="" then
response.write"对不起!请输出暗码!请<a href='untitled-5.asp'>前往!</a>"
response.end
elseif request.form("pws2")="" then
response.write"对不起!请输出反复暗码!请<a href='untitled-5.asp'>前往!</a>"
response.end
elseif request.form("pws")<>request.form("pws2") then
response.write"对不起!两输出的暗码不符合!请<a href='untitled-5.asp'>前往!</a>"
response.end
end if
形如:
If (CStr(Request("MM_insert")) = "form1") Then
'手写代码始
if request.Form("uers")="" then
response.write"对不起!请输出用户名!请<a href='untitled-5.asp'>前往!</a>"
response.end
elseif request.form("pws")="" then
response.write"对不起!请输出暗码!请<a href='untitled-5.asp'>前往!</a>"
response.end
elseif request.form("pws2")="" then
response.write"对不起!请输出反复暗码!请<a href='untitled-5.asp'>前往!</a>"
response.end
elseif request.form("pws")<>request.form("pws2") then
response.write"对不起!两输出的暗码不符合!请<a href='untitled-5.asp'>前往!</a>"
response.end
end if'手写代码停止
MM_editConnection = MM_new_STRING
MM_editTable = "use"
MM_editRedirectUrl = ""
MM_fieldsStr = "uers|value|pws|value"
MM_columnsStr = "Cuse|',none,''|pws|',none,''"
本例中,除request对象外,咱们用到了response对象的write办法输入提醒信息,和end办法来停止剧本履行,禁止response.end今后的代码持续履行,如许就轮不到数据拔出那一段代码了。
好了,关于判别语句的引见就到这儿了,你可要把握这点内容,在设计服装论坛时,它大有效处。
2、response对象――向客户端输入数据
后面引见的例子有效到了Response对象的write办法向客户端输入数据和和end办法停止剧本履行。本节将具体引见它。
response对象与request对象任务道理相反,response对象是把由request对象从客户端吸收过去的数据停止加工处置后,再把“加工“好的“制品”输入给客户端阅读器。
response对象语法格局:
response[(纠合)|属性|办法]
先尝尝response对象的奇异魅力。
1、response.write办法的利用――向直接客户端阅读器输入数据
实例1、利用response对象向客户端输入数据信息
新建ASP页,在<body></body>标签内输出以下语句:
<%response.write("接待进修response对象实例!") %>
完全代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无题目文档</title>
</head>
<body>
<%response.write("接待进修response对象实例!") %>
</body>
</html>
按“F12”键尝尝,是否是把文字显示出来?
response.writ办法还可以输入字串的了局或函数,假如是变量的话,就要先界说和赋值。response.write可输入HTML尺度格局代码。
实例2、利用response.write输入以后体系工夫及HTML超链接
在新建文件的<body>和</body>标签间输出上面代码:
<p>
<%response.write (now()) %>
</p>
<p>
<% response.write("<a href='index.asp'>翻开主页</a>")%>
这里的<a href='index.asp'>翻开主页</a>是尺度的HTML格局,不外'index.asp'用的是单引号,以免与ASP剧本抵触搅浑。
按“F12”尝尝后果。
注:经常使用的工夫函数:
now() 获得以后体系日期和工夫,ASP输入可以如许写:<%=now()%>
Year(now()) 获得年份, ASP输入:<%=Year(now())%>
Month(now()) 获得以后月份,ASP输入:<%=Month(now())%>
day(now()) 获得当天数,ASP输入:<%=day(now())%>
Minute(now()) 获得分钟数,ASP输入:<%=Minute(now())%>
Second(now()) 获得秒钟数,ASP输入:<%=Second(now())%>
date() 获得以后体系日期,格局为:2004-2-28
time() 获得以后体系工夫,格局为:22:24:59
用response.write办法输入字符串信息时,“()”纠合内必需在英文体例下的一对“""”双引号。假如是函数和数字类数据就不必了,如:
文本字符串输入:<% response.write ("输入文本信息")%>
函数输入:<% response.write (now())%>
数字输入:<% response.write (1142568147)%>
还可用“&”来准确辨别数字或函数和文本夹杂输入:
<% yy="这里输入变量的值了"'赋值给变量“yy”,假如是文本加“""”
response.write ( now()&" 这儿输入文本"&" "&yy ) %>
2、response.redirect办法――链接到新网址
假如但愿用户能在阅读器链接到别的一个网址的话,response.redirect办法可完成此功效。或许有些伴侣会想到用js代码也能完成这个功效呀!不外,咱们是在办事器端履行的,不受客户端阅读器版本影响。
实例3、“友谊链接”的页面
新建一个ASP页,拔出表单、列表/菜单、按扭,表双方法为“GET”,“列表/菜单”称号为“url”,“方针”为“_blank”,举措选择它本人。以下图:
列表/菜单的值和标签以下:
在<html>标签上方输出以下代码:
<% select case request.QueryString("url")
case "1"
response.Redirect("http://www.163.com")
case "2"
response.Redirect("http://www.sina.com")
case "3"
response.Redirect("http://www.sohu.com")
case "4"
response.Redirect("http://www.6to23.com")
end select
%>
完全的代码以下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% select case request.QueryString("url")
case "1"
response.Redirect("http://www.163.com")
case "2"
response.Redirect("http://www.sina.com")
case "3"
response.Redirect("http://www.sohu.com")
case "4"
response.Redirect("http://www.6to23.com")
end select
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无题目文档</title>
</head>
<body>
<form action="Untitled-6.asp" method="get" name="form1" target="_blank">
<select name="url" id="url">
<option value="1">网易</option>
<option value="2">新浪</option>
<option value="3">搜狐</option>
<option value="4">中国粹生网</option>
</select>
<input type="submit" name="Submit" value="提交">
</form>
</body>
</html>
按“F12”键,选择你想去的网站吧!
3、使response.write办法完成轮回输入
这里要触及到一个VBScript剧本言语,很复杂的,却很有效,今后咱们要做纪录集分页的时分,要用到它。
for...next轮回语句布局:
for 变量=肇端值 to 终值 step 步长值
轮回体
next
上面做一个小例子:
实例5、轮回输入字符数
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无题目文档</title>
</head>
<body>
<% for y=1 to 50%>
<%response.Write("字") %>
<%next%>
</body>
</html>
按“F12”键预览,履行了局以下:
可见,它把一个字反复50次后输入,假如没有设置步长值,将按默许值(为1)处置。设置步长值:
<% for y=1 to 50 step 2%>
<%response.write(y)%>
<%next%>
履行了局以下:
可见,输入是以“2”为步进的。
还可以改:
<%response.Write("字") %>
为:
<%response.write(y)%>
看看履行了局以下:
它把从“1”入手下手轮回以1为步进值输入直至“50”终始。
咱们就只先学这个轮回语句。还有其它的do...loop、do while...loop、do until...loop、while...wend轮回布局这里就不讲了,或许咱们临时会用不得手工接触这些器材。
4、response对象属性
response对象有上司性:
<LI class=pg23>buffer 办事器缓冲。 <LI class=pg23>charset 将字符纠合称号附加到response对象中的content-type题目的前面。 <LI class=pg23>contenttype 指定办事器呼应的HTTP内容类型。 <LI class=pg23>expires 指定在阅读器上缓冲存储页面过时工夫。
- expiresabsolute 指定在阅读器上缓冲存储页面切实其实切到期工夫。
response对象办法:
<LI class=pg23>write 向客户端直接输入信息。 <LI class=pg23>redirect 转向地址。 <LI class=pg23>end 中断法式履行。 <LI class=pg23>flush 用于当即发送办事器缓冲区中的输入,必需设置response.buffer=true,不然报错。
- clear排除办事器缓冲区中的一切HTML输入。
response纠合:
response.cookies纠合语法格局:
response.cookies(变量称号)[(key)|属性]=等于写入的信息
“变量称号”则是指定cookies的称号,以便页面可以读取分歧的cookies里的数据。
3、session对象――办事器特定用户会话
“session”对象在DW MX的匡助文档中称为“阶段变量”,当咱们在页面拔出“上岸用户”和“限制对页的会见”办事器行动后,它就是使用session对象来辨认用户是不是上岸。当创立该会话后,办事器对该页面停止跟踪,并分派内存存储session会话信息。session会话信息只要创立它的用户才干看到。
实例1、利用request.form办法将信息存储在session会话中
新建ASP页,在<HTML>标签上方输出这句代码:
<%session("MM")=request.Form("y")%>
在<body>和</body>间输出以下代码:
<form action="Untitled-6.asp" method="post" name="form1">
<select name="y" id="y">
<option value="网易">网易</option>
<option value="新浪">新浪</option>
<option value="搜狐">搜狐</option>
<option value="中国粹生网">中国粹生网</option>
</select>
<input type="submit" name="Submit" value="提交">
</form>
<p><%= Session("MM") %></p>
个中,<%= Session("MM") %>为读取session变量的值显示在页面上。
按“F12”键预览履行了局。
假如用request.QueryString办法数数据存储于session对象中的话,将<%session("MM")=request.Form("y")%>
改成:
<%session("MM")=request.QueryString("y")%>
便可。
1、session.adandon办法
session对象只要一个办法,即abandon办法,它的感化是删除一切存储在session对象的数据,并释访这些资本。假如未明白地挪用adandon办法,当会话超时(IIS办事器默许超不时间为900秒,这由空间办事器商决意),办事器将删除这些会话,以释放资本。
语法以下:
<%session.adandon%>
DW MX的“刊出用户”代码分析
<%
' *** Logout the current user.
MM_logoutRedirectPage = "index.asp"
Session.Contents.Remove("MM_Username")
Session.Contents.Remove("MM_UserAuthorization")
If (MM_logoutRedirectPage <> "") Then Response.Redirect(MM_logoutRedirectPage)
%>
这段代码中就利用到的是Session.Contents.Remove属性来指定要删除的某个session变量,假如不指定“Contents.Remove”而利用“adandon”的话,它会把该页面创立的一切会话删除,但有时咱们只需求删除个中一个或几个会话,而保存其它的会话形态。
删除多个会话:
Session.Contents.Remove("MM_Username")
Session.Contents.Remove("MM_UserAuthorization")
...
上面是DW MX的“限制对页的会见”办事器行动生成的代码:
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="yesno.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
个中这句“If Session("MM_Username") <> "" Then”就是用来判别“MM_Username”会话变量是不是有值,不然由“Response.Redirect(MM_authFailedURL)”转向失足页。
其实咱们可以写个更复杂的:
<% if session("MM_Uesrname")="" then
response.Redirect("失足页.asp")
response.end
end if
%>
该段代码判别“MM_Uesrname”session变量是不是为空,是的话,用response.Redirect("失足页.asp")办法将用户带到“失足页.asp”,并用response.end办法来停上一切剧本处置,所以这段代码最好放在页面头部。
也能够把
response.Redirect("index.asp")
改成:
response.write("对不起!请上岸!")
如许直接在统一个页面完成毛病提醒,不必那末的页转来转去,以便于站点文件办理。
好了,假如能纯熟地利用以上三个ASP内建的根基对象,就能够对DW MX的办事器行动停止修正,到达咱们的目标。还有其它的一些对象这里就不讲了,由于DW MX的办事器行动能为咱们生成这些代码,不用你从头至尾把ASP学个底朝天一样可以编出纷歧般的法式来。
上一页
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的 |