基于web的赴台展会人员管理系统设计与实现

news2024/12/24 8:53:29

博主介绍:专注于Java .net  php phython  小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作

☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

系统需求分析

2.1 业务描述

网站的工作流程主要分为两部分:后台管理员对系统数据维护,前台会员对新闻信息浏览;后台管理员与前台会员针对申请表的交互操作。

后台数据库主要对数据信息进行管理,包括添加,修改,删除等…用户在前台可以浏览系统中的的新闻信息;其次是会员提交申请表,后台管理员查看审核,未通过审核则反馈给前台会员未通过的原因,当审核通过,申请表状态则改变。网站详细工作流程如下图2.1所示:

图2.1 网站工作流程图

Fig.2.1 work flow chart

2.2 系统分析

根据业务分析系统的主要的功能包括新闻管理,留言管理,用户管理,相册管理,新闻用户评论管理,数据备份管理等主要功能,新闻管理包括系统的新闻进行管理,以及相关增加删除,对新闻信息进行基本维护,用户可以对新闻信息进行评论,实现了普通用户可以对系统的新闻发表自己的看法,在系统内通过留言的方式留下痕迹,并且可以对已经有的留言进行回复。系统过图片管理功能展现台湾的风貌,让那个系统使用者更多的了解台湾,而对系统管理员来说需要对着图片进行有效的管理,同时对图片和相册管理。系统主要的服务对象是系统的普通用户,使用者通过注册成为系统普通用户,普通用户可以进行注册和登录基本功能,也可以在系统内进行系统留言,同事填写赴台申请表,通过附件的形式把申请提交给管理员,等待审核等基本功能。系统管理员,可以已经注册的系统内的会员进行管理员。对系统内的数据库安全性,及备份达到实时在线维护的功能,根据这些功能分析得出系统分析图,如图2.2所示。

图2.2  系统分析图

Fig.2.2  System Analysis chart

2.3 系统ER图分析

通过系统的er图分析得出,系统的基本模型,方便分析系统数据库模型,通过系统的业务分析及系统分析。新闻类别实体和新闻实体是一对多的关系即1:M,一个新闻类别可以有多个新闻信息。一个新闻信息可以有多个评论,所以关系是1:M。系统管理员用户信息实体,主要包括管理员的编号,用户名,和密码等主要信息。系统针对的普通用户建有用户信息实体表,和申请表是一对多的关系即1:M,通过这些实体ER图形成整体赴台系统ER图

图2.3 ER图

Fig.2.3 ER chart

2.4 功能模型分析DFD

功能模型流程图可以形象的展现出程序的运行工作流程,对程序的开发起引导性作用,在软件工程中是必不可少的步骤。通过功能模型的分析,更加清晰分析出来赴台系统的具体功能未后续的开发提供更清晰的开发思路与设计思路。

图2.4 注册流程图

Fig.2.4  Register flow chart

说明:用户注册模块,账户、密码为必填项,其中两次输入密码必须相同,采用JS在客户端进行用户输入判断,当为空或者两次密码输入不相同时,阻止向服务器端提交数据,并通过javascript方式alert提示用户密码输入不正确 。当输入正确时,以POST方式提交数据,在服务器端,先检测当前用户名是否已经存在,若存在通过javascritp中alert形式给出提示,不让用户继续提交注册信息;如果用户不存在,则可以注册,将数据信息插入数据库,并且把登录人员的信息封装到session中方便系统其它的功能模块随时提取。通过此功能的分析更加清晰分析得出注册功能流程图,在开发过程中更加清晰注册的流程

图2.4 用户登录流程图

Fig.2.4  Login flow chart

说明:用户登录模块从客户端获取用户名和密码,然后,系统以post方式提交,在验证asp页面进行SQL查询与数据库会员表进行匹配,如果查询结果大于0,则表示有匹配记录,从而登录成功。同时在页面跳转前保存session(username)和session(userid)的值等用户的相关信息,方便系统其它功能随时取用。

图2.5 留言板流程图

Fig.2.5  Message Board Flow Chart

说明:留言板模块,从数据表中查询出数据,并分页列表显示。在循环输出每条留言的时候,判断该条记录的回复项是否为空,如果不为空,则显示出管理员回复。在留言功能,判断非登录用户无法留言,判断方法为检测session(username)是否为空,如果为空,则表示用户没有登录,给出提示,终止程序运行。在客户端同时检测留言内容是否为空,否则无法提交数据。如果用户正常登录,输入留言,向服务区提交数据,在留言表中,保存留言信息外,还保存用户ID值,标识此留言为该用户。

图2.6 新闻评论流程图

Fig.2.6 Comment Flow Chart

