1.字段是否空白,若空白则不接受。
2.输入的E-mail是否正确。
3.两次输入的密码是否一致。
4.用户名是否被使用
5.电子邮件是否被使用。
注册页面如图:
这个模块的功能实现中用Request.Form("name")来获取前端提交的name文本框的值。Form是Request的一个获得表单的集合。
为了检测用户名的长度,这里用到了VBScript的一个函数Cint()。下面是它的用法:
Cint(expression)
我们要把信息写入数据库,而数据库对一些特殊的字符无法正确处理,所以我们使用函数InStr()来判断那些字符不能在用户名中存在。用法如下:
InStr([start,]string1,string2[,compare])
验证完用户名还要对密码进行处理,密码是一个用户在博客中比较隐秘的部分,这里我们采取了MD5加密的方式,加密文件见inc文件夹下的md5.asp文件。
接着要对电子邮件地址进行验证,电子邮件地址的验证比较困难,因为电子邮件的用户名可以五花八门,后面的域名也是多种多样,但还是有一定的规律可循,本系统写了一个函数来检验电子邮件地址。
邮件地址"用户名@域名"是最简单的,在域名中包含的后缀有很多种。在程序name=Split(email,"@")里又用到一个VBScript的函数Split(),它的主要功能是返回基于0的一维数组,其中包含指定数目的子字符川。函数用法如下:
Split(expression[,delimiter[,count[,compare]]])
Split在这里的应用很明显,用@符号来拆分电子邮件地址,形成数组,然后判断数组长度。
验证完毕后,就要把数据写到数据库里了,但是在写入数据库之前我们还要验证一些信息,我们要保证用户名的唯一性,还要保证E-mail的唯一性,这些都是数据库内验证比较简单。
在注册模块中要向数据库中写入信息,这里将用到数据库有关的对象RecordSet,我们使用Server.CreateObject方法来创建这个对象。
5.4.2管理员登陆子模块
管理员登陆模块由管理员登陆页面组成,它是博客管理部分的登陆页面。
1.登陆页面流程图:
2.登录页面代码程序的实现部分:
登陆界面如上图所示。
管理员在前台输入并提交信息,每一个提交程序都会用到Form容器,在这个容器里含有两个输入对象,一个是用户名,一个是用户密码,系统的验证主要依靠这两个对象输入框来完成。
用户在在前台输入信息后,系统在后台要进行验证,以便管理员用户登陆,管理博客系统,验证代码见程序文件admin_login.asp.
这个程序的主要功能就是接受用户输入的参数,对用户输入的参数进行判断,判断通过后向数据库系统提交,返回数据库查询结果,当有相应的合法数据后,系统将把此用户的ID号赋给系统进行验证的Session变量,然后系统将直接到达博客系统的管理首页。
3.校验码产生的实现部分:
我们发现用户每次登陆时的验证码都不一样,这样做的目的是为了防止有人利用破解
程序暴力破解用户的密码。
程序设计由系统产生的随机数形成校验码,并绘成图片以显示数据于页面上,将其变为用户可视的校验码,生成此码的同时,将其数据存入系统缓存中,以便系统对数据的核实。
为实现此功能,引入Randomize初始化随机数生成器,使用说明如下:
Randomize[number]
Number参数可以是任何有效的数值表达式。
Randomize使用number参数初始化Rnd函数的随机数生成器,赋给它新的种子值。如果省略number,则使用系统计时期返回的值作为新的种子值。
数字的产生主要依靠以下程序语句:
<%SetAdos=Server.CreateObject("Adodb.Stream")%>
6博客管理系统模块
该模块是博客管理系统中的重要模块,它也是博客管理系统的主模块,该模块的功能丰富,管理员对本系统的后台管理与操作都将由该模块来完成。
该模块有如下几项功能:
博客管理(添加/管理日志、管理评论、管理博客公告)
会员管理(修改用户信息)
用户管理(添加/管理管理员)
系统管理(设置系统参数、备份数据库文件、添加/管理模版文件、管理上传文件、统计站内数据)
分类管理(添加/管理博客分类、添加/管理日志专题)
因此为实现各部分的功能,为每部分功能设计了相应的子模块。
现举部分子模块的详细设计:
6.1博客管理子模块
6.1.1模块简介
该模块用于对系统中所有的博客进行管理,该模块可以说是博客系统中最主要的模块,博客用户就是在这个模块中创建自己的博客发表自己的日志的。这个模板主要实现的功能有:发表/管理日志、管理评论。
6.1.2模块体系结构
本模块分成六个子模块:写新日志模块、管理日志模块、管理评论模块、专题分类模块、公告管理模块、模板管理模块。各模块之间关系如下:
图6-1模块体系结构图
6.1.3设计说明
(1)发表新日志子模块
写新日志是新闻管理页面的组成部分,为此设计了一个日志信息编辑录入页面,为了实现这个功能而设计了相应的数据库文件blog(日志信息表)表。此部分的信息是由博客用户提交的,当管理员提交新的日志信息时,系统会将数据存入blog表中。
1.发表新日志程序流程图:
系统就是根据下面的运行流程把新的日志信息写入数据库的。
程序流程如下左图
2.发表新日志程序的实现部分:
设计页面如上右图。
从图中可知发表新日志主要是填写标题、内容、和分类等信息,然后提交把日志信息保存在数据库中。
在这个模块中主要涉及到文件的上传,这里我们采用POST的信息传输方式,相对于GET方式POST比较灵活传输的数据量的大小不受限制,下面看一句关键的程序代码:
enctype="multipart/form-data"
这一句说明用户要上传多种格式的文件,大家在上传文件时一定要加上这一句,否则无法上传成功。详细代码见文件user_addblog.asp
(2)管理日志子模块
管理日志子模块是博客管理页面的组成部分,该模块的数据库文件为blog(日志信息表)表。此部分的信息是由博客管理员提交的,当博客管理员提交对日志的修改/删除信息时,系统会将修改数据存入blog表中或删除表中数据。
1.管理日志页面运行流程图:
2.日志管理功能程序的实现部分
日志管理主要就是对日志的修改、删除的管理,其中日志修改的程序跟我们上一节讲的发表新日志的程序是类似的,都是普通的表单提交/接受。
删除日志程序中首先利用FileExists方法判断要删除的文件是否存在。FileExists是FSO的一个方法,可以用来判断指定文件是否存在,如果指定的文件存在则返回True,否则返回False。FileExists的语法如下:
object.FileExists(filespec)
其中object是必选项,因为FileSystemObject对象的名称。Filespec也是必选项,为文件名,表示要确定是否存在的文件。如果文件不在当前的文件夹中,则必须提供完整的路径名。
如果文件存在我们就要删除它,我们采用File对象的Delete方法,通过FSO的GetFile方法获得对文件的所有属性的访问,并建立File对象。建立对象后就可以直接操作获得的文件对象了,使用Delete删除指定的文件的程序代码:
Setf2=fso.GetFile(MyPathRoot)
f2.Delete
除了采用File对象的Delete方法删除文件外,我们还可以利用FSO对象的DeleteFile方法删除指定的文件。DeleteFile方法的语法为:
Object.DeleteFilefilespec[,force]
Filespec为必选项,为要删除的文件名。
当使用DeleteFile时如果没找到匹配的文件,则会出现错误。DeleteFile方法在遇到出现的第一个错误时停止,该方法不会撤消错误发生前所做的任何更改。详细的
上一篇:
asp医药连锁店管理系统ASP+源代码+可执行程序+论文(论文和程序)
下一篇:
密切医患护患关系,开展健康教育