您当前的位置: 首页 > 网站编程 > ASP教程 > 用文本+ASP打造新闻发布系统

用文本+ASP打造新闻发布系统

作者:不详 来源:网络 发布时间: 2012-01-01 11:12 点击:
介绍 我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方法从

用文本+ASP打造新闻发布系统

  介绍
  
  我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页。
  
  Response.Redirect
  
  让我们首先看一看如何使用Response.Redirect方法传递数据。这是它们之中最简单的方法。在文本框中输入一些数据,并且当你输入完成数据后,按下“Respose.Redirect”按钮。我们会得到一个提示,有时我们想在catch程序中传递另一个网页,意味着捕捉到例外程序并且向另一个网页传递。如果你试图这样做,它会给你一个System.Threading例外程序。因为你想遗留下一个线程向另一个网页传递数据,所以这个例外程序就会被抛出。
  
  Response.Redirect("WebForm5.aspx",false);
  
  这个语句告诉编译器定位到“WebForm5.aspx”,这里的“false”意味着在当前网页不能结束你正在做的事情。应该看一看线程发布命令的System.Threading类。在下面,看一看按钮事件的C#代码。“txtName”文本控件的名字,文本框的内的值传递到一个叫做“WebForm5.aspx”的网页。在“?”之后的“Name”符号只是一个临时的响应变量,这个变量保持着文本的数值。
  
  private void Button1_Click(object sender,System.EventArgs e)
  
  {
  
  //Value sent using HttpResponse
  
  Response.Redirect("WebForm5.aspx?Name="+txtName.Text);
  
  }
  
  好的,到这种观点为止,你使用Response发送了数值。刚刚,在此我收集到了这些数值,所以在“WebForm5.aspx”page_Load事件中,写入这些代码。首先,我们检查到输入的值不为null。如果不是这样,我们只是简单地在网页上使用Label控件显示数值。注意:如果你使用Response.Redirect方法来传递这些数值,所有这些数值在浏览器的URL中都是不可见的。你绝不能使用Response.Redirect来传递信用证号码和机密信息。
  
  if(Request.QueryString["Name"]!=null)
  
  Label3.Text=Request.QueryString["Name"];
  
  Cookies
  
  接下来使用Cookies。Cookies在服务器端创建,但是客户端省略。在此“Cookies”按钮的click事件中,写入以下代码:
  
  HttpCookie cName=new HttpCookie("Name");
  
  cName.Value=txtName.Text;
  
  Response.Cookies.Add(cName);
  
  Response.Redirect("WebForm5.aspx");
  
  首先,创建一个cookie命名为“cName”。既然一个cookie实例可以拥有许多数值,告诉编译器这个cookie持有“Name”数值。我们将它赋值给TextBox并且最结后将它加入Response流,再使用Response.Redirect方法传递给其它网页。
  
  让我们看一看如何得到被另一个网页传递的cookie数值。
  
  if(Request.Cookies["Name"]!=null)
  
  Label3.Text=Request.Cookies["Name"].Value;
  
  如你所看到的,象我们以前做一的一样正是使用同一种方法,刚刚我们在Request.QueryString之内,使用了Request.Cookies。记注一些浏览器不接收cookies。
  
  //图片上传
  
  〈SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT〉
  
  Function GetUpload(FormData)
  
  Dim DataStart,DivStr,DivLen,DataSize,FormFieldData
  
  '分隔标志串(+CRLF)
  
  DivStr=LeftB(FormData,InStrB(FormData,str2bin(VbCrLf))+1)
  
  '分隔标志串长度
  
  DivLen=LenB(DivStr)
  
  PosOpenBoundary=InStrB(FormData,DivStr)
  
  PosCloseBoundary=InStrB(PosOpenBoundary+1,FormData,DivStr)
  
  Set Fields=CreateObject("Scripting.Dictionary")
  
  While PosOpenBoundary〉0And PosCloseBoundary〉0
  
  'name起始位置(name="xxxxx"),加6是因为[name="]长度为6
  
  FieldNameStart=InStrB(PosOpenBoundary,FormData,str2bin("name="))+6
  
  FieldNameSize=InStrB(FieldNameStart,FormData,ChrB(34))-FieldNameStart'(")的ASC值=34
  
  FormFieldName=bin2str(MidB(FormData,FieldNameStart,FieldNameSize))
  
  'filename起始位置(filename="xxxxx")
  
  FieldFileNameStart=InStrB(PosOpenBoundary,FormData,str2bin("filename="))+10
  
  If FieldFileNameStart〈PosCloseBoundary And FieldFileNameStart〉PosopenBoundary Then
  
  FieldFileNameSize=InStrB(FieldFileNameStart,FormData,ChrB(34))-FieldFileNameStart'(")的ASC值=34
  
  FormFileName=bin2str(MidB(FormData,FieldFileNameStart,FieldFileNameSize))
  
  Else
  
  FormFileName=""
  
  End If
  
  'Content-Type起始位置(Content-Type:xxxxx)
  
  FieldFileCTStart=InStrB(PosOpenBoundary,FormData,str2bin("Content-Type:"))+14
  
  If FieldFileCTStart〈PosCloseBoundary And FieldFileCTStart〉PosOpenBoundary Then
  
  FieldFileCTSize=InStrB(FieldFileCTStart,FormData,str2bin(VbCrLf&VbCrLf))-FieldFileCTStart
  
  FormFileCT=bin2str(MidB(FormData,FieldFileCTStart,FieldFileCTSize))
  
  Else
  
  FormFileCT=""
  
  End If
  
  '数据起始位置:2个CRLF开始
  
  DataStart=InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf&VbCrLf))+4
  
  If FormFileName〈〉"" Then
  
  '数据长度,减1是因为数据文件的存取字节数问题(可能是AppendChunk方法的问题):
  
  '由于字节数为奇数的图象存到数据库时会去掉最后一个字符导致图象不能正确显示,
  
  '字节数为偶数的数据文件就不会出现这个问题,因此必须保持字节数为偶数。
  
  DataSize=InStrB(DataStart,FormData,DivStr)-DataStart-1
  
  FormFieldData=MidB(FormData,DataStart,DataSize)
  
  Else
  
  '数据长度,减2是因为分隔标志串前有一个CRLF
  
  DataSize=InStrB(DataStart,FormData,DivStr)-DataStart-2
  
  FormFieldData=bin2str(MidB(FormData,DataStart,DataSize))
  
  End If
  
  '建立一个Dictionary集存储Form中各个Field的相关数据
  
  Set Field=CreateUploadField()
  
  Field.Name=FormFieldName
  
  Field.FilePath=FormFileName
  
  Field.FileName=GetFileName(FormFileName)
  
  Field.ContentType=FormFileCT
  
  Field.Length=LenB(FormFieldData)
  
  Field.Value=FormFieldData
  
  Fields.Add FormFieldName,Field
  
  PosOpenBoundary=PosCloseBoundary
  
  PosCloseBoundary=InStrB(PosOpenBoundary+1,FormData,DivStr)
  
  Wend
  
  Set GetUpload=Fields
  
  End Function
  
  '把二进制字符串转换成普通字符串函数
  
  Function bin2str(binstr)
  
  Dim varlen,clow,ccc,skipflag
  
  '中文字符Skip标志
  
  skipflag=0
  
  ccc=""
  
  If Not IsNull(binstr)Then
  
  varlen=LenB(binstr)
  
  For i=1To varlen
  
  If skipflag=0Then
  
  clow=MidB(binstr,i,1)
  
  '判断是否中文的字符
  
  If AscB(clow)〉127Then
  
  'AscW会把二进制的中文双字节字符高位和低位反转,所以要先把中文的高低位反转
  
  ccc=ccc&Chr(AscW(MidB(binstr,i+1,1)&clow))
  
  skipflag=1
  
  Else
  
  ccc=ccc&Chr(AscB(clow))
  
  End If
  
  Else
  
  skipflag=0
  
  End If
  
  Next
  
  End If
  
  bin2str=ccc
  
  End Function
  
  '把普通字符串转成二进制字符串函数
  
  Function str2bin(varstr)
  
  str2bin=""
  
  For i=1To Len(varstr)
  
  varchar=mid(varstr,i,1)
  
  varasc=Asc(varchar)
  
  ' asc对中文字符求出来的值可能为负数,
  
  '加上65536就可求出它的无符号数值
  
  '-1在机器内是用补码表示的0xffff,
  
  '其无符号值为65535,65535=-1+65536
  
  '其他负数依次类推。
  
  If varasc〈0Then
  
  varasc=varasc+65535
  
  End If
  
  '对中文的处理:把双字节低位和高位分开
  
  If varasc〉255Then
  
  varlow=Left(Hex(Asc(varchar)),2)
  
  varhigh=right(Hex(Asc(varchar)),2)
  
  str2bin=str2bin&chrB("&H"&varlow)&chrB("&H"&varhigh)
  
  Else
  
  str2bin=str2bin&chrB(AscB(varchar))
  
  End If
  
  Next
  
  End Function
  
  '取得文件名(去掉Path)
  
  Function GetFileName(FullPath)
  
  If FullPath〈〉"" Then
  
  FullPath=StrReverse(FullPath)
  
  FullPath=Left(FullPath,InStr(1,FullPath,"\")-1)
  
  GetFileName=StrReverse(FullPath)
  
  Else
  
  GetFileName=""
  
  End If
  
  End Function
  
  〈/SCRIPT〉
  
  〈SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT〉
  
  function CreateUploadField(){return new uf_Init()}
  
  function uf_Init(){
  
  this.Name=null
  
  this.FileName=null
  
  this.FilePath=null
  
  this.ContentType=null
  
  this.Value=null
  
  this.Length=null
  
  }
  
  〈/SCRIPT〉
  
  //新闻添加
  
  〈!--#include file="news_session.asp"--〉
  
  〈html〉
  
  〈head〉
  
  〈meta http-equiv="Content-Language" content="zh-cn"〉
  
  〈meta http-equiv="Content-Type" content="text/html;charset=gb2312"〉
  
  〈style type="text/css"〉
  
  .buttonface{
  
  BACKGROUND-COLOR:#0079F2;BORDER-BOTTOM:#3333331px outset;、
  
  BORDER-LEFT:#3333331px outset;BORDER-RIGHT:#ffffff1px outset;BORDER-TOP:#ffffff1px outset;COLOR:#ffffff;FONT-SIZE:9pta{color:#000000;text-decoration:none}
  
  〈/style〉
  
  〈SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript〉
  
  〈!--
  
  function client_onblur(ii){
  
  server=eval("form1.server"+ii)
  
  if(server.value==""){
  
  client=eval("form1.client"+ii)
  
  clientvalue=client.value+""
  
  varlen=clientvalue.length
  
  a=clientvalue.lastIndexOf('\')
  
  clientvalue=clientvalue.substring(a+1)
  
  //alert(clientvalue);
  
  server.value=clientvalue
  
  }
  
  }
  
  function form1_onsubmit(){
  
  for(i=1;i〈1;i++){
  
  client=eval("form1.client"+i)
  
  server=eval("form1.server"+i)
  
  if(client.value!=""&&server.value==""){alert("上传后的文件名不能空!");server.focus();return false}
  
  }
  
  }
  
  //--〉
  
  〈/SCRIPT〉
  
  〈title〉新闻发布系统〈/title〉
  
  〈/head〉
  
  〈body bgcolor=#EDF0F5topmargin=10marginheight=5leftmargin=4marginwidth=0〉
  
  〈form method="POST" action="news_input.asp" name="form1" enctype="multipart/form-data" LANGUAGE=javascript onsubmit="return form1_onsubmit()"〉
  
  〈div align="left"〉
  
  〈table border="1" width="754" height="404"〉
  
  〈tr align="center"〉
  
  〈td width="754" height="28" colspan="3" style="font-size:11pt"〉〈strong〉新闻发布系统后台管理--新闻添加〈/strong〉〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="121" height="16" align="center" style="font-size:9pt"〉新闻标题〈/td〉
  
  〈td width="617" height="16" colspan="2"〉
  
  〈input type="text" name="news_title" size="87"〉〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="121" height="165" align="center" style="font-size:9pt"〉新闻内容〈/td〉
  
  〈td width="617" height="165" colspan="2"〉〈textarea rows="11" name="news_content" cols="85"〉〈/textarea〉〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="121" height="21" align="center" style="font-size:9pt"〉新闻来源〈/td〉
  
  〈td width="617" height="21" colspan="2"〉
  
  〈input type="text" name="news_src" size="87"〉〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="121" height="20" align="center" style="font-size:9pt"〉图片上传〈/td〉
  
  〈td width="617" height="20" colspan="2"〉
  
  〈input type="file" name="client1" size="20" readonly LANGUAGE=javascript onblur="return client_onblur(1)"〉
  
  〈span style="font-size:9pt"〉〈/span〉〈INPUT type="hidden" name="server1"〉〈input type="hidden" value="mysession" name="mysession"〉〈/td〉
  
  〈/tr〉
  
  〈/table〉
  
  〈/div〉
  
  〈p〉
  
  〈input type="submit" value="递交" name="B1" class="buttonface"〉〈input type="reset" value="全部重写" name="B2" class="buttonface"〉
  
  〈input type="button" value="帐号修改" onclick="location.href='admin/news_chadmin.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"〉
  
  〈input type="button" value="新闻修改" onclick="location.href='news_admin1.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"〉〈/p〉
  
  〈/form〉
  
  〈/body〉
  
  〈/html〉
  
  '###################
  
  news_input.asp
  
  〈!--#include file="upload.inc"--〉
  
  〈%
  
  'Fields("xxx").Name取得Form中xxx(Form Object)的名字
  
  'Fields("xxx").FilePath如果是file Object取得文件的完整路径
  
  'Fields("xxx").FileName如果是file Object取得文件名
  
  'Fields("xxx").ContentType如果是file Object取得文件的类型
  
  'Fields("xxx").Length取得Form中xxx(Form Object)的数据长度
  
  'Fields("xxx").Value取得Form中xxx(Form Object)的数据内容
  
  Dim FormData,FormSize,gnote,bnote,notes,binlen,binstr
  
  FormSize=Request.TotalBytes
  
  FormData=Request.BinaryRead(FormSize)
  
  Set Fields=GetUpload(FormData)
  
  '############判断输入错误
  
  dim news_title,news_content,news_src,mysession
  
  mysession=Fields("mysession").value
  
  if len(mysession)=0then
  
  Response.Write"非法登陆或超时请重新登陆"
  
  Response.End
  
  end if
  
  news_title=Fields("news_title").value
  
  news_title=replace(news_title,"|","|")
  
  news_content=Fields("news_content").value
  
  news_src=Fields("news_src").value
  
  news_src=replace(news_src,"|","|")
  
  if len(news_title)=0then%〉
  
  〈script〉
  
  alert("出错!新闻标题不能为空");
  
  history.go(-1);
  
  //window.location="news_add.asp";
  
  〈/script〉
  
  〈%Response.end
  
  end if
  
  if len(news_content)=0then%〉
  
  〈script〉
  
  alert("出错!新闻内容不能为空");
  
  history.go(-1);
  
  〈/script〉
  
  〈%end if
  
  if len(news_src)=0then%〉
  
  〈script〉
  
  alert("出错!新闻来源不能为空");
  
  history.go(-1);
  
  〈/script〉
  
  〈%Response.end
  
  end if
  
  dim varchar
  
  varchar=right(Fields("server1").value,3)
  
  if len(varchar)〈〉0then
  
  if varchar〈〉"gif" and varchar〈〉"jpg" then
  
  %〉
  
  〈script〉
  
  alert("出错!不能上传该图片类型");
  
  history.go(-1);
  
  〈/script〉
  
  〈%Response.end
  
  else
  
  end if
  
  end if
  
  '###########将图片写入文件夹
  
  set file_O=Server.CreateObject("Scripting.FileSystemObject")
  
  '##########当前时间做图片名
  
  dim newname,mytime,newfile,filename,id,image
  
  endname=right(fields("server1").value,4)
  
  mytime=now()
  
  id=Year(mytime)&Month(mytime)&Day(mytime)&Hour(mytime)&Minute(MyTime)&Second(MyTime)
  
  imageid=id&endname
  
  '#############写入图片
  
  newfile="client1"
  
  filename=Fields("server1").value
  
  If Fields(newfile).FileName〈〉"" Then
  
  file_name=Server.MapPath("./images/"&imageid&"")
  
  set outstream=file_O.CreateTextFile(file_name,true,false)
  
  binstr=Fields(newfile).Value
  
  binlen=1
  
  varlen=lenb(binstr)
  
  for i=1to varlen
  
  clow=MidB(binstr,i,1)
  
  If AscB(clow)=255then
  
  outstream.write chr(255)
  
  binlen=binlen+1
  
  if(i mod2)=0then
  
  notes=gnote
  
  exit for
  
  end if
  
  elseif AscB(clow)〉128then
  
  clow1=MidB(binstr,i+1,1)
  
  if AscB(clow1)〈64or AscB(clow1)=127or AscB(clow1)=255then
  
  binlen=binlen+1
  
  'if(binlen mod2)=0then
  
  binlen=binlen+1
  
  outstream.write Chr(AscW(ChrB(128)&clow))
  
  'end if
  
  notes=bnote
  
  exit for
  
  else
  
  outstream.write Chr(AscW(clow1&clow))
  
  binlen=binlen+2
  
  i=i+1
  
  if(i mod2)=0then
  
  notes=gnote
  
  exit for
  
  end if
  
  end if
  
  else
  
  outstream.write chr(AscB(clow))
  
  binlen=binlen+1
  
  if(i mod2)=0then
  
  notes=gnote
  
  exit for
  
  end if
  
  end if
  
  next
  
  outstream.close
  
  set outstream=file_O.OpenTextFile(file_name,8,false,-1)
  
  outstream.write midb(Fields(newfile).Value,binlen)
  
  outstream.close
  
  if notes=bnote then notes=notes&(binlen-1)&"字节处。"
  
  End If
  
  把新闻数据结构写入newslist文件
  
  dim mappath,mytext,myfso,contenttext,news_addtime,news_point
  
  news_point=1
  
  news_addtime=mytime
  
  set myfso=createobject("scripting.filesystemobject")
  
  mappath=server.mappath("./")
  
  set mytext=myfso.opentextfile(mappath&" ew_list.asp",8,-1)
  
  dim mytext2
  
  if len(varchar)〈〉0then
  
  mytext2=trim(id&","&news_title&","&id&".txt"&","&news_src&","&news_point&","&news_addtime&","&imageid&"|")
  
  else
  
  mytext2=trim(id&","&news_title&","&id&".txt"&","&news_src&","&news_point&","&news_addtime&"|")
  
  end if
  
  mytext.writeline(mytext2)
  
  mytext.close
  
  '##############把新闻内容写入相应的文件中
  
  set contenttext=myfso.OpenTextFile(mappath&" ews_content\"&id&".txt",8,-1)
  
  function htmlencode2(str)'#############字符处理函数
  
  dim result
  
  dim l
  
  l=len(str)
  
  result=""
  
  dim i
  
  for i=1to l
  
  select case mid(str,i,1)
  
  case chr(34)
  
  result=result+"''"
  
  case"&"
  
  result=result+"&"
  
  case chr(13)
  
  result=result+"〈br〉"
  
  case""
  
  result=result+""
  
  case chr(9)
  
  result=result+""
  
  case chr(32)
  
  if i+1〈=l and i-1〉0then
  
  if mid(str,i+1,1)=chr(32)or mid(str,i+1,1)=chr(9)or mid(str,i-1,1)=chr(32)or mid(str,i-1,1)=chr(9)then
  
  result=result+""
  
  else
  
  result=result+""
  
  end if
  
  else
  
  result=result+""
  
  end if
  
  case else
  
  result=result+mid(str,i,1)
  
  end select
  
  next
  
  htmlencode2=result
  
  end function
  
  contenttext.write htmlencode2(news_content)
  
  contenttext.close
  
  set myfso=nothing
  
  %〉
  
  〈script〉
  
  alert("发布成功");
  
  window.location="news_add.asp";
  
  〈/script〉
  
  //新闻列表显示
  
  〈%
  
  dim myfso,myread
  
  set myfso=createobject("scripting.filesystemobject")
  
  set myread=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)
  
  if myread.atendofstream then
  
  Response.Write"目前没有添加新闻"
  
  Response.End
  
  else
  
  dim mytext,listarray
  
  mytext=myread.readall
  
  listarray=split(mytext,"|")'#######把所有记录分割成一个数组a
  
  dim recordcount,pagecount,pagesize,pagenum
  
  recordcount=ubound(listarray)'############记录条数
  
  pagesize=2
  
  pagecount=recordcount/pagesize'#######取得页面数
  
  if instr(1,pagecount,".")=null or instr(1,pagecount,".")=0then
  
  pagenum=pagecount
  
  else
  
  pagenum=int(pagecount)+1
  
  end if
  
  dim topage
  
  topage=cint(Request.QueryString("topage"))'########取得要显示的页面
  
  if topage〈=0then
  
  topage=1
  
  end if
  
  if topage〉pagenum then
  
  topage=pagenum
  
  end if
  
  dim i,j,n
  
  b=listarray
  
  for i=0to recordcount-1'########把每一条记录组成一个数组
  
  j=split(listarray(i),",")
  
  if ubound(j)=6then
  
  b(i)="〈SPAN style='COLOR:#ffbd00;FONT-SIZE:7px'〉〈li〉〈/SPAN〉〈span style='font-size:10pt'〉〈a href='news_view.asp?id="&j(0)&"' target=blank〉"&j(1)&"(图)〈/a〉点击:"&j(4)&"次最后发布时间:"&j(5)&"〈/span〉"
  
  else
  
  b(i)="〈SPAN style='COLOR:#ffbd00;FONT-SIZE:7px'〉〈li〉〈/SPAN〉〈span style='font-size:10pt'〉〈a href='news_view.asp?id="&j(0)&"' target=blank〉"&j(1)&"〈/a〉点击:"&j(4)&"次最后发布时间:"&j(5)&"〈/span〉"
  
  end if
  
  next
  
  '########把记录反排序存储在新的数组实现按时间反排序
  
  dim c(100)
  
  n=0
  
  for i=recordcount to0step-1
  
  c(n)=b(i)
  
  n=n+1
  
  next
  
  dim currentrecord
  
  currentrecord=pagesize*(topage-1)+1'#########显示每一页
  
  for k=1to pagesize
  
  if len(c(currentrecord))=0then
  
  exit for
  
  end if
  
  Response.Write c(currentrecord)&"〈br〉"
  
  currentrecord=currentrecord+1
  
  next
  
  Response.Write"〈body bgcolor=#EDF0F5topmargin=10marginheight=5leftmargin=4marginwidth=0〉"
  
  for m=1to pagenum
  
  response.write"〈span style=font-size:10pt〉〈a href=news_list.asp?topage="&m&"〉"&m&"〈/a〉〈/span〉"
  
  next
  
  end if%>
  
  //新闻删除
  
  〈!--#include file="news_session.asp"--〉
  
  〈%
  
  dim id
  
  id=Request.QueryString("id")
  
  dim myfso
  
  set myfso=createobject("scripting.filesystemobject")
  
  if myfso.FileExists(server.mappath("./news_content/"&id&".txt"))then
  
  myfso.DeleteFile(server.mappath("./news_content/"&id&".txt"))'#############删除新闻内容
  
  end if
  
  dim mytext2,myread2
  
  set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)
  
  if myread2.atendofstream then
  
  Response.Write"没有新闻内容"
  
  myread2.close
  
  Response.End
  
  end if
  
  mytext2=myread2.readall
  
  myread2.close
  
  dim listarray,i,h,count,sf,title
  
  listarray=split(mytext2,"|")'#########读取记录并以#分割成listarray数组
  
  count=ubound(listarray)
  
  for i=0to count'###########根据ID找到该新闻实现删除功能
  
  sf=split(listarray(i),",")
  
  if right(sf(0),7)=right(id,7)then
  
  dim thisid
  
  thisid=i
  
  '#######为6说明上传了图片,删除新闻图片和该列表记录
  
  if ubound(sf)=6then
  
  myfso.deletefile(server.MapPath("./images/"&sf(6)))
  
  end if
  
  exit for
  
  end if
  
  next
  
  dim mytext,mappath
  
  mappath=server.mappath("./")
  
  set mytext=myfso.createtextfile(mappath&" ew_list.asp",-1,0)
  
  for i=0to thisid-1'##########把所有数据重新写入文件
  
  mytext.write listarray(i)&"|"
  
  next
  
  for i=thisid+1to ubound(listarray)
  
  if i=ubound(listarray)then
  
  mytext.write listarray(i)
  
  exit for
  
  else
  
  mytext.write listarray(i)&"|"
  
  end if
  
  next
  
  mytext.close
  
  %〉
  
  〈script language="javascript"〉
  
  alert("删除成功");
  
  location.href=("news_admin1.asp");
  
  〈/script〉
  
  ---------------
  
  news_view.asp
  
  〈%Response.Expires=0
  
  dim myid,myfso,myread,mytext1
  
  myid=request.querystring("id")
  
  if len(myid)=0then
  
  Response.Write"没有该新闻"
  
  Response.End
  
  end if
  
  set myfso=createobject("scripting.filesystemobject")
  
  set myread=myfso.opentextfile(server.mappath("./news_content/"&myid&".txt"),1,0)
  
  if myread.atendofstream then
  
  Response.Write"没有新闻内容"
  
  Response.End
  
  else
  
  mytext1=myread.readall'#######打开对应的新闻内容文件,并读取用变量存储
  
  function htmlencode2(str)'###########字符处理函数
  
  dim result
  
  dim l
  
  l=len(str)
  
  result=""
  
  dim i
  
  for i=1to l
  
  select case mid(str,i,1)
  
  case chr(34)
  
  result=result+""""
  
  case"&"
  
  result=result+"&"
  
  case chr(13)
  
  result=result+"〈br〉"
  
  case""
  
  result=result+""
  
  case chr(9)
  
  result=result+""
  
  case chr(32)
  
  result=result+""
  
  if i+1〈=l and i-1〉0then
  
  if mid(str,i+1,1)=chr(32)or mid(str,i+1,1)=chr(9)or mid(str,i-1,1)=chr(32)or mid(str,i-1,1)=chr(9)then
  
  result=result+""
  
  else
  
  result=result+""
  
  end if
  
  else
  
  result=result+""
  
  end if
  
  case else
  
  result=result+mid(str,i,1)
  
  end select
  
  next
  
  htmlencode2=result
  
  end function
  
  myread.close
  
  end if
  
  dim mytext2,myread2
  
  set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)
  
  if myread2.atendofstream then
  
  Response.Write"没有新闻内容"
  
  Response.End
  
  else
  
  mytext2=myread2.readall
  
  myread2.close
  
  dim listarray,i,h
  
  listarray=split(mytext2,"|")'#########读取记录并以#分割成listarray数组
  
  dim count,sf,title,src
  
  count=ubound(listarray)
  
  for i=0to count'###########根据ID找到该新闻并把文章点击次数加1
  
  sf=split(listarray(i),",")
  
  if right(sf(0),7)=right(myid,7)then
  
  title=sf(1)
  
  src=sf(3)
  
  sf(4)=sf(4)+1
  
  '#######为6说明上传了图片,存储为新的数组
  
  if ubound(sf)=6then
  
  listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)&","&sf(6)
  
  dim mypic
  
  mypic=sf(6)
  
  else
  
  listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)
  
  end if
  
  '##################
  
  exit for
  
  end if
  
  next
  
  dim k,mytext,mappath
  
  mappath=server.mappath("./")
  
  set mytext=myfso.createtextfile(mappath&" ew_list.asp",-1,0)
  
  for i=0to ubound(listarray)'##########把所有数据重新写入文件
  
  if i=ubound(listarray)then
  
  mytext.write listarray(i)
  
  else
  
  mytext.write listarray(i)&"|"
  
  end if
  
  next
  
  Response.Write"〈body bgcolor=#EDF0F5topmargin=10marginheight=5leftmargin=4marginwidth=0〉"
  
  Response.Write"〈div align=center style=font-size:13pt〉〈strong〉"&title&"〈/strong〉〈span〉〈/div〉〈br〉"
  
  Response.Write"〈hr size=1〉"
  
  if len(mypic)〈〉0then
  
  Response.write"〈center〉〈img src='./images/"&mypic&"'〉〈/center〉"
  
  end if
  
  Response.Write"〈span style=font-size:10pt〉"&htmlencode2(mytext1)&"〈/span〉"
  
  Response.Write"〈br〉〈div align=right style='font-size:9pt'〉新闻来源:〈font color=red〉"&src&"〈/font〉〈/div〉"
  
  %〉
  
  〈OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"〉
  
  〈param name="Command" value="Close"〉
  
  〈/object〉
  
  〈center〉〈input type="button" value="关闭窗口" onclick="closes.Click();"〉〈/center〉
  
  〈%end if%〉
  
  //新闻修改
  
  ‘#######news_update.asp
  
  〈!--#include file="news_session.asp"--〉
  
  〈SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript〉
  
  〈!--
  
  function client_onblur(ii){
  
  server=eval("form1.server"+ii)
  
  if(server.value==""){
  
  client=eval("form1.client"+ii)
  
  clientvalue=client.value+""
  
  varlen=clientvalue.length
  
  a=clientvalue.lastIndexOf('\')
  
  clientvalue=clientvalue.substring(a+1)
  
  //alert(clientvalue);
  
  server.value=clientvalue
  
  }
  
  }
  
  function form1_onsubmit(){
  
  for(i=1;i〈1;i++){
  
  client=eval("form1.client"+i)
  
  server=eval("form1.server"+i)
  
  if(client.value!=""&&server.value==""){alert("上传后的文件名不能空!");server.focus();return false}
  
  }
  
  }
  
  //--〉
  
  〈/SCRIPT〉
  
  〈%dim myid
  
  myid=Request.QueryString("id")
  
  if len(myid)=0then
  
  Response.Write"没有该新闻"
  
  Response.End
  
  end if
  
  dim myfso,myread,mytext,newscontent
  
  '#######打开对应的新闻内容文件,并读取用变量存储
  
  set myfso=createobject("scripting.filesystemobject")
  
  if myfso.FileExists(server.mappath("./news_content/"&myid&".txt"))then
  
  set myread=myfso.opentextfile(server.mappath("./news_content/"&myid&".txt"),1,0)
  
  newscontent=myread.readall
  
  myread.close
  
  newscontent=replace(newscontent,"〈br〉",chr(13))
  
  newscontent=replace(newscontent,"","")
  
  newscontent=replace(newscontent,"",chr(32))
  
  newscontent=replace(newscontent,"''",chr(34))
  
  else
  
  Response.Write"该新闻已被删除"
  
  Response.End
  
  end if
  
  dim mytext2,myread2'#######打开新闻列表文件
  
  set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)
  
  if myread2.atendofstream then
  
  Response.Write"没有新闻内容"
  
  Response.End
  
  end if
  
  mytext2=myread2.readall
  
  dim listarray
  
  listarray=split(mytext2,"|")'#########读取记录并以#分割成listarray数组
  
  dim count,sf,i,title,src
  
  count=ubound(listarray)
  
  for i=0to count'###########根据ID找到该新闻并用变量存储给新闻的标题
  
  sf=split(listarray(i),",")
  
  if right(sf(0),7)=right(myid,7)then
  
  title=sf(1)
  
  src=sf(3)
  
  exit for
  
  end if
  
  next
  
  %〉
  
  〈head〉
  
  〈style〉
  
  td{font-size:9pt}
  
  INPUT.buttonface{
  
  BACKGROUND-COLOR:#0079F2;BORDER-BOTTOM:#3333331px outset;BORDER-LEFT:#3333331px outset;BORDER-RIGHT:#ffffff1px outset;BORDER-TOP:#ffffff1px inset;COLOR:black;FONT-SIZE:9pta{color:#000000;text-decoration:none}
  
  .text{font-size:11pt}
  
  INPUT.buttonface2{
  
  BACKGROUND-COLOR:#EDF0F5;COLOR:black;FONT-SIZE:9pta{color:#000000;text-decoration:none}
  
  a:hover{color:white;text-decoration:underline overline;background:#007EBB}
  
  .text{font-size:11pt}
  
  〈/style〉
  
  〈/head〉
  
  〈body bgcolor=#EDF0F5topmargin=10marginheight=5leftmargin=4marginwidth=0〉
  
  〈form method="POST" action="news_updateing.asp" name="form1" enctype="multipart/form-data" onsubmit="return form1_onsubmit()"〉
  
  〈div align="left"〉
  
  〈table border="1" width="752" height="240" cellspacing="0" cellpadding="0"〉
  
  〈tr〉
  
  〈td colspan="2" height="12" align="center" width="800" style="font-size:12pt"〉〈strong〉新闻发布系统后台管理--新闻修改〈/strong〉〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="119" height="12" style="font-size:9pt"〉新闻标题〈/td〉
  
  〈td width="675" height="12"〉
  
  〈input type="text" name="newtitle" size="94" value="〈%=title%〉" class="buttonface2"〉
  
  〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="119" height="213" style="font-size:9pt"〉
  
  新〈br〉
  
  闻〈br〉
  
  内〈br〉
  
  容〈/td〉
  
  〈td width="675" height="213"〉
  
  〈textarea rows="14" name="newcontent" cols="93" style="BACKGROUND-COLOR:#EDF0F5"〉〈%=newscontent%〉〈/textarea〉
  
  〈br〉
  
  〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="119" height="4" style="font-size:9pt"〉新闻来源〈/td〉
  
  〈td width="675" height="4"〉
  
  〈input type=text name="newssrc" value="〈%=src%〉" size="93" class="buttonface2"〉
  
  〈/td〉
  
  〈/tr〉
  
  〈tr〉
  
  〈td width="119" height="5" style="font-size:9pt"〉图片上传〈/td〉
  
  〈td width="675" height="5"〉〈input type="file" name="client1" size="20" readonly LANGUAGE=javascript onblur="return client_onblur(1)"〉〈/td〉
  
  〈/tr〉
  
  〈/table〉
  
  〈/div〉
  
  〈p〉
  
  〈input type="submit" value="确认" name="B1" style="font-size:10pt;color:#000000;" class="buttonface"〉
  
  〈input type="reset" value="全部重写" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"〉
  
  〈input type="button" value="帐号修改" onclick="location.href='admin/news_chadmin.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"〉
  
  〈input type="button" value="新闻添加" onclick="location.href='news_add.asp'" name="B2" style="font-size:10pt;color:#000000;" class="buttonface"〉〈/p〉
  
  〈input type=hidden name="myid" value="〈%=myid%〉"〉
  
  〈INPUT type="hidden" name="server1"〉
  
  〈input type="hidden" name="mysession" value="mysession"〉
  
  〈/form〉
  
  ##########
  
  news_updating.asp
  
  〈!--#include file="news_session.asp"--〉
  
  〈!--#include file="upload.inc"--〉
  
  〈%
  
  'Fields("xxx").Name取得Form中xxx(Form Object)的名字
  
  'Fields("xxx").FilePath如果是file Object取得文件的完整路径
  
  'Fields("xxx").FileName如果是file Object取得文件名
  
  'Fields("xxx").ContentType如果是file Object取得文件的类型
  
  'Fields("xxx").Length取得Form中xxx(Form Object)的数据长度
  
  'Fields("xxx").Value取得Form中xxx(Form Object)的数据内容
  
  Dim FormData,FormSize,gnote,bnote,notes,binlen,binstr
  
  FormSize=Request.TotalBytes
  
  FormData=Request.BinaryRead(FormSize)
  
  Set Fields=GetUpload(FormData)
  
  '############判断输入错误
  
  dim mytitle,content,src,id,mysession
  
  mysession=Fields("newtitle").value
  
  if len(mysession)=0then
  
  Response.Write"非法登陆或超时间,请重新登陆"
  
  Response.End
  
  end if
  
  mytitle=Fields("newtitle").value
  
  mytitle=replace(mytitle,"|","|")
  
  mytitle=replace(mytitle,"〈br〉","")
  
  content=Fields("newcontent").value
  
  src=Fields("newssrc").value
  
  src=replace(src,"|","|")
  
  src=replace(src,"〈br〉","")
  
  id=trim(right(Fields("myid").value,12))
  
  if len(mytitle)=0then
  
  Response.Write"〈script〉"
  
  Response.Write"alert('出错!新闻标题不能为空!');"
  
  Response.Write"location.href=history.go(-1);"
  
  Response.Write"〈/script〉"
  
  end if
  
  if len(content)=0then
  
  Response.Write"〈script〉"
  
  Response.Write"alert('出错!新闻内容不能为空!');"
  
  Response.Write"location.href=history.go(-1);"
  
  Response.Write"〈/script〉"
  
  end if
  
  if len(src)=0then
  
  Response.Write"〈script〉"
  
  Response.Write"alert('出错!新闻来源不能为空!');"
  
  Response.Write"location.href=history.go(-1);"
  
  Response.Write"〈/script〉"
  
  end if
  
  '########################################
  
  ####################################################图片更该功能的实现
  
  newfile="client1"
  
  If Fields(newfile).FileName〈〉"" Then
  
  set file_0=Server.CreateObject("Scripting.FileSystemObject")
  
  dim contextname
  
  contextname=right(Fields("client1").FileName,4)
  
  imageid=id&contextname
  
  if contextname〈〉".gif" and contextname〈〉".jpg" then'#########判断上传文件格式
  
  Response.Write"〈script〉"
  
  Response.Write"alert('出错!上传文件格式不对只能为jpg/gif图片格式!');"
  
  Response.Write"location.href=history.go(-1);"
  
  Response.Write"〈/script〉"
  
  end if
  
  file_name=Server.MapPath("./images/"&imageid&"")
  
  '#####################################如果原来有图片文件主名为id的则删除该图片
  
  if file_0.fileexists(server.MapPath("./images/"&id&".gif"))then
  
  Set f3=file_0.GetFile(server.MapPath("./images/"&id&".gif"))
  
  f3.Delete
  
  end if
  
  if file_0.fileexists(server.MapPath("./images/"&id&".jpg"))then
  
  Set f3=file_0.GetFile(server.MapPath("./images/"&id&".jpg"))
  
  f3.Delete
  
  end if
  
  '########################################写入图片
  
  set outstream=file_0.openTextFile(file_name,8,-1)
  
  binstr=Fields("client1").Value
  
  binlen=1
  
  varlen=lenb(binstr)
  
  for i=1to varlen
  
  clow=MidB(binstr,i,1)
  
  If AscB(clow)=255then
  
  outstream.write chr(255)
  
  binlen=binlen+1
  
  if(i mod2)=0then
  
  notes=gnote
  
  exit for
  
  end if
  
  elseif AscB(clow)〉128then
  
  clow1=MidB(binstr,i+1,1)
  
  if AscB(clow1)〈64or AscB(clow1)=127or AscB(clow1)=255then
  
  binlen=binlen+1
  
  'if(binlen mod2)=0then
  
  binlen=binlen+1
  
  outstream.write Chr(AscW(ChrB(128)&clow))
  
  'end if
  
  notes=bnote
  
  exit for
  
  else
  
  outstream.write Chr(AscW(clow1&clow))
  
  binlen=binlen+2
  
  i=i+1
  
  if(i mod2)=0then
  
  notes=gnote
  
  exit for
  
  end if
  
  end if
  
  else
  
  outstream.write chr(AscB(clow))
  
  binlen=binlen+1
  
  if(i mod2)=0then
  
  notes=gnote
  
  exit for
  
  end if
  
  end if
  
  next
  
  outstream.close
  
  set outstream=file_0.OpenTextFile(file_name,8,false,-1)
  
  outstream.write midb(Fields(newfile).Value,binlen)
  
  outstream.close
  
  if notes=bnote then notes=notes&(binlen-1)&"字节处。"
  
  End If
  
  dim myfso,mywrite'#######修改新闻详细内容
  
  set myfso=createobject("scripting.filesystemobject")
  
  if myfso.FileExists(server.mappath("./news_content/"&id&".txt"))then
  
  myfso.DeleteFile(server.mappath("./news_content/"&id&".txt"))
  
  end if
  
  set mywrite=myfso.createtextfile(server.mappath("./news_content/"&id&".txt"),-1,0)
  
  mywrite.write content
  
  dim mytext2,myread2'#########修改新闻的标题来源
  
  set myread2=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)
  
  mytext2=myread2.readall
  
  dim listarray,i,h,count,sf
  
  listarray=split(mytext2,"|")'#########读取记录并以#分割成listarray数组
  
  count=ubound(listarray)
  
  for i=0to count'###########根据ID找到该新闻记录
  
  sf=split(listarray(i),",")
  
  if right(sf(0),7)=right(id,7)then
  
  sf(1)=mytitle
  
  sf(3)=src
  
  '#######为6说明上传了图片,存储新的数组实现查看记录点击次数加1
  
  if ubound(sf)=6then
  
  If Fields(newfile).FileName〈〉"" Then
  
  sf(6)=imageid
  
  end if
  
  listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)&","&sf(6)
  
  else
  
  listarray(i)=sf(0)&","&sf(1)&","&sf(2)&","&sf(3)&","&sf(4)&","&sf(5)
  
  end if
  
  '##################
  
  exit for
  
  end if
  
  next
  
  function htmlencode2(str)'#############字符处理函数
  
  dim result
  
  dim l
  
  l=len(str)
  
  result=""
  
  dim i
  
  for i=1to l
  
  select case mid(str,i,1)
  
  case chr(34)
  
  result=result+"''"
  
  case"&"
  
  result=result+"&"
  
  case chr(13)
  
  result=result+"〈br〉"
  
  case""
  
  result=result+""
  
  case chr(9)
  
  result=result+""
  
  case chr(32)
  
  if i+1〈=l and i-1〉0then
  
  if mid(str,i+1,1)=chr(32)or mid(str,i+1,1)=chr(9)or mid(str,i-1,1)=chr(32)or mid(str,i-1,1)=chr(9)then
  
  result=result+""
  
  else
  
  result=result+""
  
  end if
  
  else
  
  result=result+""
  
  end if
  
  case else
  
  result=result+mid(str,i,1)
  
  end select
  
  next
  
  htmlencode2=result
  
  end function
  
  '##########################
  
  dim k,mytext,mappath
  
  mappath=server.mappath("./")
  
  set mytext=myfso.createtextfile(mappath&" ew_list.asp",-1,0)
  
  for i=0to ubound(listarray)'##########把所有数据重新写入文件
  
  if i=ubound(listarray)then
  
  mytext.write htmlencode2(listarray(i))
  
  else
  
  mytext.write htmlencode2(listarray(i)&"|")
  
  end if
  
  next
  
  %〉
  
  〈script language="javascript"〉
  
  alert("更改成功");
  
  window.location=("news_admin1.asp");
  
  〈/script〉

分享到:
本文"用文本+ASP打造新闻发布系统"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4