说明:新闻评论模块。该模块功能内容与留言板相似,区别在于,评论模块在客户端就可以检测用户是否登录。在评论出放一个隐藏域,其值为session(username),当用户正常登录,访问此页面时,该隐藏域的值就保存了用户的登录名。在提交表单时,客户端检测该隐藏域是否为空,为空,则表示没有登录;不为空,则表示用户已登录,提交数据,想数据表插入评论内容以及用户ID。

图2.7 申请表状态流程图

Fig.2.7 Application Table Status Flow Chart

说明:此模块分类三个阶段。(1)新注册用户,在数据库的申请表,没有数据信息,此时查看申请表状态时,显示,你还未申请表格。(2)用户提交表格申请,此时在数据表中就有此用户的表格数据,申请表状态改变为管理员审核状态,用户可以更新表格并提交,管理员查看后,如果拒绝审核通过,则可以反馈拒绝信息,用户在会员中心可以查看详细,并且更新表格信息,直到信息审核通过为止。(3)表格审核通过,生成对应用户的word表格下载地址,用户可以根据这个地址下载表格,并且填写信息,然后上传至服务器,提交给管理员,管理员可以在后台查看并且下载表格。

图2.8 搜索流程图

Fig.2.8 Search Flow Chart

说明:搜索模块分为多条件搜索,查询关键字的同事,可以按照不通新闻类别进行搜索。当选择全部新闻时,SQL查询语句为全查询,其他按相关条件进行classid的匹配。系统以列表的形式展现新闻信息

图2.9 前台风景相册流程图

Fig.2.9 Album Flow Chart

说明:相册模块分为相册类目和子图片。相册和图片都为同一个数据表,标识其区别为PID的值为0时,代表相册,其他值时为PID等于0的ID号。首先从数据表中查询PID=0的记录,即相册,通过相册传递其ID参数,然后通过此ID查询PID=ID的数据,即为该相册下的图片数据。

图2.10 密码修改流程图

Fig.2.10 Password modify Flow Chart

说明:与传统的密码修改方式一样,通过旧密码匹配,两次输入新密码,进行密码修改。首页,在客户端检测是否输入了旧密码,以及两次输入的新密码是否一致。然后,查询旧密码是否正确,匹配的条件为where admin_name=session(admin),即管理员登陆时保存的session变量。匹配正确,则进行密码的更新。

图2.11 留言管理流程图

Fig.2.11 Message Manage Flow Chart

说明:后台管理留言中,首页列表显示所有留言,并且标识是否回复以及是否审核。进入详细留言页面,管理员可以在此页面进行留言回复和审核操作。如果管理员输入了回复内容,则该条记录被认定为已回复,输入内容为空,则代表未回复。

图2.12 用户管理流程图

Fig.2.12 User Manage Flow Chart

说明:用户管理直接与用户申请表相联系。新注册用户,尤其没有对表格提出申请,所以显示未申请表格,对申请表格的用户,可以查看表格并且进行审核。管理员可以查看申请表的所有信息,如果拒绝通过审核,那么要标注拒绝的理由,方便用户修改不恰当的内容。用户在前端就可以查看并修改。如果执行审核通过操作,那么,系统按该用户身份自动生成一个URL地址,即为WORD表格的下载地址,会员在前端就可以按此地址下载表格。如果用户提交了WORD表格,管理员在后台可以查看,并且下载表格。

图2.13 友情链接管理流程图

Fig.2.13 Links Manage Flow Chart

说明:友情链接分为文字链接和图片链接。在后台添加的友情链接不需要审核,而前台用户申请的友情链接需要审核。文字链接不包含图片上传,所以采用JS判断选择的文字链接还是图片,则自动隐藏图片上传。

图2.14 新闻内容管理流程图

Fig.2.14 News Flow Chart

说明:后台新闻管理,对新闻进行添加,采用ewebeditor编辑器,可以自由上传图片,对内容尽心自由排版。新闻列表可以分类查看新闻,并对新闻进行删除,批量删除,置顶以及修改新闻。置顶操作就是将新闻的更新时间设为最新。修改新闻可以更改其任何内容,包括分类信息。

2.5 行为模型分析

针对会员登录进行系统模型分析,操作行为起始,是普通用户访问系统首页,如果不是系统会员,则需要注册会员,输入用户基本信息。注册完系统,可以查看系统内的新闻信息,可以搜索新闻信息,图片浏览以及,直接进行申请表格功能,如果是会员登录到系统中,可以在系统中的留言板进行留言,也可以浏览系统的新闻,并可以对新闻发表评论并且可以查看其他人对新闻的评论,会员进行操作这些功能之后,退出系统,操作结束功能如图2.15所示

0

图2.15  行为模型分析图

Fig.2.15 Behavior Model Analysis Chart

2.5 网络结构分析

