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

2024-09-07 11:44

本文主要是介绍基于web的赴台展会人员管理系统设计与实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博主介绍:专注于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

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

这篇关于基于web的赴台展会人员管理系统设计与实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144971

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry