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

来源:网络时间:2011-07-04 17:05:50

  介绍

  我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页。

  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 〉 0 And 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=1 To varlen

  If skipflag=0 Then

  clow = MidB(binstr,i,1)

  '判断是否中文的字符

  If AscB(clow) 〉 127 Then

  '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=1 To Len(varstr)

  varchar=mid(varstr,i,1)

  varasc = Asc(varchar)

  ' asc对中文字符求出来的值可能为负数,

  ' 加上65536就可求出它的无符号数值

  ' -1在机器内是用补码表示的0xffff,

  ' 其无符号值为65535,65535=-1+65536

  ' 其他负数依次类推。

  If varasc〈0 Then

  varasc = varasc + 65535

  End If

  '对中文的处理:把双字节低位和高位分开

  If varasc〉255 Then

  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: #333333 1px outset; 、

  BORDER-LEFT: #333333 1px outset; BORDER-RIGHT: #ffffff 1px outset; BORDER-TOP: #ffffff 1px 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=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=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)=0 then

  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)=0 then%〉

  〈script〉

  alert("出错!新闻标题不能为空");

  history.go(-1);

  //window.location="news_add.asp";

  〈/script〉

  〈%Response.end

  end if

  if len(news_content)=0 then%〉

  〈script〉

  alert("出错!新闻内容不能为空");

  history.go(-1);

  〈/script〉

  〈%end if

  if len(news_src)=0 then%〉

  〈script〉

  alert("出错!新闻来源不能为空");

  history.go(-1);

  〈/script〉

  〈%Response.end

  end if

  dim varchar

  varchar=right(Fields("server1").value,3)

  if len(varchar)〈〉0 then

  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=1 to varlen

  clow = MidB(binstr,i,1)

  If AscB(clow) = 255 then

  outstream.write chr(255)

  binlen=binlen+1

  if (i mod 2)=0 then

  notes=gnote

  exit for

  end if

  elseif AscB(clow) 〉 128 then

  clow1=MidB(binstr,i+1,1)

  if AscB(clow1) 〈64 or AscB(clow1) =127 or AscB(clow1) = 255 then

  binlen=binlen+1

  'if (binlen mod 2)=0 then

  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 mod 2)=0 then

  notes=gnote

  exit for

  end if

  end if

  else

  outstream.write chr(AscB(clow))

  binlen=binlen+1

  if (i mod 2)=0 then

  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)〈〉0 then

  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 = 1 to 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〉0 then

  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,".")=0 then

  pagenum=pagecount

  else

  pagenum=int(pagecount)+1

  end if

  dim topage

  topage=cint(Request.QueryString ("topage")) '########取得要显示的页面

  if topage〈=0 then

  topage=1

  end if

  if topage〉pagenum then

  topage=pagenum

  end if

  

  dim i,j,n

  b=listarray

  for i=0 to recordcount-1 '########把每一条记录组成一个数组

  j=split(listarray(i),",")

  if ubound(j)=6 then

  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 to 0 step -1

  c(n)=b(i)

  n=n+1

  next

  

  dim currentrecord

  currentrecord=pagesize*(topage-1)+1 '#########显示每一页

  for k=1 to pagesize

  if len(c(currentrecord))=0 then

  exit for

  end if

  Response.Write c(currentrecord)&"〈br〉"

  currentrecord=currentrecord+1

  next

  Response.Write "〈body bgcolor=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=0〉"

  for m=1 to 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=0 to count '###########根据ID找到该新闻实现删除功能

  sf=split(listarray(i),",")

  if right(sf(0),7)=right(id,7) then

  dim thisid

  thisid=i

  '#######为6说明上传了图片,删除新闻图片和该列表记录

  if ubound(sf)=6 then

  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=0 to thisid-1' ##########把所有数据重新写入文件

  mytext.write listarray(i)&"|"

  next

  for i=thisid+1 to 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)=0 then

  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 = 1 to 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〉0 then

  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=0 to 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)=6 then

  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=0 to ubound(listarray)' ##########把所有数据重新写入文件

  if i=ubound(listarray) then

  mytext.write listarray(i)

  else

  mytext.write listarray(i)&"|"

  end if

  next

  Response.Write "〈body bgcolor=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=0〉"

  Response.Write"〈div align=center style=font-size:13pt〉〈strong〉"&title&"〈/strong〉〈span〉〈/div〉〈br〉"

  Response.Write "〈hr size=1〉"

  if len(mypic)〈〉0 then

  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)=0 then

  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=0 to 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: #333333 1px outset; BORDER-LEFT: #333333 1px outset; BORDER-RIGHT: #ffffff 1px outset; BORDER-TOP: #ffffff 1px 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=#EDF0F5 topmargin=10 marginheight=5 leftmargin=4 marginwidth=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)=0 then

  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)=0 then

  Response.Write "〈script〉"

  Response.Write "alert('出错!新闻标题不能为空!');"

  Response.Write"location.href=history.go(-1);"

  Response.Write "〈/script〉"

  end if

  if len(content)=0 then

  Response.Write "〈script〉"

  Response.Write "alert('出错!新闻内容不能为空!');"

  Response.Write"location.href=history.go(-1);"

  Response.Write "〈/script〉"

  end if

  if len(src)=0 then

  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=1 to varlen

  clow = MidB(binstr,i,1)

  If AscB(clow) = 255 then

  outstream.write chr(255)

  binlen=binlen+1

  if (i mod 2)=0 then

  notes=gnote

  exit for

  end if

  elseif AscB(clow) 〉 128 then

  clow1=MidB(binstr,i+1,1)

  if AscB(clow1) 〈64 or AscB(clow1) =127 or AscB(clow1) = 255 then

  binlen=binlen+1

  'if (binlen mod 2)=0 then

  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 mod 2)=0 then

  notes=gnote

  exit for

  end if

  end if

  else

  outstream.write chr(AscB(clow))

  binlen=binlen+1

  if (i mod 2)=0 then

  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=0 to 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)=6 then

  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 = 1 to 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〉0 then

  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=0 to 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〉

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:rjfawu@163.com
多特网友 2011-09-30 15:47:15 回复
    不是asp吗?   怎么后缀是.aspx?
多特网友 2012-12-18 01:10:42
##本来就是啊……##
多特网友 2011-09-30 15:47:15 回复
    不是asp吗?   怎么后缀是.aspx?
多特网友 2012-12-18 01:10:42
##本来就是啊……##