通过网络结构分析,系统的主要的功能包括注册登录功能、新闻列表功能、相册功能、留言板功能、以及后台管理功能,其中后台管理功能包括基本管理功能、用户管理功能、留言管理功能、评论管理功能、相册管理功能、新闻管理功能、友情连接管理功能、数据备份功能,注册功能主要包括,会员中心功能,用户通过登录后,可以修改的自己的个人信息,系统并实时保存,并可以填写赴台申请表,提交给系统管理,系统管理员,会员可以随时查看申请状态信息。给用户使用的功能为了简化操作,系统独立组注册系统用户,系统使用系统自带的登录功能,查看系统新闻并可以对新闻内容进行评论和查看其他人对新闻的评论看法,以及查看相册功能,以上是普通用户操作功能。系统管理员通过主要对系统的内部基本信息进行管理,主要包括对系统会员进行管理,按照新闻类别发布新闻信息,可以回复系统会员对新闻的信息,对系统内的相册图片信息进行管理,会员可以在系统使用过程中,可以进行留言和查看其他留言功能。管理员也通过通过友情链接功能和其他网站进行友情链接交换,方便用户访问。系统还提供数据备份功能,通过备份功能,备份系统内同内的access数据库信息,以防系统被黑客攻击等防范措施。管理员对以上网站基本信息维护以达到维护系统正常运行的作用,主要对系统用户的管理功能如图2.16所示。

图2.16 网络结构分析图

Fig.2.16 Network Structure Analysis Chart

2.6 安全性分析

产品安全性对每个项目来说都是至关重要的,安全性直接影响到产品的自身价值和商业价值,所以,产品的安全性分析是整个软件工程中极其重要的环节。本课题参考传统的安全技术防范措施,结合直接所学的只是,对本课题的安全性进行如下分析:

1.数据库是整个网站的核心,是最重要的一个环节,防止数据库被破坏是网站安全性中最重要的任务。首先要防止数据库被下载,这个环节是必须的,数据库包含了网站的所有,所以,我们需要数据库后缀名进行更改,不能用.MDB,需要改成.ASP,其次,数据库文件也需要更改为特殊名字,比如特殊符号的组合,中间加上”#”,这样就能有效得防止数据库被下载,从而维护了网站的关键。

2.防止非法用户通过SQL注入行为获取数据库信息,这也是必须防止的。传统的SQL注入有GET和POST两种方式,其实还有一种COOKIES注入方式。过滤一些非法SQL关键字,比如“select , insert , delete…”等能够有效的防止非法用户进行SQL注入,从来保护数据信息部被泄露。

3.后台系统是网站对网站数据库操作,非法进入网站后台,就好比非法用户得到了数据库,可以进行任意操作,所以,防止非法用户进入网站后台是极为重要的。首先防止暴力破解获取登录密码,所以后台登录加上验证码能够有效防止暴力破解。其次,在后台每个页面中加入权限检查,不允许用户直接在地址栏输入后台管理页面进入,一但发现是外部链接立刻返回登录页。在后检测管理员登录的session变量值是否为空,为空则表示未登录系统,立刻跳转到登录页。

4.MD5密码加密,这几乎是所有网站都采用的密码加密方式,最直接,最有效得防止黑客获取数据库信息后,得到的会员密码不是真正的密码,而且加密后的字符串,有效率的保存了网站用户的利益。

5.数据备份。由于系统因素以及人为因素,不可预测会发生系统崩溃,黑客攻击,挂马等…所以定期备份数据库,能够避免在意外发生后减少损失。


第三章 系统设计

3.1 设计原则/目标

快捷、真实、共享,这就是本课题的设计原则。我们的目的在于为即将赴台的用户提供一个完善、专业的信息交流平台,让用户能够在我们的平台上获取他们想要的信息,第一时间能够了解当地的最新动态,帮助用户策划赴台行程及注意事项。除此之外,我们还帮助用户进行赴台申请,用户可以在线提交申请单,由我们代为申请赴台,最大话的方便了客户,体现出我们平台真正的意义所在。用户通过注册成为系统会员,然后提交赴台申请给系统管理员,系统管理员处理申请,然后会员可以查看申请提交后的审批状态。如图:

3.2 体系结构设计

系统从用户使用的角度来区分为两部分,一部分是普通用户使用功能,包括新闻列表功能,会员中心功能,留言板功能,网站相册功能。这部分功能主要是针对普通用户浏览所需要的新闻信息,达到基本在线功能交互的功能。而另一部分的是管理员用户使用的功能,主要功能包括新闻管理功能、用户管理功能、留言管理功能、相册管理功能、相册管理功能、数据备份功能,等对系统内数据维护的基本功能对系统保障运行的功能,这些功能是为了管理员能够保证系统正常运行的基本功能,对系统数据进行有效的管理,确保网站能够正常运行,方便系统管理员对系统进行管理,也方便用户方便的提交赴台申请,充分利用的意义所在。

图3.1 体系结构分析图

