日期:2010-05-05  浏览次数:21475 次

实例四、结合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以后的代码继续执行,这样就轮不到数据插入那一段代码了。

  好了,关于判断语句的介绍就到这儿了,你可要掌握这点内容,在设计论坛时,它大有用处。

二、response对象——向客户端输出数据

  前面介绍的例子有用到了Response对象的write方法向客户端输出数据和和end方法结束脚本执行。本节将详细介绍它