大众网络报 刘志强

  更新每天的新闻内容,对站长们来说是一件很头痛的事。收集了大量的新闻资料后,还必须制作大量的网页。每天大大小小的国际新闻、国内新闻、IT新闻,可真够您累的。最致命的一点,这些组织得松散的新闻是管理不了的。不能查询,不能在线动态删改。新闻讲求时效性,当您作好网页然后上传到服务器上的时侯,恐怕别人已先您一步把新闻报导出来了,当真是吃力不讨好。针对我们现在的上网环境,实现在线发布新闻、动态生成新闻网页、为新闻添加搜索和查找等功能是必不可少的。

  定制新闻发布系统的方法大致上有两种:一是把录入的新闻内容自动由程式直接生成HTML文档,比如按日期和新闻ID号来做HTML文档的名称,我们常常能够从一些大新闻站点看到这样的处理。另一种是直接把新闻数据保存到数据库里,当用户阅读新闻时,从数据库中调出数据,动态生成页面。

  两种处理有何差别?第一种的显示速度和对服务器的负荷来说是最轻的。对于大流量的站点,速度就是生命,网站太慢了,有谁去浏览呢?后一种方法在处理上比较简便,维护也方便。因为只有应用数据库才能方便地处理查询,从而把读者引导至相应的新闻页面。综合上面的方法,能够说是各有千秋,现在我们主要介绍数据库的使用方法。

  一、处理流程

  从处理流程上来说,主要是提供一个管理新闻的页面(能够添加和删除每天的新闻,包括新闻图片、标题等),然后在调用新闻的显示页面里处理。考虑到新闻需要插到不同风格的网页中,所以不能使用一个固定格式的页面来显示新闻提要,应当把他们做成一个主页的可插入部分。就如下面的script语句

  <script language="JavaScript" src="http//xxx.com.cn/special/linux/lnews/autoup.asp">
  </script>

  最后更有一个阅读新闻时的周详内容页面。总的来说,也就是个能够完成在线新闻发布的程式主要由四大部分程式构成:addnew.asp(用于把新闻数据保存到数据库中)、delete.asp(用于处理删除新闻) 、autoup.asp(用于处理新闻的标题显示,也就是插入主页的部分)、read.asp(动态生成新闻的周详内容)。

  协助处理的部分有set_disp.asp(用于处理新闻在主页的显示数目等等)。

  当然,必不可少的就是个新闻数据库了。

  二、添加和管理每天的新闻内容
  
  当进行了新闻提交后,则由一个名为addnew.asp的ASP程式来对新闻内容进行处理,以便分类和保存。为了显示清楚,我们每提交一条新闻,下面的那个新闻内容库就重新读入,以便能够查看新闻是否能成功加入都数据库中,也能够方便地删除新闻内容。 
  
  现在看看addnew.asp是如何完成程式处理的。

  源代码下载地址:http://www.popunet.com/2001/zip/39-1.zip

  程式中首先判断了所提交的新闻是否符合条件。比如新闻标题不能为空,而换行符也得转换为HTML语句的“br”,否则不能正常地显示出新闻的格式,而这里采用了一个包含文档data.inc,他的用处主要是用于连接不同的数据库,所以ASP程式都通过包含这个文档来指定数据源,那么当更改使用别的数据库时,只需要更改这个文档,就能方便地实现不同数据库间的转换,是不是十分方便呢?
  
  以下的data.inc文档的内容。
<%
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/")&"/news/data/data.mdb"
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>
 
  更有需要注意一下的是,WINNT和Windows 98的日期时间函数所返回的值是不同的,Win98是以24小时来计算的,而NT Server则使用12小时,另外加上“上午”和“下午”来表示,因此需要作出少许的更改处理。
 
  程式处理完毕后,重新导向delete.asp文档,用以刷新新闻数据库内的显示,那么每提交一条新闻资料,我们马上能够看见执行的结果是否成功了。

  以下是delete.asp的文档内容。

  源代码下载地址:http://www.popunet.com/2001/zip/39-1.zip

  delete.asp也是个构成webadmin.htm的管理页面的ASP文档,他负责新闻数据库的标题显示,以便让您知道现在库中有些什么新闻。同时能够通过他来删除新闻记录。另外一个附加的ASP程式set_diap.asp用于控制每一类新闻在主页上显示的数目,他主要使用application对象来设定。

<% language="vbscript" %>
<%
response.buffer=true
Response.Expires=0
application("disp_1")=request.form("disp_1")
application("disp_2")=request.form("disp_2")
application("disp_3")=request.form("disp_3")
application("disp_4")=request.form("disp_4")
application("disp_5")=request.form("disp_5")
response.redirect "delete.asp"
%>
  
  完成了上面的程式,我们的新闻发布系统就能够使用在线添加、删除和配置显示等功能了。需要加上搜寻功能,也能够在这个基础上加上。下一节我们来分析如何令新闻代码嵌入不同的网页,实现真正的在线新闻功能。

  三、将新闻代码插入页面
  
  最好的新闻发布当然是为网站本身定做的,那样才能和主页风格一致,但如此一来,新闻发布系统又缺乏了通用性,不能移植到别的网站上使用。有得必有失,关键是找一个平衡点。综合来考虑,最好的做法是和页面分离,这样就能够不影响网页的外观,而也能达到很好的效果。在使用新闻的网页上我们能够通过放置一条这样的script语句来调用新闻代码:

  <script language="JavaScript"
src="http//xxx.com.cn/special/linux/lnews/autoup.asp">

  现在请大家看看autoup.asp的代码。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!