Fig.3.1 Architecture Structure Analysis Chart

3.3 功能结构

系统的主要的功能结构包括两部分,即系统前台应用和系统后台管理。系统前台应用包括会员注册、会员登录、新闻列表、新闻搜索、会员中心、留言板、填写申请表、查看申请表的提交的审核状态、网站相册等主要功能,用户通过这些功能进行网站信息浏览,以及进行赴台申请的审核状态的查看。系统后台管理主要功能包括用户管理、留言管理、公告管理、评论管理、相册管理、文章管理、数据管理,系统过管理员通过这些功能对信息进行维护,使网站能够正常的运行。

图3.2  功能结构分析图

Fig.3.2 Function Structure Analysis Chart

3.4 数据库设计

数据库设计直接引导程序的开发流程。良好的数据库设计能够减少程序设计工作量,最大化提高工作效率,以下我本课题的数据库设计信息。

这一设计阶段是在需求分析的基础上,分析各数据存储之间的关系,然后得出系统的关系模式。本系统采用实体-联系图(简称E-R图)来描述系统的概念模型。E-R图由实体、属性、联系三部分组成,其符号如图:

本系统主要规划的主要信息实体有用户信息实体、申请表信息实体、评论信息实体、留言信息实体、新闻信息实体、以及新闻类型信息实体,数据库的整体ER模型如下图:

图3.3  数据库整体ER模型图

Fig.3.3 Database ER Model Chart

图3.4 分类表、新闻表、评论表关系图

Fig.3.4 the relationship of class table,news table and comment table

图3.5 用户表与申请表关系图

Fig.3.5 the relationship between user table and application table

图3.6 用户表与留言表关系图

Fig.3.6 the relationship between user table and message table

表3.1 admin 管理员表的数据结构

Tab3.1 administrator table

字段名称

数据类型

说  明

id

自动编号(int)

自动编号

admin

文本

管理员帐号

password

文本

管理员密码

                           

表3.2 class 新闻类别表的数据结构

Tab3.2 News Class table

字段名称

数据类型

说  明

ClassId

数字

类别编号

ClassName

文本

类别名称

表3.3 Feedback 留言表的数据结构

Tab3.3 Message table

字段名称

数据类型

说  明

id

自动编号(int)

自动编号

UserName

文本

留言用户

UserMail

文本

留言邮箱

Comments

备注

留言内容

Postdata

日期/时间

留言时间

Replay

备注

回复内容

ReplayDate

日期/时间

回复时间

Online

文本

是否显示:1显示,0隐藏

IP

文本

留言者IP地址

表3.4 gonggao 公告表的数据结构

Tab3.5 notice table

字段名称

数据类型

说  明

D_id

自动编号

主键

title

文本

公告标题

D_bz

备注

公告内容

D_date

日期/时间

默认系统时间now()

Click_num

数字

浏览量

表3.5 News 新闻表的数据结构

Tab3.5 News table

字段名称

数据类型

说  明

id

自动编号(int)

自动编号

Title

文本

新闻标题

Content

备注

新闻内容

Classid

数字

新闻类别

oColor

文本

标题颜色

picUrl

文本

新闻图片地址

Come

文本

新闻来源

Addtime

日期/时间

添加时间

updatetime

日期/时间

更新时间

Hits

数字

点击量

表3.6 Pic 相册表的数据结构

Tab3.6 album table

字段名称

数据类型

说  明

id

自动编号

主键

Pic

文本

图片地址

Title

文本

标题

content

备注

描述

pid

数字

0为相册,其他为相册ID号

addtime

日期/时间

添加时间

表3.7 评论表的数据结构

Tab3.7 comments table

字段名称

数据类型

说  明

pinglunid

自动编号

主键

Id

数字

新闻ID

Pinglunname

文本

评论用户

Pinglundate

日期/时间

评论时间

pingluncontent

备注

评论内容

表3.8 sogo_link 友情链接表的数据结构

Tab3.8 links table

字段名称

数据类型

说  明

id

自动编号(int)

自动编号

sogo_link_url

备注

链接地址URL

sogo_link_font

备注

链接文字

sogo_link_login

备注

LOGO链接地址

sogo_link_alt

备注

ALT文字提示

sogo_link_logo_or_txt

数字

文字连接或图片链接

sogo_link_yes_no

数字

是否审核通过

link_paixu

数字

排序编号

表3.9 Stable 申请表的数据结构

Tab3.9 Application Table

字段名称

数据类型

说  明

id

自动编号(int)

自动编号

userid

数字

用户ID

username

文本

用户姓名

sex

数字

性别,1为男,2为女

sr

文本

生日

height

文本

身高

jg

文本

籍贯

pic

文本

头像

mz

文本

民族

zz

文本

政治面貌

school

文本

毕业学校

xueli

文本

