日期:2014-05-17  浏览次数:21035 次

Request 对象, ASP 0102 (0x80004005)
二、             公告栏
除了新闻栏之外,较常用的就是公告栏了,公告栏主要用来显示一些重要的通知。当然这些通知是要经常变化的。让用户每次更改公告内容时都到源程序里去修改吗?当然不行,我们必须提供一个维护的界面给用户,使得用户只要输入通知,网页上的公告栏里自然就会显示通知内容了。
1.             解决这一问题的关键在于灵活应用FileSystemObject对象和TextStream对象。在实际应用中,你无需自行建立TextStream对象,因为只要利用FileSystemObject对象打开了文件,系统便自动建立TextStream对象。也就是说,一旦调用OpenTextFile或CreateTextFile方法,便会传回TextStream对象。
2.             所需相关文件有三个:更新.asp、公告.asp、维护文本.txt,把它们存入d:/ASP/maintain目录下。
3.             三个文件的主要功能和源程序段:
1)             更新.asp
主要功能是让用户输入欲显示的公告,检验输入内容是否为空,若不为空,则提交给”公告.asp”程序处理。
<html>
<head>
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 ">
<meta   name= "GENERATOR "   content= "Microsoft   FrontPage   4.0 ">
<meta   name= "ProgId "   content= "FrontPage.Editor.Document ">
<title> 更新公告栏内容 </title>
</head>
<body>
<script   language=vbscript>
function   datacheck()
dim   msg,errflag
errflag=true
          if   len(trim(maintain.t1.value))=0   then  
                      focusto(0)
                      errflag=false
                      msg= "请输入需提交的公告内容 "
          end   if
          if   (errflag=false)   then
                      msgbox   msg,64, "oh   no! "            
                      exit   function
          end   if
datacheck=errflag
maintain.submit
end   function

sub   focusto(x)
          document.maintain.elements(x).focus()
end   sub
</script>
① <form   method= "POST "   action= "公告.asp "   name= "maintain ">
<p> <input   type= "text "   name= "t1 "   size= "84 "> <input   type= "reset "   value= "重写 "   name= "B2 ">
<input   type= "button "   value= "提交 "   name= "B1 "   onclick= "datacheck() "> </p>
<hr   color=#FF99FF   size=1>  
</form>
</body>
</html>
语句①中的action= "公告.asp "部分,指出了在form提交后要启动的程序为“公告.asp”。
2)             公告.asp
通过FileSystemObject对象和TextScream对象对 "维护文本.txt "文件进行读写操作,使得此文件最上面5行的内容为要在公告栏里显示的公告。
<%
dim   str
str=request.form(t1)
dim   s(5)
const   forreading=1,forwriting=2
dim   fso,myfile
set   fso=server.createobject( "scripting.FileSystemObject ")
set   myfile=fso.opentextfile( "维护文本.txt ",forreading)                                     '以Reading模式打开文件
for