主页面包括用户登陆,网站公告浏览,热门文章排行,最新文章排行等版块,并显示各个文章栏目中最热门的几篇文章(且每行显示两个栏目)。此外主页面还包含了顶部文件TOP.ASP,用来提供留言板首页,栏目文章显示等网页的链接。 内容来自www.paper51.com 其中用户登陆是用一个表单收集用户数据,交给用户登陆检查文件chkuser.ASP处理。 内容来自www.paper51.com 热门文章排行的算法如下:执行一条SQL语句,从数据库中查询所有文章,并按访问次数降序排列。然后把所有记录赋给一个记录集对象(此处用Connection对象的execute方法执行SQL语句,这样可以直接生成一个记录集对象),这样记录集对象中的每一条记录就包含一篇文章的所有信息。接着判断记录集对象是否为空,如果不为空,则用一个循环,把当前记录中代表文章编号和文章所属栏目的数据提出来放到一个链接中的查询字符串里。此链接是showarticle.asp(显示单篇文章的文件)加上查询字符串,点击此链接就可以浏览指定的文章(查询字符串指定了文章的编号和所属栏目)。以上程序执行完后让记录集对象的游标移到下一条记录,同时让用来记录循环次数的变量加1,当此变量的值为12后结束。这样就提出了访问次数最高的12篇文章(准确说是文章的链接)。 内容来自www.paper51.com 最新文章排行的算法跟热门文章排行差不多,只是变成了按编号降序排列,并且使用另外一个记录集对象。 copyright paper51.com 显示各个文章栏目中最热门的几篇文章(且每行显示两个栏目)的算法如下:使用循环嵌套。 http://www.paper51.com
外循环用于列出文章栏目(为了好看,如果文章栏目的个数是偶数则列出所有文章栏目;奇数则列出除了最后一个文章栏目以外的其它文章栏目),过程如下:首先创建一个记录集对象,用来存储所有文章栏目。然后把此记录集对象的记录个数(文章栏目的个数)对2求模(判断奇偶)。如果结果为0则把记录个数赋给一个变量,此变量表示外循环的总次数(页面要显示的文章栏目的个数);反之则把记录个数减一后赋给表示外循环总次数的变量(这样最后一个文章栏目就不会显示)。每一次循环的开始都要判断当前循环次数的奇偶。如果为奇数(因为页面每行显示两个栏目,所以当前循环次数为奇数表明此栏目应在表格中的下一行显示)则输出表格行起始标记<tr>(表示表格中的一行的开始)。每一次循环的倒数第二步也要判断当前循环次数的奇偶。如果为偶数则输出表格行结束标记</tr>(表明表格中的这一行已经显示了两个栏目)。每一次循环的最后一步是把记录集对象的游标移到下一条记录。 copyright paper51.com
内循环用于显示当前文章栏目中最热门的几篇文章,其算法和前面热门文章排行相似。 内容来自www.paper51.com (3)顶部文件 TOP.ASP paper51.com 此文件被其它网页包含,用于提供留言板首页,栏目文章显示等网页的链接。此文件用一个循环把所有文章栏目都显示出来,并配上相应链接。 内容来自www.paper51.com (4)显示单篇文章 showarticle.asp copyright paper51.com 此文件用于显示单篇文章。文章管理系统中的每一篇文章都要用它来浏览(用查询字符串来判断显示哪篇文章)。此文件可以显示文章的标题,内容,发表日期,访问次数,文章发布者的帐号等。其算法如下: 内容来自www.paper51.com 此文件首先判断查询字符串中表示文章编号的数据是否为空。如果为空,则跳转到主页面INDEX.ASP;如果不为空,则创建一个记录集对象,然后在此记录集对象的Open方法里加一个执行SQL语句的参数。此SQL语句从数据库中的文章表里查询编号跟查询字符串中数据一致的记录(这样记录集对象就存储了这篇文章的所有信息)。然后把记录集对象中的访问次数加1,并调用记录集对象的update方法更新数据库,用这种方式来记录文章的访问次数。接着把记录集对象中的文章信息输出到页面上,包括文章的标题,内容,发表日期,访问次数,文章发布者的帐号等。 http://www.paper51.com
(5)栏目文章显示SHOW.ASP 内容来自www.paper51.com 此文件用于显示指定栏目中的所有文章,有自动分页功能。其算法如下: http://www.paper51.com 第一步:从查询字符串中获取指定栏目,并放入标题栏。 http://www.paper51.com 第二步:判断当前页码。用一个普通变量来表示当前页码。如果查询字符串中表示当前页码的数据为空,则让此普通变量为1;如果不为空,则让此普通变量为查询字符串中提供的页码。 内容来自www.paper51.com
第三步:从数据库中获取指定栏目的所有文章,按编号降序排列,并赋给一个记录集对象。然后用记录集对象的EOF属性来判断记录集对象是否为空。如果为空则输出“没有找到文章”,如果不为空则执行下面的程序。 内容来自www.paper51.com 第四步:确定每页显示几篇文章,以及当前为第几页。先给记录集对象的PageSize属性赋值,来确定每页显示几篇文章。然后把第二步里表示当前页码的普通变量的值赋给记录集对象的AbsolutePage属性,这样来确定当前为第几页。 内容来自论文无忧网 www.paper51.com 第五步:显示当前页所有文章。用一个循环,把记录集对象中的当前记录(包含一篇文章的所有信息)中的文章标题,文章发布者的帐号,访问次数,发表日期等显示出来,并配上一个链接,点击它就可以浏览这篇文章。此链接是showarticle.asp(显示单篇文章的文件)加上查询字符串,查询字符串中指定了这篇文章的编号和所属栏目(编号和所属栏目来自当前记录),用来确定是哪篇文章。以上程序执行完后让记录集对象的游标移到下一条记录,并进行判断。如果下一条记录的EOF属性为1,则说明刚才显示的文章是最后一条记录,则跳出循环;如果下一条记录的EOF属性为0,则进行下一次循环。此处使用for循环,循环的次数为PageSize属性的值,即每页显示的文章数。 内容来自论文无忧网 www.paper51.com 第六步:显示当前页码和本栏目的文章总数,并提供本栏目其它页面的链接,如上一页,下一页,栏目首页,尾页。提供哪些链接由当前页码决定。如果当前页码不为1则提供栏目首页的链接;如果当前页码大于1则提供上一页的链接;如果当前页码加1的结果小于或等于记录集对象的PageCount属性的值,则提供下一页的链接;如果当前页码和PageCount属性的值不相等,则提供尾页的链接。 内容来自www.paper51.com (6)用户登陆检查文件(第一次检查)chkuser.ASP paper51.com 此文件用于判断是否已经登陆或验证用户信息,其算法如下: 内容来自论文无忧网 www.paper51.com 第一步:判断是否已经登陆。把用于存储用户帐号、密码的两个会话变量赋给两个普通变量,然后判断这两个普通变量是否为空。如果不为空(说明用户已经登陆),则跳转到用户管理页面LFuser.ASP;反之则执行下面的程序。 内容来自论文无忧网 www.paper51.com
第二步:把表单(主页面INDEX.ASP中的用户登陆表单)传过来的用户帐号和密码赋给两个变量。接着用SQL语句在数据库中的用户表里查询用户帐号和第一个变量(代表用户帐号)相同的记录,将查询结果赋给一个记录集对象,然后判断记录集对象是否为空。如果为空,则输出“没有此用户”;反之则执行下面的程序。 paper51.com
第三步:判断第二个变量(其值等于表单传过来的密码)和当前记录中的密码是否一致。如果不一致则输出“密码错误”;反之则跳转到用户管理页面LFuser.ASP。 内容来自论文无忧网 www.paper51.com (7)用户后台的登陆检查文件(第二次检查)checkuser.ASP 内容来自论文无忧网 www.paper51.com
每一个涉及到数据库的用户后台页面都要包含此文件。此文件用于判断用户是否登陆。这是第二次检查是否登陆。这样就保证了只有合法用户才能使用用户后台的管理功能。其算法如下: http://www.paper51.com 把用于存储用户帐号、密码的两个会话变量赋给两个普通变量,然后判断这两个普通变量是否为空。如果为空则跳转到网站的主页面。 copyright paper51.com (8)用户注册文件Register.asp 内容来自www.paper51.com 此文件用一个表单收集注册信息,交给注册信息检查文件Regcheck.asp处理。 内容来自论文无忧网 www.paper51.com (9)注册信息检查文件Regcheck.asp copyright paper51.com 此文件首先检查注册信息(包括是否填写用户名称,密码;密码和确认密码是否一致;用户名是否已经存在)。如果注册信息没错,则向数据库写入。其算法如下: paper51.com 第一步:把表单(来自用户注册文件Register.asp)传过来的注册信息(包括用户名称,密码,确认密码)赋给三个变量。 内容来自论文无忧网 www.paper51.com
第二步:定义一个变量用来存储错误信息。判断代表用户名称的变量是否为空。如果为空则在错误信息中加上“没有填写用户名称”。 内容来自论文无忧网 www.paper51.com 第三步:判断代表密码的变量是否为空。如果为空则在错误信息中加上“没有填写密码”。 http://www.paper51.com 第四步:判断代表密码的变量和代表确认密码的变量是否一致。如果不一致则在错误信息中加上“密码不一致”。 内容来自www.paper51.com 第五步:用SQL语句在数据库中的用户表里查询用户帐号和第一个变量(代表用户名称)相同的记录,将查询结果赋给一个记录集对象,然后判断记录集对象是否为空。如果不为空则在错误信息中加上“此用户名已经存在”。 内容来自论文无忧网 www.paper51.com 第六步:判断错误信息是否为空。如果不为空则输出错误信息;反之则执行下面的程序。 paper51.com 第七步:用SQL语句在数据库中的用户表里添加一条记录,然后输出“成功添加”。 http://www.paper51.com (10)用户管理页面LFuser.ASP 内容来自www.paper51.com 此页面是一个框架网页,包括左右两个框架。左框架是LEFTuser.ASP,用于提供一些链接,包括用户添加文章(ARTICLEuser.ASP)等实现用户管理功能的页面。右框架用于显示这些页面。 paper51.com
(10)用户添加文章ARTICLEuser.ASP paper51.com
用于给用户添加文章。其算法如下: 内容来自www.paper51.com 第一步:包含checkuser.ASP(用户后台的登陆检查文件),保证了只有合法用户才能添加文章。 paper51.com
第二步:用一个表单收集用户添加的文章的相关信息(如文章名称,类别,内容等),交给交给本页面处理。其中文章类别的选择是通过下拉列表。本页面首先从数据库中查询所有文章类别,赋给一个记录集对象。然后用一个循环把记录集对象里的所有文章类别放到下拉列表的选项里,让用户选择。 http://www.paper51.com 第三步:检查文章添加的相关信息,和Regcheck.asp(注册信息检查文件)中检查注册信息的算法类似。都是把表单传来的数据赋给几个变量,对其进行判断。如果数据不合法则把相应错误信息加入到表示错误信息的变量里。最后判断错误信息是否为空。如果不为空则输出错误信息;反之则执行下面的程序。 内容来自论文无忧网 www.paper51.com
第四步:文章添加。首先创建一个记录集对象,然后在此记录集对象的Open方法里加一个执行SQL语句的参数(此SQL语句从数据库中查询所有文章),把所有文章放到此记录集对象里。接着调用记录集对象的addnew方法添加一条新记录,并把用户添加的文章的相关信息(如文章名称,类别,内容等)赋给这条新记录。然后调用记录集对象的update方法更新数据库。文章添加到数据库后就把记录集对象置空(释放资源)并输出“成功添加”。 http://www.paper51.com (11)管理员登陆页面LOGIN.ASP paper51.com 此文件用一个表单收集管理员帐号和密码,交给管理员登陆检查文件CHKADMIN.ASP处理。 内容来自论文无忧网 www.paper51.com (12)管理员登陆检查文件(第一次检查)CHKADMIN.ASP copyright paper51.com 此文件用于判断是否已经登陆或验证管理员信息,其算法和前面chkuser.ASP(用户登陆检查文件)相似。 paper51.com
(13)管理员后台的登陆检查文件(第二次检查)check.ASP 内容来自www.paper51.com 每一个涉及到数据库的管理员后台页面都要包含此文件。此文件用于判断管理员是否登陆。这是第二次检查是否登陆。这样就保证了只有管理员才能使用管理员后台的管理功能。其算法和前面checkuser.ASP(用户后台的登陆检查文件)相似。 内容来自论文无忧网 www.paper51.com
(14)管理员后台首页LF.ASP,如图5-2: paper51.com paper51.com |