学历

work

文本

工作

job

文本

职位

phone

文本

联系电话

email

文本

邮箱

yb

文本

邮编

address

文本

地址

jianjie

备注

个人简介

bljl

备注

不良记录

ftll

备注

赴台理由

liyou

备注

申请理由

beizhu

备注

备注

updatetime

日期/时间

更新时间

S_tatu

数字

状态

S_why

备注

拒绝理由

filepath

备注

文件地址

表3.10 User 用户表的数据结构

Tab3.10 users table

字段名称

数据类型

说  明

id

自动编号

主键

UserName

文本

用户名

Password1

文本

用户密码

Realname

文本

真实姓名

sex

数字

性别

Email

文本

邮箱

jieshao

备注

个人介绍

表3.11 webBasicInfo 网站基本信息表的数据结构

Tab3.11 website information table

字段名称

数据类型

说  明

id

自动编号

主键

Sitename

文本

网站名称

Keywords

文本

关键字

LOGO

文本

网站LOGO地址

QQ

文本

联系QQ

Skype

文本

在线skype

msn

文本

MSN联系

Ad1

文本

顶部广告

Ad2

文本

中部左侧广告

Ad3

文本

中部右侧广告

about

备注

关于我们介绍

3.5 界面设计

Dreamweaver的可视化编辑环境能够很直观的帮助我们进行页面布局设置,设计出漂亮的界面来。首页,在Photoshop里面设计出效果,然后在PS里面进行相应的切片操作,将文件和图片都保存到本地,在dreamweaver中,去掉填充部分,最后进行程序编写,输出数据。考虑到网站的性质和规模,本站大多采用table方式布局,在兼容性有足够的优势。首页效果图如下所示。

图3.7页面显示图(Fig3.7 Page Show )

首页布局采用服务器端文件包括的方式进行网站的统计风格,顶部top.asp和顶部foot.asp包含在前台的每个页面中,这样统一了网站的风格。

后台布局采用框架集,即左侧导航不刷新,右侧框架内显示操作内容,代码如下:

<frameset rows="94,*" cols="*" framespacing="0" frameborder="NO" border="0">

  <frame src="admin_top.asp" name="top" scrolling="NO" noresize>

  <frameset rows="*" cols="198,*" framespacing="0" frameborder="NO" border="0">

    <frame src="admin_left.asp" name="left" noresize>

    <frame src="admin_main.asp" name="main" noresize>

  </frameset>

</frameset>

3.6 过程函数设计

函数的编写设计在程序开发中直接影响到开发的效率和周期,优秀的函数设计可以大幅度减少代码量和工作量,提高工作效率。因为,程序设计尽量使用函数模块进行调用操作,同一个函数,通过不同的参数传递,可以实现许多类似的功能,很大程度上降低了代码的重用,优化了程序,使用程序更专业,运行效率更高!

分析本课题,发现运行模块化函数的地方比较广。前台新闻列表较多,可以用写一个过程函数,通过传递不通的新闻分类ID值,可以输出不通类别的新闻;前台多处用到分页,也可以将分页功能模块化,直接调用…..类似的地方很广,经过总结,分析出以下重要的过程函数。

  1. 新闻列表显示模块

'过程名:show

'作  用:以列表方式显示指定条数的新闻

'参  数:table  ----表名

'       url ----链接URL地址

'       num  ----查询记录条数

'       conclution   ----查询条件,不包含where

'       by ---排序列

'       h  ----输出行高

’       leftnum -----截取字符个数

说明:此模块用户首页各个部分的新闻列表显示,通过传递不通的conclution值来查询不通的记录。本站所有的新闻都放在同一个表,唯一的分类标识为classid,通过传递不通的classid值,获得不同分类的数据信息。

sub show(table,url,num,conclution,by,h,leftnum)

if trim(num)="*" then

   sql="select * from"

else

   sql="select top "&num&" * from "

end if

sql=sql&table

if conclution<>"" then

   sql=sql&" where "&conclution

end if

sql=sql&" order by "&by&" desc"

rs.open sql,conn,1,1

if rs.bof and rs.eof then

   response.Write("暂无内容...")

else

    if rs.recordcount>num then

   num=num

else

   num=rs.recordcount

end if

    response.Write("<table width='100%' border='0' cellspacing='0' cellpadding='0'>")

    for i=1 to num

response.Write("<tr height="&h&">")

response.Write("<td width='83%' align=left>")

response.Write(" <font style='color:#4B4B4B;'>·</font><a href='"&url&"?ID="&rs("ID")&"' target='_blank' title='"&rs("Title")&"'>"&newleft(rs("Title"),leftnum)&"</a>")

response.Write("</td>")

response.Write("<td align=left> <font style='color:#FF0000;'>["&month(rs("updatetime"))&"-"&day(rs("updatetime"))&"]</td>")

