万卷书>>电脑书籍>>网页制作>>网页制作软件使用>>ColdFusion 初级教程

WANJUANSHU.COM

数据输入检查

 

当你使用表单接收用户输入以执行数据库查询时,你通常希望在执行查询之前能对用户的输入进行检查。尤其是SQL语句需要特定的数据类型时,这种检查更加必要。


 

你可以对提交给ColdFusion Server的任何表单数据进行检查。ColdFusion提供了几种不同的数据输入检查类型。


 

数据输入检查类型

检查类型

描述

客户端

在CFFORM中,你可以通过ONVALIDATE属性指定一个JavaSript函数,用该函数完成输入检查。CFINPUT,CFGRID,CFSLIDER,CFTEXTINPUT,和CFTREE等标签都具有ONVALIDATE属性。

服务器端

在CFFORM中,你可以在支持输入检查的标签(如CFINPUT,CFTEXTINPUT)中使用VALIDATE属性,允许输入检查。

你也可以在HTML表单中使用隐含字段,这可以对几种通用数据类型进行输入检查。


 

必须输入的Form字段


 

HTML表单的缺点之一是它不能将字段定义为必须输入的字段。而对数据库应用程序来说,这是个很重要的要求,因此ColdFusion提供了一种服务器端的机制,强制用户必须在字段中输入数据。


 

要将一个字段定义为必须输入的字段,可以用一个隐含字段,其名字由后缀“_required”和要求必须输入数据的字段名组合而成。例如,要强制用户在字段”FirstName”中输入数据,可以使用如下语法;


 

<INPUT TYPE="hidden" NAME="FirstName_required">


 

如果用户没有在FirstName字段中输入数据,ColdFusion将不接受表单提交,而是返回一个错误信息,通知用户该字段必须输入数据。你可以用隐含字段的VALUE属性提供定制的错误信息。例如你想显示错误信息“You must enter your first name.”,可以使用如下语句:


 

<INPUT TYPE="hidden"


 

NAME="FirstName_required"


 

VALUE="You must enter your first name.">


 

隐含Form字段


 

HTML表单的另一个缺点是你不能对用户输入的数据进行检查。而ColdFusion可以利用表单中的隐含字段,对数据输入进行几种类型的检查。你可以用来进行输入检查的隐含字段后缀有如下几种:


 

使用隐含字段进行表单输入检查

字段名后缀

VALUE属性

描述

_integer

定制的错误信息

检查用户是否输入了数字,如果用户输入的是浮点数,则转换为整数。

_float

定制的错误信息

检查用户输入的是否是数字,不进行浮点数到整数的转换。

_range

MIN=最小值

MAX=最大值

检查输入的数字是否在指定的范围内,你可以指定上界和下界或其中之一。

_date

定制的错误信息

检查用户输入的是否是日期值,并将日期值转换为ODBC日期格式。它可以接受最常用的日期格式,如9/1/98,Sept.9,1998。

_time

定制的错误信息

检查时间值的正确输入,并将时间值转换为ODBC时间格式。

_eurodate

定制的错误信息

检查用户输入的是否是标准欧洲格式的日期值,并将 其转换为ODBC格式。


 

例子:隐含字段


 

下面的例子演示了如何用隐含字段进行数据输入检查。在这个例子中,被检查的表单包含字段”Rooms”,”Guests”,和”ArrivalDate”。为了保证Rooms字段输入一个整数,Guests字段的值在1到12之间,ArrivalDate字段输入一个合法的日期值,可以在表单中加入下列的隐含字段:


 

<INPUT TYPE="hidden"


 

NAME="Rooms_integer"


 

VALUE="You must enter a number for the Rooms field.">


 

<INPUT TYPE="hidden"


 

NAME="Guests_range"


 

VALUE="MIN=1 MAX=12">


 

<INPUT TYPE="hidden"


 

NAME="ArrivalDate_date"


 

VALUE="This is not a valid arrival date.">


 

VALUE属性是可选内容,如果你不指定该属性,则显示缺省的错误信息。


 

当表单被提交时,ColdFusion扫描所有的字段,寻找你所指定的检查规则,然后对用户的输入进行分析。如果输入的数据违反了任何规则,ColdFusion会显示给用户一个错误信息,用户必须返回前一个屏幕,修改输入的数据,然后重新提交表单。只有通过数据输入检查的表单提交才能被ColdFusion所接受。


 

数值型和日期型字段的自动检查


 

如果你使用CFINSERT或CFUPDATE,并且要操纵的数据库字段是数值型,日期型,或时间型,那么向这些数据库字段插入数据的Form字段会自动被检查。


 

两点补充:


 

·对一个字段设置检查规则并不能使该字段成为必须输入的字段。如果要求用户必须输入该字段,仍需要使用带有”_required”的隐含字段。


 

·数值数据通常包含逗号字符和美元符,对于使用了_integer,_float,或_range检查规则的字段,在检查输入数据和存入数据库之前,这些字符会被自动删除。

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书