
| 出版日期:2000-10-01 总期号:164 本年期号:10 |
|
利用ASP技术提交注册信息到数据库
林青松 各位在网上冲浪的时候,一定会经常碰到要提交注册信息的表单。在愉快注册的同时,你是否想知道它的实现过程呢?提交处理技术有CGI、ASP、E-mail等多种,下面就以目前最流行的ASP技术为例介绍如何利用ASP技术把注册表单与数据库连接。 一、环境要求 因为ASP 是一套服务器端的脚本语言,当用户从浏览器向 Web 服务器请求 .asp 文件时,ASP 脚本开始运行,然后Web服务器调用ASP,ASP全面读取请求的文件,执行所有脚本命令,并将Web页传送给浏览器,这就意味着你不能简单地在现有的操作系统( 如 Windows 95、98)下,用浏览器中的“ 打开” 命令来浏览 .asp 文件;所以运行 .asp 文件需要服务器端的支持,目前除了 WindowsNT下的 Microsoft Internet Information Server 支持 Active Server 技术,Active Server 还可用于MS Windows NT Workstation 和 MS Windows 95/98 中的 Personal Web Server 的构件,因此无论你安装的是NT还是Windows 95/98,都必须在原系统上安装支持ASP的服务器端环境,才能使你的机器得以运行 .asp 文件。 由于目前绝大多数朋友安装的是Windows 95或98,因此就在这里着重介绍如何在 Windows 95/98 下运行和浏览 .asp 文件。因为 MSPersonal Web Server 支持通用网关接口(CGI) 应用程序、 Internet 数据库接口(IDC) 应用程序和 IIS 应用程序接口(ISAPI) 应用程序,并且支持运行和开发 ASP 应用程序,所以使得 Windows 95 及其以后操作平台Windows 98具备了近似于 NT 的健全的网站运作和管理功能。你所要做的只是在现有的 Windows 95/98 系统上安装 MS Personal Web Server。找一张完整的Windows 98安装盘,PWS4.0的安装文件在H:\addoins\pws目录下面(H为光驱盘符)。当安装完成后,PWS4.0 会在系统启动时自动加载。把要发布的文件存放在C:\intepub\wwwroot子目录下面(C:为PWS安装的盘符)。 二、注册表单(register.htm) 注册表单用Frontpage2000就可以制作,完成后如图1所示。
图1 在这里又一个技巧需要指明:为了真正实现客户机/服务器(ASP的最重要优点)的模式功能,充分发挥各自的作用,应该在提交表单到服务器前客户机对表单的信息进行规范性监测。在这个注册表的源程序中,用了一个test函数来检测信息规范性,test函数代码如下(直接插入Html语言中就行了): 〈SCRIPT〉 function test() { if(main.id.value.length==0) { alert("请填写用户名"); return false;} if(main.nickname.value.length==0) { alert("请填写昵称"); return false;} if(main.password.value.length==0) { alert("请填写密码"); return false;} if(main.password.value!=main.com.value) { alert("密码不符,请确认"); return false;} if(main.name.value.length==0) { alert("请填写你的姓名"); return false;} if(main.email.value.length==0) { alert("请填写你的email地址"); return false;} if(main.email.value.indexOf("@")〈1 || main.email.value.indexOf(".")〈1) { alert("请填写正确的email地址"); return false;} if(main.certificate.options[main.certificate.selectedIndex].text=="身份证"){ if(!(main.csn.value.length==15 || main.csn.value.length==18)) { alert("身份证号必须为15位或18位"); return false;} if(!(main.csn.value〉0)) { alert("身份证号必须为数字"); return false;} } if(main.address.value.length==0) { alert("请填上你的地址"); return false;} if(main.postcode.value.length==0) { alert("请填上你的所在地邮政编码"); return false;} if(main.telphone.value.length==0) { alert("请填上你的电话"); return false; } } 〈/SCRIPT〉 test函数可以通过在form标识中调用: 〈form action="success.asp" method="POST" name="main" onsubmit="return test();"〉 action="success.asp"表明服务器端处理程序名为success.asp,method="POST"表示提交方式为“POST”,name="main"指明表单的名称为“main”,onsubmit="return test();"就是调用检测函数的语句了。 三、建立数据库 利用ACCESS建立数据库,利用新建在c:\intepub\wwwroot下面创建feilang.mdb,然后使用表设计器建立表user,各字段如图2所示。
图2 除了“用户编号”为自建为主健外,其余的各个字段都要与注册表单中的注册项一一对应(名称可以不一样,但在下面的服务器处理程序(success.asp)中也要注意不一样)。 数据库建立后,要把数据库与系统服务器相连接,步骤如下: ① 在“控制面板”中双击“ODBC数据源”,选取“系统DSN”,如图3。
图3 ② 点击“添加”选择“Microsoft access driver(*.mdb)”点击“完成”后仿照图4设置参数。
图4 设置完成后单击“确定”完成数据源的设置。 四、服务器处理程序(success.asp) 下面给出服务器端处理程序的源代码: 〈% @language=vbscript %〉 〈% Option Explicit 'response.expires = 0 〈:--为各个参数作变量说明 〉 Dim strmem,strnick,strsex,strpw,strmail,strName,strcg,strcsn,stradd,strzip,strtel Dim objConn,objRS,strconn 〈:--为数据库连接说明变量〉 strmem = Trim(request.Form("id")) 〈:--清除注册表单各项注册信息值中的空格,同时赋指给strmem,id为注册表单中的“用户名”项的变量名〉 strnick = Trim(request.Form("nickname")) strsex=Trim(request.Form("sex")) strpw = Trim(request.Form("password")) strmail = Trim(request.Form("email")) strname = Trim(request.Form("name")) strcg = Trim(request.Form("certificate")) strcsn = Trim(request.Form("csn")) stradd = Trim(request.Form("address")) strzip = Trim(request.Form("postcode")) strtel = Trim(request.Form("telphone")) Set objConn = server.CreateObject("adodb.connection") 〈:--建立数据库连接 〉 strConn = "dsn=feilang" 〈:--设立数据源,在建立数据库一节中我们把数据库源命名为“feilang”(图4)所以这里打开的就是“feilang ”〉 objConn.open strconn 〈:--利用建立的连接打开数据源 〉 set objrs=server.createobject("ADODB.recordset") 〈:--为数据库中的返回数据作连接〉 objrs.Open "SELECT * FROM user",objconn,1,3 〈:--从数据库中选取符合条件的数据项,user为feilang.mdb文件中的表名〉 objrs.addnew 〈:--添加新数据〉 objrs("用户名")=strmem 〈:--数据库feilang.mdb中表user中的字段名称,把前面strmem得到的值传给user表中的“用户名”字段〉 objrs("昵称")=strnick objrs("性别")=strsex objrs("密码")=strpw objrs("真实姓名")= strname objrs("E-mail")= strmail objrs("证件类型")= strcg objrs("证件编号")= strcsn objrs("联系地址")= stradd objrs("邮编")=strzip objrs("电话")= strtel objrs.update 〈:--对数据库进行更新〉 %〉 〈html〉 〈:--从该句到最后都为注册成功后从服务器返回给客户端浏览器的信息〉 〈head〉 〈title〉register.asp注册申请〈/title〉 〈meta http-equiv="目录类型" content="文本/html; 字符集=gb2312"〉 〈/head〉 〈body bgcolor="#FFFFFF" 〉 〈div align="center"〉〈BR〉 〈font face="华文行楷"〉申请成功!〈br〉 〈font face="黑体" color="ff0000"〉〈%=strName%〉:〈:--注册时输入的注册人真实姓名项变量〉 〈/font〉 你好!〈BR〉 〈BR〉 请你等候电话通知.〈BR〉 谢谢!〈/font〉〈BR〉〈BR〉 〈%objrs.close 〈:--关闭建立的返回数据连接〉 objconn.close 〈:--关闭数据库连接〉 %〉 〈h3〉 〈/h3〉 〈/body〉 〈/html〉 把上面的代码用记事本编辑存为success.asp,存放路径为register.htm(注册表单文件)的同一路径下。打开浏览器,在地址框健入http://feilang/register.htm(feilang 为该电脑标识,右健点击“网络邻居”,单击属性,点击“标识”,“计算机名”即为该项名称),输入各项注册信息,回车后如果一切按照我所介绍的去做,你将会看到如图5所示的信息,恭喜你,成功了!
图5 此程序在我的电脑中测试通过,软硬环境为:赛扬300A,32MB内存,Windows 98第二版+PWS4.0。 怎么样,有点看不明白,没关系,有些语句可能也看不懂,这时你只要把那些语句照搬到你的程序中就行了(注意变量名要与你的其他程序保持一致的啊)。只要你按照我说的步骤去一步一步的做,你会慢慢的明白的,如果还是不明白的话,那就到我的主页上来把三个文件(register.htm、succsee.asp和feilang.mdb)打包下载(http://go.163.com/~flyingwaves/html/asp.zip),再在自己的电脑上分析分析吧,相信你一定会搞懂的!初次动手写稿,难免有不足之处,欢迎大家来信指教(lqslion@263.net)。 |
|||||||||||||||