response.Write("</tr>")

rs.movenext

next

response.Write("</table>")

end if

rs.close       

end sub

  1. 分页模块

'过程名:showpage

'作  用:显示“上一页 下一页”等信息

'参  数:sfilename  ----链接地址

'       totalnumber ----总数量

'       maxperpage  ----每页数量

'       ShowTotal   ----是否显示总数量

'       ShowAllPages ---是否用下拉列表显示所有页面以供跳转

'       strUnit     ----计数单位

'***********************************************

Sub ShowPage(sfilename,totalnumber,maxperpage,ShowTotal,ShowAllPages,strUnit)

Dim n, i,strTemp,strUrl

If totalnumber mod maxperpage=0 Then

     n= totalnumber \ maxperpage

   Else

     n= totalnumber \ maxperpage+1

   End If

   strTemp= "<div align=center><br/>"

If ShowTotal=True Then

strTemp=strTemp&"共 <b>"&totalnumber&"</b> "&strUnit&"  "

End If

strUrl=JoinChar(sfilename)

   If CurrentPage<2 Then

     strTemp=strTemp&"首页 上一页 "

   Else

     strTemp=strTemp&"<a href='"&strUrl&"page=1'>首页</a> "

     strTemp=strTemp&"<a href='"&strUrl&"page="&(CurrentPage-1)&"'>上一页</a> "

   End If

   If n-currentpage<1 Then

     strTemp=strTemp&"下一页 尾页"

   Else

     strTemp=strTemp&"<a href='"&strUrl&"page="&(CurrentPage+1)&"'>下一页</a> "

     strTemp=strTemp&"<a href='"&strUrl&"page="&n&"'>尾页</a>"

   End If

    strTemp=strTemp&" 页次:<b><font color=red>"&CurrentPage&"</font>/"&n&"</b>页 "

    strTemp=strTemp&" <b>"&maxperpage&"</b>"&strUnit&"/页"

If ShowAllPages=True Then

strTemp=strTemp&" 转到:<select name='page' size='1' οnchange=""javascript:window.location='"&strUrl&"page="&"'+this.options[this.selectedIndex].value;"">"   

     For i = 1 to n   

     strTemp=strTemp&"<option value='"&i&"'"

If CInt(CurrentPage)=CInt(i) Then strTemp=strTemp&" selected "

strTemp=strTemp&">第"&i&"页</option>"   

    Next

strTemp=strTemp&"</select>"

End If

strTemp=strTemp&"</div>"

Response.Write strTemp

End Sub

  1. 截取字符串方法函数

'过程名:newleft

'作  用:截取指定字符串的指定前N个字符

'参  数:txt  ----截取的字符串

'       length r ----截取数量

Function newleft(txt,length)

txt=trim(txt)

x = len(txt)

y = 0

if x >= 1 then

for ii = 1 to x

if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) >255 then

y = y + 2

else

y = y + 1

end if

if y >= length then

txt = left(trim(txt),ii-2)&"..."

exit for

end if

next

newleft = txt

else

newleft = ""

end if

End Function

  1. 去处字符串中的HTML代码

‘参数 str : 过滤字符串

Function NoHtml(str)

Dim regEx

Set regEx=New RegExp

regEx.IgnoreCase=false

regEx.Global=True

regEx.Pattern="<script((.|\n)*?)</script>"

str=regEx.Replace(str,"")

regEx.Pattern="<(.|\n)+?>"

str=regEx.Replace(str," ")

str=" "&str

str=Replace(str," "," ")

regEx.Pattern="^( | |){2,}"

str=regEx.Replace(str," ")

Set regEx=Nothing

NoHtml=str

End Function

第四章 功能实现

    1. 前台主要功能的实现
      1. 用户登录功能的实现

图4.1 用户登录

Fig.4.1 User Login

图4.2 用户登陆

Fig.4.2 User Login

登录功能的原理是从会员表中查询匹配输入记录中的值,比如username值为 yy,密码为123123,那么SQL语句就应该是select查询,最后判断查询的结果是否为空,不为空,则匹配该条记录,保存session,在session中记录用户基本信息,包括登录人的用户名及用户的基本信息记录在session中, 用户登录时候,系统会通过记录的session信息时刻取出,包括变量username,userid,useremail 如果登录成功,直接进入用户操作界面。关键代码如下:

if Request("act")="login" then

if request("username")="" or request("password")="" then

response.Redirect(request.ServerVariables("HTTP_REFERER"))

else

sql="select * from [user] where username='"&request("username")&"' and password1='"&request("password")&"'"

rs.open sql,conn,1,1

num=rs.recordcount

if num=0 then

response.write "<script LANGUAGE='javascript'>alert('对不起,你输入的用户名或密码错误!');history.go(-1);</script>"

else

session("username")=rs("username")

