毕业论文—— 个人日志系统的设计与实现_第1页
毕业论文—— 个人日志系统的设计与实现_第2页
毕业论文—— 个人日志系统的设计与实现_第3页
毕业论文—— 个人日志系统的设计与实现_第4页
毕业论文—— 个人日志系统的设计与实现_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

个人日志系统的设计与实现摘 要在互联网越来越普及的今天,信息在人们的日常生活中占据了非常重要的地位,个人日志系统是基于ASP和SQL Server的一种在Internet上公开发布的快速更新的个人网站系统,使用者可以简单快速地完成个人网页的创建、发布和更新,是一个方便的供广大互联网用户相互交流的平台。它可以是单用户的,也可以是多用户的,本文主要研究单用户系统,主要包括前台浏览、评论日志功能,后台发表日志的功能、相关的管理功能和修改账户信息等功能。本文主要介绍了该系统的基本功能及具体设计实现方法:系统分析中系统的结构图分析了系统各模块的功能;在系统设计中,详细地展现了系统各个功能模块的设计思路、所需的数据库表及表字段等;最后介绍系统的安全功能账号密码加密的必要性及具体实现方法。关键词:个人日志系统;ASP;SQL;加密第 19 页Design and Implementation of Personal Journal SystemAbstractNowadays, with the increasingly popularity of the Internet, information has taken a main role in peoples daily life, Personal Journal System is a kind of quickly renewed personal website system based on ASP and SQL Server which can be publicly released in Internet. The user can easily and fleetly do the work such as establishing, publishing a personal website and renewing it. Its a convenient platform for largeness Internet users to communicate with each other. It can be single-user system or multi-user system, in this article we mainly study the single-user system, and its functions mainly comprise browsing and commenting journals in foreground, publishing journals in background, correlative managing function and modifying users account information. This article mainly introduces basic functions of the system and specific realization methods of the design: The structure diagram of the system functions in system analyse part analyses different functions of each module; In the system designing part, it exhibits the designing thought of every module and the required database forms in detail; in the end, it introduces the safety function of the system-the necessity of encrypting users password and specific realization methods.Key words: Personal Journal System; ASP; SQL; Encrypt1 引言个人日志系统是一种十分简易的傻瓜式个人信息发布方式,让任何人都可以像免费电子邮件的注册、书写和发送一样,简单快速地完成个人网页的创建、发布和更新,用户可以通过该系统发布日志、图片等各种信息,是一个方便的供广大互联网用户相互交流的平台。一般一个日志系统就是一个页面,它通常由简短而经常更新的日志文章构成,所有文章都是按照日期排列,现在流行的博客就是日志系统的具体表现。看上去平淡无奇,毫无可炫耀之处,但它可以让每个人零成本地创建自己的网络媒体,每个人都可以随时把自己的想法和灵感在日志系统站点上更新。它的人性化和平民视角使得它提供的消息更贴近人们的生活,而且它搜集的新闻资料大多是第一手资料。简言之,该系统具有友好的用户界面、简单易懂的操作方式、强大的功能,有广泛的应用空间和无可比拟的价值。 2 开发概述2.1 开发背景个人日志系统是近年来非常流行的一种快速更新的个人站点,最初,人们将每天浏览网站的心得和意见记录下来,并予以公开,来给其它人参考。但随着日志系统的快速扩张,它的目的与最初已相去甚远。目前网络上数以千计的日志系统用户发表和张贴网络日志的目的有很大的差异,不过,由于沟通方式比电子邮件、讨论群组更简单和容易,日志系统已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络,更有人称它是继Email、BBS、ICQ之后出现的第四种网络交流方式。2.2 系统概述个人日志系统基本上有下列三种类型:1、个人杂志型。作者针对某些主题,每天贴出最新报导,其中有个人观察、网络文章链接及读者响应等,其中也有很多跟技术有关的网络日志。2、传统日记型。作者随时写下每日生活中的所思所感,同时也加入生活照片,是目前很多大学生等青年人群非常喜爱的一种网络工具。3、网络导览型。作者以推荐当日值得一读的网络文章、网站、网络日志为主要任务,相当于过滤网络内容的义工,基本形式就是网络资源的连接,并加入作者的观点与评论,读者也可参与讨论。当然也有以上述基本类型混合而成的网络日志,总体而言,它们的特色都是个人化,更新快,有很多网络链接。网络日志之所以这么红,最主要的原因还是这种工具非常方便,收费便宜、易于使用,有的甚至完全免费,用户从申请到建立好自己的网络日志,只要短短十数分钟。2.3 开发工具概述本系统所用的开发工具是ASP和SQL server 2000。1、 ASP最初,互联网的应用只局限于数据的共享,随着客户机/服务器模式的引入,以及Java语言、VBScript和JavaScript等脚本语言和ASP技术的应用,互联网的使用方式发生了根本的变革,网页也开始精彩起来,许多条理清晰、交互性强、内容丰富的网页深深吸引着网络用户。在网络程序设计中,ASP(Active Server Pages)是服务器端的一种未经编译的开放式程序。程序设计者可按ASP的要求来编写功能强大的网络应用程序,并实现服务器端的数据处理及数据上传与下载。这种程序通常被称作“ASP程序”(或“ASP网页”)。一个ASP程序通常包括HTML标签语句、文本和脚本程序等。由于这类程序是以“.asp”为扩展名存放的,因此对应的文件可称作“ASP文件”。网络开发者使用脚本语言和HTML语言设计完成一个ASP程序后,可通过文本编辑器输入到机内,并将它保存在Web服务器的外部存储器上(文件的扩展名为.asp)。准确地说,应当将ASP文件置于Web发布主目录(C:Inetpubwwwroot)下,或者该主目录的一个子目录下。当客户从浏览器上读取该ASP文件时,将向Web服务器发出HTTP请求,服务器收到该请求后调用ASP,读取请求的文件,执行其中的脚本命令,生成标准的Web页回送给客户的浏览器。此过程如下图所示:图1 ASP文件执行过程传送http请求传送http响应服务器客户机该图中,服务器与客户机可以通过互联网络连接起来,使它们成为互联网络的两个端点,实际上它们可以是同一局域网络内的两台计算机,或者是同一台计算机。当我们在安装了IIS的电脑上打开浏览器,并在地址栏中输入时,该计算机就已经扮演了两个角色:作为客户机发送浏览网页的请求、作为Web服务器响应客户机的请求。在Windows XP上安装IIS的过程:将Windows XP的系统光盘放入机内,打开【控制面板】选择【添加/删除程序】选项,在弹出的选项框中选择【添加/删除Windows组件】选项卡中点选,然后点击“下一步”进行安装。安装完成后,在c盘下会出现名为“Inetpub”的文件夹。2、 SQL server 2000SQL Server 是一个关系数据库管理系统,是Microsoft推出的数据管理与分析软件。SQL Server 2000是为迅速提供可伸缩性电子商务、企业及数据仓库解决方案而开发的完整数据库与分析软件产品。SQL Server 2000定位于Internet背景下的数据库应用,它为用户的Web应用提供了一款完善的数据管理和数据分析解决方案,极大地缩短了用户开发电子商务、数据仓库应用的时间。SQL Server 2000还提供对XML(Extensible Markup Language扩展标示语言支持)和HTTP的全方位支持。 数据库blog 登陆名sa 密码hyde3 系统分析3.1 系统功能流程图图2 个人网上日志系统功能流程图游 客否访问主页用户操作登 陆是管理图片管理链接管理评论数据库用户口令加密存放管理日志评论日志3.2 系统模块划分该系统由前台模块和后台管理模块构成:表1 功能模块序号功能模块类别功能模块1前台模块首页功能模块浏览日志功能块浏览链接功能块公共模块2后台管理模块登录功能块日志管理功能块评论管理功能块图片管理功能块链接管理功能块 因为个人日志是个人展现自己的一个网上舞台,在这里日志所有者可以自由地把自己的个性和才能展现给大家,并能够同来访者交流,所以它的功能划分会相对比较简单些。3.3 系统功能设计前面已经介绍了系统的流程与模块划分,这里将详细描述各个功能模块:表2 前台功能列表序号功能列表功能明细1首页日志最新列表2浏览日志功能块日志最新列表(最新日期的全天日志,列出每篇日志的浏览数、评论数,以及进入日志内容页的链接)日志内容页(包括日志全部内容和评论内容)评论功能(发表评论)3浏览图片功能块图片最新列表(最新日期的全天图片,列出每张图片的浏览数)图片读取程序(图片被直接从数据库中读出)图片查看页4浏览链接功能块浏览链接列表(把所有的链接在一页中列出)5公共模块文章关键字查询(标题)最新评论(列出对日志的最新评论,不超过5条)列出最新的链接(不超过5条)列出日志、图片、链接的总数日志列表页(所有日志列表页,提供翻页功能)图片列表页(所有图片列表页,提供翻页功能)表3 后台功能列表序号功能列表功能明细1登录验证验证用户身份2日志等管理功能写日志,发图片/链接,管理日志/图片/链接等(包括修改、删除)3系统设置管理分类,用于划分日志、图片、链接类型管理评论4账号管理修改个人信息及账号密码5退出登录离开后台管理界面4 数据库设计4.1 数据库表之间的关系本系统需要设计的数据库表单有:表4 系统数据表序号数据库表数据库存储内容1Blog存储日志系统所有者的信息2Article存储发表日志的信息3Feedback存储浏览者对日志的评论4Picture存储日志中上传的图片信息5Href存储链接信息6Category存储日志空间上各版块所属类别的信息这些数据表之间的关系如下:图3 数据表关系图4.2 数据库表的详细设计表5 用户信息表(blog)序号字段名字段类别说明备注1BlogIDInt日志空间所有者的ID主键2SubjectNvarchar(50)日志的主题扩充功能3UsernameNvarchar(50)日志空间所有者的账号名称4PasswordNvarchar(50)日志空间所有者的账号密码5DescriptionNvarchar(50)日志空间的描述6EmailNvarchar(50)日志空间所有者的Email7NameNvarchar(50)日志空间所有者的真实姓名8AticleCountInt发表的日志数默认为0表6 类别信息表(category)序号字段名字段类别说明备注1CategoryIDInt类别关键字ID关键字2Name Nvarchar(50)类别名3DescriptionNvarchar(50)类别描述表7 日志信息表(article)序号字段名字段类别说明备注1ArticleIDInt日志关键字关键字2Subject Nvarchar(50)日志标题3ContentNtext日志内容4CategoryIDInt日志所属类别5PublishtimeDatetime日志发表时间6ViewnumInt日志浏览数默认为07FeedbacknumInt日志评论数默认为0表8日志评论信息表(feedback)序号字段名字段类别说明备注1FeedbackIDInt评论信息关键字关键字2TitleNvarchar(100)评论标题3ContentNtext评论内容4PublishtimeDatetime评论发表时间5UsernameNvarchar(50)评论发表者的名字表9 图片信息表(picture)序号字段名字段类别说明备注1PictureIDInt图片信息关键字关键字2SubjectNvarchar(100)图片标题3ImageImage图片内容4CategoryIDInt图片所属类别5FilenamepathNvarchar(200)图片名字6WidthInt图片宽7LengthInt图片高8PublishtimeDatetime图片上传时间9ViewnumInt浏览数默认为0表10 链接信息表(href)序号字段名字段类别说明备注1HrefIDInt链接信息关键字关键字2Name Nvarchar(50)链接标题3UrlNtext链接内容4CategoryInt链接所属类别5PublishtimeNvarchar(50)链接加入时间5 系统实现5.1 前台的实现根据前面的描述,前台共有4个模块和相关的公共模块,统一在首页导航,首页页面布置如下: 图4 首页布局图日志空间标题及log日志空间的一级导航日志空间公共模块列表日志空间内容日志空间的相关申明(1)日志功能模块日志版块可以说是本系统里最复杂的一个前台功能块,文章的首页程序要求把最近的日志的时间计算出来,然后把此时间段的日志列出。在首页还列出了日志的评论、全部浏览的入口和访问量,在日志版块的功能中,还有日志详细内容页、日志发表评论和日志列表页。该模块包括日志首页、日志内容显示页、日志评论显示页等页面。(2)图片功能模块图片功能模块同日志功能模块很相似,也分为首页、图片内容查看、图片列表页,但没有搜索程序,图片可以通过在首页单击直接进入图片内容页。(3)链接功能模块链接功能模块比较简单,只有一个列表程序页,它提供了日志空间所有者感兴趣的网站的链接,与访问者共享,因此只需要一个页面把所有的链接列出来就可以了。(4)公共程序块公共程序块的内容包括:日志空间的标识logo和一级菜单,这在前面的程序页面规划中已经提到过了;还有就是日志空间页面左边的搜索、热点评论、日志统计和最新链接,这4部分分别放在不同的程序文件中。5.2 后台的实现 系统的后台主要体现管理的功能,是对前台显示信息的管理。个人网上日志系统源于个人使用的需求,因此本系统是以单用户为研究对象,如有需要以后可扩展为多用户系统。单用户的日志系统,其重点在于完成信息的管理、分类和思想的交流,不需要复杂的权限验证,所以后台功能包括发表信息和系统设置两大部分。(1)发表信息:发表日志、链接、图片及相关的管理。(2)系统设置:管理分类、管理评论、管理账号、退出登录。后台管理功能流程图如下:图5 后台功能流程图登 录添加或管理日志添加或管理图片添加或管理链接添加或管理分类管理评论管理用户账户(1)登录验证 日志系统管理者进入后台时,需要验证身份。输入用户名和密码后,单击【login】按钮完成登录。提交表单时,通过js脚本验证不能提交空的用户名和密码:function EW_onError(form_object, input_object, object_type, error_message) alert(error_message);if (object_type = RADIO | object_type = CHECKBOX) if (input_object0)input_object0.focus();elseinput_object.focus();else if (!(document.all & document.all_+input_+_editor) input_object.focus(); if (object_type = TEXT | object_type = PASSWORD | object_type = TEXTAREA | object_type = FILE) if (!(document.all & document.all_+input_+_editor)input_object.select();return false; 密码验证程序是通过验证数据库表blog中的账号来判断是否是系统用户: userid = Request.Form(userid)passwd = md5(Request.Form(passwd)Set rs = conn.Execute( Select * from Blog where Username = & userid & )If Not rs.Eof ThenIf UCase(rs(Password) = UCase(passwd) ThenSession(blog_status_User) = rs(Username)Session(blog_status_UserID) = rs(BlogID)validpwd = TrueEnd IfEnd Ifrs.CloseSet rs = Nothingconn.CloseSet conn = NothingEnd If(2)管理日志/链接/图片这些都是需要发布的信息,其中日志的信息最复杂,这里主要说明管理日志功能,其他的只是数据表字段不同,管理操作的实现方法很相似。在这个功能模块中,主要对日志空间中的日志进行添加、编辑、删除、拷贝等操作,这些操作需要在日志列表中完成,列表是管理操作的载体,结果也在列表中体现。比如,添加新日志后,刷新列表就可以看到。列表需要解决两个问题:快速搜索和分页。(1)快速搜索的难点在于对输入的关键字的处理,以及结果列表的排序。(2)分页的难点在于准确快速地显示每页的内容。通过对session的验证,判断管理者的权限,失败则返回登录页面:% If Session(blog_status) login Then Response.Redirect login.asp %为了使日志列表能及时刷新,需要告诉浏览器不要缓存此页面。调用response对象的相关方法来禁止浏览器缓存此页,具体程序见aspmkrfn.asp,该程序是日志系统的公共函数文件,包括格式化时间、调试、上传文件等。快速搜索功能,由adminarticlelist.asp完成,首先定义了完成搜索功能必需的变量:dbwhere、masterdetailwhere、searchwhere、a_search、b_search及whereclause,用于处理搜索条件,建立SQL查询字符串。然后连接数据库,执行查询语句,得到记录集(recordset对象)。这样就完成了搜索功能的大部分,剩下的就是把记录集按照顺序显示出来。显示记录集,需要与页面的输出格式打交道,一般都是把记录集显示为列表。如果记录集中的数据太多,就需要分页显示,分页的算法是,通过页数和分页量计算出当前页的记录在记录集中的首位置和末位置,每翻一页,根据提交的页数,重新计算首尾记录的位置。(3)管理分类管理分类的界面与日志列表相似,也包括搜索、添加、查看、修改、删除、拷贝等功能,只是分类信息是存在分类表中的,信息保存的地方和字段不同,程序原理相同,参照日志管理列表编写代码,可以按照关键字搜索分类名称,需要注意的是,分类表的表名为category,相关字段的名称要对应。(4)管理评论评论是用户在前台浏览日志等信息时发表的,在后台可以查看其内容,也可以选择删除某些评论。评论列表与前面的列表界面相似,不同在于评论只能查看和删除。对评论列表进行操作时,修改的数据表feedback中的数据,删除评论时,支持批量删除。(5)管理账号本系统为单用户系统,只有唯一一个管理员,实际上不需要账号列表,在此做个示意,多用户的系统就需要进行管理员权限分级,高级账号可以管理普通账号列表。账号列表和其他列表并没有太大区别,主要是显示的字段信息不同,与之相关的数据表是blog,代码与前面列表也大同小异,用户查看账号详细信息,包括发表日志的数量统计,也可以修改自己账号的密码及其他信息。6 系统安全6.1 系统安全简介系统的安全性除了网络安全外,最重要的就是保障用户口令的安全性,避免其被网络黑客窃取进而盗用用户权限,这就需要对用户口令进行加密存放。在单用户系统中,加密比较简单,只需要配合用户修改信息时重新将修改后的用户口令加密后存放。如果是在多用户系统中,则还要涉及用户注册时对注册时的口令进行加密存放。在现阶段,我们一般认为存在两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将我们可以直接理解的明文数据加密为我们不可直接理解的密文数据,也可以将密文数据解密为明文数据;单向加密则只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。 本系统采用的是md5加密算法。6.2 加密算法描述md5就是采用单向加密的加密算法,对于md5而言,有两个特性是很重要的,第一是任意两段不同的明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被压缩成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但md2的设计与md4和md5完全不同,那是因为md2是为8位机器做过设计优化的,而md4和md5却是面向32位的电脑。对md5算法简要的叙述可以为:md5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 程序主要用function过程实现加密逻辑与结果返回,用sub过程实现加密算法的具体过程,典型代码如下:Private Function LShift(lValue, iShiftBits)If iShiftBits = 0 ThenLShift = lValueExit FunctionElseIf iShiftBits = 31 ThenIf lValue And 1 ThenLShift = &H80000000ElseLShift = 0End IfExit FunctionElseIf iShiftBits 31 ThenErr.Raise 6End IfIf (lValue And m_l2Power(31 - iShiftBits) ThenLShift = (lValue And m_lOnBits(31 - (iShiftBits + 1) * m_l2Power(iShiftBits) Or &H80000000ElseLShift = (lValue And m_lOnBits(31 - iShiftBits) * m_l2Power(iShiftBits)End IfEnd Function6.3 系统安全实现系统安全实现主要就是把md5加密文件嵌入需要用到加密的程序文件中,先在该程序文件中加入如下语句:可以把md5算法文件当作一个函数,在需要加密的字段使用该“函数”即可。在本系统中有两处需要用到md5加密,一是用户修改密码时(blogedit.asp):tmpFld = md5(Trim(x_Password)If Trim(tmpFld) & x = x Then tmpFld = Nullrs(Password) = tmpFld这样用户输入的密码就被加密存放在数据库中,可以防止黑客盗取密码,即使得到了,也是加密后的密文,无法使用。二是用户登录后台验证密码时(login.asp):userid = Request.Form(userid) passwd = md5(Reques

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论