各实体属性的E-R图
4.2 数据库逻辑结构设计
通过分析系统涉及的相关实体以及要收集、存储和操纵的数据信息,本网页数据库共设置了新闻信息表(News)等6个表,分述如下。
新闻信息表:用于存储新闻及政务信息。
表4-1 新闻信息表(News)
三农论坛表:用于存储论坛发帖。
表4-2 三农论坛表(BBS)
投诉留言表:用于存储群众来信、投诉、咨询及回复。
表4-3 投诉留言表(Message)
论坛注册用户表:用于存储三农论坛注册用户信息。
表4-4 论坛注册用户表(User)
后台管理员表:用于存储管理员姓名、密码、权限。
表4-5 后台管理员表(ManageUser)
网上调查表:用于存储网站调查项及投票。
表4-6 网上调查表(OnlineSurvey)
第 五 章 人机界面设计
5.1 后台登录界面设计
设计思想:登录页面主要实现用户的登录。通过用户名、密码、随机密码、IP、SessionID的组合验证实现未登陆用户的正常登陆和已登陆用户中同一用户名允许在同一IP上重复登陆,拒绝同一用户名在不同IP上重复登陆。
图5-1 登录流程图
图5-2 管理员登录界面
5.2 用户管理页面设计
设计思想:登录页面主要实现用户的登录,用户有超级管理员、普通管理员。超级管理员可以对其进行任何的操作,包括对普通管理员的增删、密码修改。一般用户只可以做权限之内的操作和只能对自身的信息作修改。
图5-3 用户管理流程图
图5-4 用户管理界面
5.3 信息检索页面设计
设计思想:根据输入的关键字实现单字段或多字段组合查询。
图5-5 信息检索流程图
5.4 后台管理页面设计
网站后台管理系统提供了添加新闻内容、管理全部新闻、领导信箱管理、在线咨询管理、公众留言管理、网上投诉管理、网上调查管理、信息中心管理、超级管理选项、文件上传十个功能选择项,可以完成新闻信息的在线编辑发布、咨询留言的在线回复、网上调查项的增减等管理任务。
图5-7 后台功能结构图
第 六 章 系统程序设计
前面着重讨论了系统功能模块的设计,详细分析了每一个模块的功能,本章将就系统中模块功能的具体实现,选取部分源程序进行讨论。
6.1 程序设计语言
网站主要采用ASP作为程序设计代码的开发工具。使用ASP作为开发工具可以方便地建立动态的、高性能的、安全的、跨平台的先进动态网站,其突出特点有以下几个:
ASP可以将内容的生成和显示进行分离
Web页面开发者可以用HTML或XML 标识进行对最终页面的设计,同时使用ASP Tag 或Java Script 来生成页面上的动态内容,因为所有的脚本都在服务器端运行, 所以, 如果核心逻辑部分被封装在标识中, 那么Web管理人员或页面设计者将只能编辑ASP页面的显示方式, 而不会影响其内容的实质。
对不同浏览器的兼容
由于ASP技术采用了将ASP Tag 和Java Script 在服务器端解释并执行而只将结果以HTML或XML的形式送回到客户端的方法, 从而保证了对其它基于HTML的Web浏览器的完全兼容。
6.2 部份源程序实现及文件
数据库访问技术
网页在采用微软IIS/PWS的网络平台,通过服务器端运行的ASP程序来访问后台Access数据库。数据库访问采用匿名身份验证方式,使用户无需输入用户名或密码便可以对数据库进行访问。匿名身份验证是指由 IIS创建IUSR、计算机名称、帐户(计算机名称是正在运行IIS 的服务器名称),当匿名用户请求数据库内容时IIS 会将该连接分配给 IUSER_ComputerName 帐户,其中ComputerName。默认情况下,IUSER_ComputerName 帐户为 Guests 组的成员。此组具有 NTFS 文件系统权限所规定的安全限制,这些限制指定访问级别以及可提供给公共用户的内容的类型。建立Access数据库连接的步骤及参数意义
第一行程序:建立一个ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。执行这行程序后,Conn成为一个连接对象。
第二行程序:建立一个ADO对象集中的Recordset对象,以便利用Recordset对象操作数据库(当然,这只是对数据库操作的多种方式之一)。执行这行后,rs就成为一个Recordset对象。
第三行程序:利用连接对象Conn的Open方法打开一个指定的数据库。首先利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DBQ中。其次,因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC驱动程序来访问数据库。到这里,就已经打开了数据库名指定的数据库。
第四行程序: Sql指令串。
第五行程序:利用rs对象的Open方法打开数据库中的数据表。这其中有四个参数,其意义
数据表名或SQL指令串:在这个参数里指定要打开的数据库内的数据表名称,或者是用SQL的Select指令串确定的数据表的指定范围数据
Connection对象:指定已经打开的数据库的Connection对象。
Recordset类型:表示打开数据表的方式,有四种选择。数字0表示只读方式,且当前记录只能下移;数字1表示可读写方式,当前记录可自由上下移动,但不能及时看到别的用户建立的新记录,除非重新启动;数字2表示可读写方式,当前记录可自由移动,而且可以及时看到别的用户增加的新记录;数字3表示只读方式,但当前记录可以自由移动。
锁定类型:这个参数指定数据库的锁定功能。因为网络上的数据库都是多用户的,很可能同时有多个用户在操作数据库。为了避免错误,让同一时间只可能有一个用户修改数据,就要用锁定功能。有四种选择:数字1表示只读方式锁定,用户不能更改数据;数字2表示悲观锁定,当一个用户用rs对象开始修改数据时就锁定数据库,直到用户用rs.Update更新记录后,才解除锁定;数字3表示乐观锁定,只有在数据写入数据库中的时候才锁定。数字4表示批次乐观锁定,只有在使用rs.UpdateBatch成批更新数据时候才锁定数据记录。
身份验证
本网站身份验证采用服务器端验证代码方式,密码算法采用流行的MD5算法,同时附加客户端随机密码验证。MD5全称Message-Digest Algorithm 5(信息-摘要 算法),是由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest在90年代初向IEFT提交的一种不可逆运算加密算法,经MD2、MD3和MD4发展而来,面向32位的电脑。登陆验证按一个IP可以有多个用户登陆,一个用户只能登陆一个IP的原则进行设计,具体代码及解释 (责任编辑:一枝笔写作)