基于asp的某学校校园bbs的设计与实现—免费毕业设计论文内容摘要:
tr 4 系统的完整设计与开发 论坛基本配置 系统运行时,有些数据库里的数据是会被频繁调用的,为了便于书写代码和程序的严谨,可以将这些数据首先赋给一些变量, 在后面的程序运行中直接调用变量,不用频繁的访问数据库。 一些保存论坛基本信息的数据就属于这类。 所以在运行时 首先将论坛一些基本参数在数据库连接后即从数据库中调出 ,以上内容在 文件里连接数据库后执行,其中使用 connection 对象的 execute方法对存放基本配置信息的表进行 SQL 查询,还使用了 Recordset 对象的 BOF和 EOF 属性,其中 BOF属性表示查询数据库的指针位于第一条记录之前,则为真 :EOF 属性表示查询数据库的指针位于最后一条记录之后,则为真。 如果两者都为真,说明数据库里并没有对应的 数据,然后可关闭刚才创建的 对象实例 ,并将其清空, 释放 系统资源;如果找到需要的记录,则将其数据读出到创建的变量里以便使用: 39。 =========读取论坛基本设置 ======== Set rsConfig = (Select * from Config)39。 创建一个查询数据库的对象实例 If And Then39。 查询为空而且到最后 39。 关闭变量 Set rsConfig = Nothing39。 释放对象实例 网站配置数据丢失。 系统无法正常运行。 Else Site_Name = rsConfig(Site_Name) Site_PostNum= rsConfig(Site_PostNum) „„„„„„„„„’ 省去部分代码 End If 进入系统时由于 有些功能只针对注册会员和管理员开放的,并不是进入论坛的人都能使用 ,这里就涉及到一个用户身份判断的问题。 本设计包含了一个用户验证功能函数的 文件,在其他程序执行前都会先执行该文件里的函数,在需要验证时不必重复书写代码, 只需在需要身份验证的程序之前调用该具有验证功能的函数就行。 其中的 CheckUsers() 函数验证会员,CheckUnAdmin() 函数验证管理员或版主。 本设计一大特点是使用了 Cookies来暂存会员信息, 主要是会员姓名、密码这两项, 这一功能的实现 对程序的运行是十分方便的, 如上面提到的 CheckUsers() 函数 的功能 就是根据 Cookies 里的会员密码来验证会员是否登陆; 因为一旦会员登陆后登陆处理程序会将该会员的密码暂存到 Cookies 中,所以只需验证当前 Cookies 里的会员密码 是否为空就可以判断目前的用户是否登陆论坛。 CheckUnAdmin() 函数则是创建一个 ADO对象模块的 两个 Recordset 对象实例来访问数据库中存放管理员身份信息和版主身份信息的 表,读取有关管理员或版主身份的字段进行比较判断。 Sub CheckUnAdmin() Set wd=() SQL=Select BorderUserName from BBSForumID SQL,Conn,1,1 If wd(BorderUserName) (BBS)(UserName) Then „„„’ 省去部分代码 系统 主要功能分析 用户注册 在论坛主页的工具栏里是会员享有的一般操作选项,该工具栏由在 文件 里定义的 MyBBSTop()函数实现,同样只需在以后的页面调用该函数实现 工具栏的显示。 该函数一开始会先在 Cookies 里 去查找会员姓名,如果发现会员姓名为空,则说明当前浏览论坛的用户未登陆,则工具栏中会显示未登陆的提示信息,以及显示未注册用户注册的信息。 若是未注册会员,则可点击“注册”链接到注册页面,如下图: 图 41 会员注册页面 用户进入该页面根据要求填写上述必要的信息后,会通过表单传递的“ POST”方法将输入的内容传递给后台处理页面的 Reg()函数对信息进行处理,其中在传递“用户名”、“密码”及“密码问题”等信息时又调用了 MayHTMLEncode和 ReplaceBadChar 函数。 其中 MayHTMLEncode 函数的功能是 将一些特殊符号替换成浏览器识别的符号 ,而 ReplaceBadChar 函数的功能是 过滤非法的 SQL 字符。 从而保证了用户名等信息符合网页设计的要求。 当以上所有的数据都审核通过后, Reg 函数便将 返回的内容传递给自定义变量,然后 创建一个 ADO对象模块的Recordset 对象实例来访问数据库的用户信息表,同样 使用了 Recordset 对象的BOF 和 EOF 属性来查看此用户名是否已被注册,使用一条 If„ else 条件语句将条件定为 Not ( And ),若为真,即数据不为空,说明用户名已被注册,则以 Response 对象的 Redirect 方法提示用户重新注册,保证了会员名的唯一性,方便论坛的管理。 若条件为假,则执行 else 以后的操作,即创建Recordset 对象实例来将当前新的用户信息添加到数据库的用户信息表里,并将新会员数加 1 更新,完成注册功能,同时将 所有 注册后的会员信息写入 Cookies中。 页面提示用户注册成功,以 Response 对象的 Redirect 方法跳转回论坛主页面,此时会员就可以享用所有会员权限,尽情游览论坛。 Response 对象的 Redirect 方法是实现页面的跳转,使当前页面跳转到指定的页面。 本设计中都是以 文件中的函数来提示操作完成的信息或错误信息。 当操作成功时,则调用 文件中的“ Yes”函数,该函数即是显示成功操作的信息,并将页面跳转链接重新定义回主页面;如果发生错误,则调用 文件中的“ OtherErr”函数,该函数即是显示错误信息,然后同样将页面跳转链接重新定义回主页面,使用户可以重新操作。 论坛 显示 下图是论坛主页面,里面的分割区域将论坛五个话题 不同的版块分别显示: 图 42 论坛主 页面 考虑到用户访问及发帖的需要,在每个版块中以“ ForumId”为不同的值表示不同的版块。 版块结构中分别创建了 2 个 Recordset 对象实例来访问数据库 ,一个对象 实例以代表版块号的 “ ForumId”的值为查询条件查询存放版块信息的表,将数据库里存放的版块内容和版主名字读出,并将内容以 Response 对象的Write 方法显示到页面上;另一个 对象 实例以代表版块号的 “ ForumId”的值为查询条件查询存放在该版块所发表的文章的表,为保证所查询的结果为最近的一条信息,在 查询语句中“ Top 1”和“ order by datetime”两个查询条件将时间最近的第一条信息以 Response 对象的 Write 方法将显示到页面上 ,查询语句的核心代码如下: sql=Select Top 1 * From BBS Where ForumId=。 order by datetime 用户任意点击一个版块名称即链接到相应版块: 图 43 论坛“校园新闻”版块 页面 该页面关键技术是调用的 Session 对象。 除了 在很多地方创建 Recordset对象实例来访问数据库的表外 ,有时还必须根据需要 对当前版块号“ ForumId”进行保 存 ,目的是在任意版块发帖的时候,能够将该帖子所要显示的版块号一起写入数据库,保证在哪个版块里发表的帖子能在哪个版块里显示,从而避免在不同版块发表文章却因为版块切换而造成的版块 ID号与所要求的 ID 号不一致,不能正常显示的问题。 利用 Session 对象的特点就可以解决这个问题。 所以每个版块页面一开始都会先将版块号用 Session 对象保存。 然后在其他地方则都是 创建Recordset 对象实例来访问数据库的表,然后根据表中字段情况做不同的处理。 每个版块都分为两部分,一个部分是显示论坛 公告等一系列重要主题的区域,另一部分则是显示普通文章的区域。 所以在重要主题区域都会创建一个 Recordset对象实例来访问数据库,但是都以“ IsNews”为 1 查询条件,并用一个 While条件语句来处理,若该字段为 1,则版块有公告帖,就将公告显示;若没有公告等重要主题, While 条件为假,则显示为空。 至于在普通主题区域里则以表示公告的“ IsNews”和表示固顶的“ IsTop”字段为 0 为查询条件查询数据库,然后将符合条件的文章主题等内容读出并在页面显示。 这里用了一条 Do While 循环语句,只要读取帖子信息的 指针没到最后,则重复执行显示信息的操作,使所有帖子都依次显示。 在读取文章之前都会做关于是否为“精华”、“锁定”的判断,即多使用一条 If„ else 条件语句,查询帖子年息中代表“精华”和“锁定”的“ IsBest”,“ IsLocked”语句,为真则显示提示,否则就不显示。 以上所述的关键代码如下: session(ForumID)=1 SQL=Select * from BBS Where IsNews=1 And RID=0 And ForumID=1 Order By ID Desc While Not „„„„„„„„„’ 省去部分代码 SQL=Select * From BBS Where IsTop=0 And IsNews=0 And RID=0 And ForumID = 1 Order by LastDateTime Desc Do While Not If wc(IsBest) = the_True Then „„„„„„„„„’ 省去部分代码 然后会员可随意点击阅读感兴趣的帖子: 图 44 阅读帖子 页面 此时 调用 文件实现 内容显示 , 这里也用到了 Session 对象 来保存当前文章所在版块的 ID 号,并根据 Session 对象 所暂存的 ID 号来进行 If„ else条件选择,然后在标题的“游览”处添加相应的版块链接,这样在用户点击“游览”时可根据刚才保存的 ID 号返回刚才的版块页面,使返回的版块根据保存值动态更新,实现退回版块主页的功能。 要实现显示文章信息的功能首先最关键的是要得到所浏览文章的 ID号,这个在文章主题的链接到 文件 时会将当前文章的 ID号一同传递给 中的处理程序。 所以 中执行程序一开始就会先将从 Request 对象传递来的主题 ID号保存到变量 ID 中,然后就能以该变量为查询条件创建 Recordset 对象实例来访问数据库的表, 并将 作者信息、帖子内容等数据 内容以 Response 对象的 Write 方法显示到页面上;显示文章内容是调用自定义函数 ShowContent()实现的,因为该帖子除了主题帖外,可能还会有一些跟帖的回复内容,都需要显示,所以 ShowContent()函数使用了 Do While„ Loop 循环,这种循环在执行 Do While 时,会查询“条件”的返回值,若返回值 为真则执行程序代码,这里是查看搜索数据库的指针是否没到最后,若成立,说明还有信息,则用同样的 Response 对象的 Write 方法显示,然后碰到 Loop 又回到 Do While 再次检查,这样就保证了文章所有内容都显示出来。 以上提到的核心代码如下: 首先利用得到的帖子的 ID号做为查询条件得到帖子作者, ID = Request(TopicID) Set rs=() SQL=Select * From BBS Where ID=amp。 IDamp。 Or RID=amp。 IDamp。 Order by ID Asc „„„„„„„„„’ 省去部分代码 Session 对象 所暂存的 ID号: ForumID2 = session(ForumID) If ForumID2 = 1 then (a href=39。 39。 游览 /a) If ForumID2 = 2 then (a href=39。 39。 游览 /a) „„„„„„„„„’ 省去部分代码 ShowContent()函数: Do While Not „„„„„„„„„’ 省去显示文章内容的代码 Loop 发帖与回复 图 45 写新帖子 页面 该页面实现较简单,属于一个静态表单传递页面,只用于会员填写帖子内容,关键部分是在提交后的后台处理。 这里表单传递数据方法用的是“ POST”,表单处理程序由标准输入取得数据。 将以上内容写好后点击“提交”按钮,将由后台 代码处理并写入数据库。 后台以 Request 对象接受表单传递来的数据,然后将这些数据赋 给自定义的变量,接着创建 Recordset 对象实例来访问数据库的多个表,用 语句在数据库中添加新的文章信息。 这里要特别提出的是新帖子的 ID 号在数据库中是以自动编号的形式自动生成的,从而保证了每个帖子都有一个唯一的 ID号。 完成后则以 Response 对象的 Redirect 方法提示操作成功并跳转,而这里正是以刚才新生成的帖子的主题 ID 号来做为跳转的条件,这样就可以直接返回新帖子页面。 以上核心代码如下: formaction=?Action=NewTopicmethod=postname=NewTopicid=NewTopiconKey。基于asp的某学校校园bbs的设计与实现—免费毕业设计论文
相关推荐
2V out3L 780 5C 10C 11C 13+ 12 V V C C220 V ~ 12V ~INR 1910KR 2010KR 2110K+ 5VP 17P 16P 13P 14P 15V C CGND1V i n2OV3+V4B 050 5SR 22240C 1535u FV C C 1 湿度传感器 电路 本设计的湿度检测电路由 555 多谐振荡器来实现, HS1101 作为电容变
可以说是一个对具体问题的反复理解和抽象的过程。 理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。 抽 象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便以后阶段 系统的设计实现。 需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需 求。 在高校评估工作中,文档的管理是相当重要的一个工作,需要花费大量的时间去整理文档资料
1、高中物理资源下载平台世昌的博客 (5 月 1 模) 注意事项:(选择题)和第卷(非选择题)两部分。 时量 150 分钟,满分 300 分。 答题前,考生务必将自己的姓名、准考证号填写在答题卡及本试卷上。 2B 铅笔将答题卡上对应题目的答案标号涂黑。 如需改动,用橡皮檫擦干净后,再选涂其他的答案标号。 写在本试题卷及草稿纸上无效。 3. 第卷 3340 题为选考题,其他题为必考题。 考生作答时
件响应宿主程序中对这些项目的操作,并对宿主程序中的数据进行特定操作。 3 需求分析和方案 设计 需求分析 功能需求 用户在编辑完文档后可以选择把文档全部内容或部分内容加密生成密文,同样点击插件中的解密按纽可以把密文还原为明文。 系统功能流程图 见图 2: 第 9 页 共 20 页 图 2 系统功能流程图 开发环境 本插件在 word2020 下开发,可以在 Windows2020/2020/xp
1、高中物理资源下载平台世昌的博客 2016 学年度高中毕业班第四次调研测试理科综合能力测试注意:本试卷分第卷(选择题)和第卷(非选择题)两部分,满分 300 分,考试时间150 分钟。 可能用到的相对原子量: 卷(共 126 分)一、选择题:本题包括 13 个小题,每小题 6 分,每小题只有一个选项符合题意。 1下列关于细胞结构和功能的说法,错误的是A植物细胞的“生命系统的边界 ”是细胞膜B
1、高中物理资源下载平台世昌的博客 卷(选择题)和第卷(非选择题) ,满分 300 分,测试时间 150 分钟。 考试结束后,只交答题卡。 注意事项:1 答题前,考生先将自己的姓名、准考证号码填写清楚,将条形码准确粘贴至条形码区域内2 选择题必修使用 2B 铅笔涂卡,非选择题必须使用 米黑色字迹的签字笔书写,字体工整、笔迹清楚。 3 请按照题号顺序在各题目的答题区域内作答