session("userid")=rs("id")

session("usermail")=rs("email")

response.Redirect(request.ServerVariables("HTTP_REFERER"))

end if

rs.close

end if

end if

      1. 用户注册功能的实现

注册的功能是让系统使用者,能自动申请账户信息,达到账户自主申请,系统记录入使用者信息,系统先在注册前,系统提交过程中,先对用户名进行判断,首先初ado对象,以新做注册的用户名做为参数,查询数据库中是否有值,如果查询记录rs.recordcount大于0,则系统不让用户注册用户信息。用户正常注册用户信息。

图4.3 用户注册

Fig.4.3 Register

系统为为普通用户注册会员功能,包括输入用户名,密码,性别等,关键代码如下:

if rs.recordcount>0 then

      response.Write "<script LANGUAGE='javascript'>alert('改用户名已被占用!');location.go(-1);</script>"

   else

      sql = "insert into [User](username,password1,realname,sex,email) values('"&request("username")&"','"&request("psw")&"','"&request("realname")&"','"&request("sex")&"','"&request("email")&"')"     

  response.Write(sql)

  conn.execute sql

  response.Write "<script LANGUAGE='javascript'>alert('恭喜你注册成功!');window.close();</script>"

end if

      1. 新闻搜索

系统使用者对系统内的已经有的新闻信息进行查询,查询的条件包括两个,一个是新闻标题,另一个是新闻的分类,在代码处理的上,主要是页面的提交的过程中,系统通过request获得,新闻标题的内容和新闻类别,系统根据用户填写的信息,进行判断,如果用户填写信息,则拼接sql语句的查询条件,否则拼接相应的数据库的字段,形成sql语句中的where条件。

图4.4 新闻搜索

Fig.4.4 news search

新闻搜索匹配两个条件,关键字相似及新闻类别匹配。从列表菜单获取的值为新闻类别classid值,不通的classid,代表不通的新闻。关键代码如下:

if request("tb")=0 then

      sql="select * from news where title like '%"&request("keywords")&"%'"   strFileName="NewsList.asp?style=search&keywords="&request("keywords")&"&tb="&request("tb")

   else

  sql="select * from news where classid="&request("tb")&" and title like '%"&request("keywords")&"%'"    

  strFileName="NewsList.asp?style=search&keywords="&request("keywords")&"&tb="&request("tb")

   end if

执行上面获取的SQL语句,就可以查询到相关记录

用户留言功能实现
用户在系统使用中,可以在系统进行留言,系统回复,系统以信息的标题为主键,然后以留言的内容,进行标题进行回复,系统,主要以添加的系统的以留言的主键,隐藏,提交以request 形式获得留言的标题的主键,系统提交到系统,系统以列表的时候展现已经回复的留言,

图4.5 留言

Fig.4.5  Message

其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2112262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VSC++: 括号对称比较

括号的使用规则&#xff1a;大括号&#xff0c;中括号&#xff0c;小括号{[()]}&#xff1b;中括号&#xff0c;小括号[()]&#xff1b;小括号()&#xff1b;大括号、中括号、小括号、中括号、小括号、大括号{[()][()]}&#xff1b;大括号&#xff0c;中括号&#xff0c;小括号…

Reflection 70B:震撼AI行业的开源模型

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;开源与闭源模型的竞争变得越来越激烈。近日&#xff0c;Reflection 70B模型的发布在AI行业引发了巨大的震动。这款拥有70亿参数的开源模型不仅在多项基准测试中取得了优异成绩&#xff0c;还在很多情况下超越…

无人机之报警器的工作原理

无人机报警器&#xff08;通常指的是无人机上搭载的某种警报系统或装置&#xff0c;用于在特定条件下触发警报&#xff09;的作用原理可能涉及多个方面&#xff0c;但具体到无人机报警器这一组件&#xff0c;其原理往往与无人机的整体安全监控、电池状态监测或任务执行中的特定…

基于Java+SpringBoot+Vue+MySQL的美发管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的美发管理系统【附源码文档】、前后端分…

揭秘循环购模式:如何实现消费增值与日常收益

欢迎各位&#xff0c;我是吴军&#xff0c;你们的电商策略顾问。今天&#xff0c;我将向大家介绍一种新颖的商业模式——循环购模式&#xff0c;它如何为商家和消费者创造价值。 你可能会好奇&#xff0c;为何会有“消费1000元&#xff0c;赠送2000元”的优惠&#xff1f;以及…

算法练习小技巧之有序集合--套路详细解析带例题(leetcode)

前言: 本文详细讲解Python中的有序集合SortedList和C中的有序集合multiset的用法&#xff0c;配合leetcode的例题来展示实际的用处。(本人水平不够&#xff0c;还无法讲解有序集合的实现方法&#xff0c;只会用) 觉得有帮助或者写的不错可以点个赞&#xff0c;后面也有几道我找…

[数据集][目标检测]抽烟检测数据集VOC+YOLO格式22559张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;22559 标注数量(xml文件个数)&#xff1a;22559 标注数量(txt文件个数)&#xff1a;22559 标…

本机ip地址怎么看是不是公网

在数字化时代&#xff0c;‌了解自己的网络连接属性&#xff0c;‌尤其是本机IP地址是否为公网IP&#xff0c;‌对于网络安全、‌远程访问、‌在线服务配置等方面都至关重要。‌公网IP&#xff0c;‌即互联网上的唯一地址&#xff0c;‌能让任何连接互联网的设备访问到你的设备…

java框架第五课(终极版本)SpringBoot

一.关于SpringBoot (1)回忆Spring 传统的Spring由Spring 框架(ioc,aop)加mybatis加Springweb组成&#xff0c;虽然相比原生的java程序Spring框架帮我们大大减少了代码量&#xff0c;减少了冗余&#xff0c;提高了开发效率但是由于Spring框架下的配置和相关的jar包依赖过多&am…

图像去噪:使用DAMRmF算法

在数字图像处理领域&#xff0c;噪声是不可避免的&#xff0c;它会影响图像的质量和可读性。为了提高图像的质量&#xff0c;去噪算法是必不可少的工具。在这篇文章中&#xff0c;我们将介绍一种名为DAMRmF的去噪算法&#xff0c;并展示如何使用MATLAB实现和应用它。 一、什么…

1-8 图像腐蚀 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 kernelnp.ones((2,2),np.uint8) _, binary_image cv2.threshold(image, 127, 255, cv2.THRESH_BINARY) eroded_imagecv2.erode(binary_image,kernel,iterations1) eroded_image2cv2.erode(image2,kernel,iterations1) 三、运行现象 四…

如何处理忘记实现接口所有方法

在Java编程中&#xff0c;当你声明一个类实现了某个接口时&#xff0c;但没有实现接口中的所有方法&#xff0c;编译器会报错。这是因为接口规定了必须由实现类提供的功能&#xff0c;任何没有实现的接口方法&#xff0c;都会被认为是实现不完整的&#xff0c;导致编译失败。 …

[含视频和源码]CRUD的最佳实践,联动前后端,包含微信小程序,API,HTML等(三)

关说不练假把式&#xff0c;在上一&#xff0c;二篇中介绍了我心目中的CRUD的样子 基于之前的理念&#xff0c;我开发了一个命名为PasteTemplate的项目&#xff0c;这个项目呢后续会转化成项目模板&#xff0c;转化成项目模板后&#xff0c;后续需要开发新的项目就可以基于这…

【时时三省】(C语言基础)指针进阶 例题3

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 例题&#xff1a; 这个arr里面是放了&#xff3b;a b c d e f \0&#xff3d; 第一个arr 这个sizeof是计算这个数组的大小 这个里面加上\0一共是7个元素 所以打印7 第二个arr0 这个指数组…

OGRE 3D----创建第一个OGRE 3D示例

目录 1. OGRE 3D概述 2. OGRE 3D vs VTK 3. 编译OGRE 3D 源码 4. 创建示例和配置其编译环境 5. 配置示例程序的执行环境 1. OGRE 3D概述 OGRE (Object-Oriented Graphics Rendering Engine) 是一个开源的、高级的 3D 图形渲染引擎&#xff0c;它提供了一个抽象层&#xf…

Mybatis---代理设计模式(超详细)

Mybatis—代理设计模式 文章目录 Mybatis---代理设计模式一、什么是代理设计模式二、静态代理1、定义2、结构3、示例 三、动态代理1、定义2、newProxyInstance &#xff08;&#xff09;方法3、示例 四、CGLIB代理1、引入2、定义3、工作原理4、示例 一、什么是代理设计模式 首…

大数据-121 - Flink Time Watermark 详解 附带示例详解

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Unity(2022.3.41LTS) - UI详细介绍- Toggle(切换)

目录 零.简介 一、基本功能 二、属性和设置 三、使用方法 四、优化和注意事项 零.简介 在 Unity 中&#xff0c;Toggle 是一种常用的 UI 组件&#xff0c;用于表示一个布尔值的状态&#xff0c;类似于复选框。 一、基本功能 状态切换&#xff1a;Toggle 有两种状态&…

sqli-lab靶场学习(一)——Less1-4

前言 最近一段时间想切入安全领域&#xff0c;因为本身有做数据库运维工作&#xff0c;就打算从sql注入方向切入。而sql注入除了学习日常书本上的概念外&#xff0c;需要有个实践的环境&#xff0c;刚好看到sqli-lab这个靶场&#xff0c;就打算先用这个来学习。 安装部署 网上…

软考-软件设计师(UML习题)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…