显示 163 相册的代码

<%
'文件地址?url=163图片地址
Dim url, body, myCache

url = Request.QueryString("url")
if url = "" then
 url = "
http://img251.photo.163.com/iamcomet/30340115/818312712.jpg"
end if

Set myCache = new cache
myCache.name = "picindex"&url
If myCache.valid Then
body = myCache.value
Else
body = GetWebData(url)
myCache.add body,dateadd("d",1,now)
End If

If Err.Number = 0 Then
 Response.CharSet = "UTF-8"
 Response.ContentType = "application/octet-stream"
 Response.BinaryWrite body
 Response.Flush
Else
 Wscript.Echo Err.Description
End if

'取得数据
Public Function GetWebData(ByVal strUrl)
 Dim curlpath
 curlpath = Mid(strUrl,1,Instr(8,strUrl,"/"))
 Dim Retrieval
 Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
 With Retrieval
  .Open "Get", strUrl, False,"",""
  .setRequestHeader "Referer", curlpath
  .Send
  GetWebData =.ResponseBody
 End With
 Set Retrieval = Nothing
End Function

'cache类

class Cache
private obj 'cache内容
private expireTime '过期时间
private expireTimeName '过期时间application名
private cacheName 'cache内容application名
private path 'url

private sub class_initialize()
 path=request.servervariables("url")
 path=left(path,instrRev(path,"/"))
end sub

private sub class_terminate()
end sub

public property get blEmpty
'是否为空
if isempty(obj) then
 blEmpty=true
else
 blEmpty=false
end if
end property

public property get valid
'是否可用(过期)
if isempty(obj) or not isDate(expireTime) then
 valid=false
elseif CDate(expireTime)<now then
 valid=false
else
 valid=true
end if
end property

public property let name(str)
'设置cache名
cacheName=str & path
obj=application(cacheName)
expireTimeName=str & "expires" & path
expireTime=application(expireTimeName)
end property

public property let expires(tm)
'重设置过期时间
expireTime=tm
application.lock
application(expireTimeName)=expireTime
application.unlock
end property

public sub add(var,expire)
'赋值
if isempty(var) or not isDate(expire) then
 exit sub
end if
obj=var
expireTime=expire
application.lock
application(cacheName)=obj
application(expireTimeName)=expireTime
application.unlock
end sub

public property get value
'取值
if isempty(obj) or not isDate(expireTime) then
 value=null
elseif CDate(expireTime)<now then
 value=null
else
 value=obj
end if
end property

public sub makeEmpty()
'释放application
application.lock
application(cacheName)=empty
application(expireTimeName)=empty
application.unlock
obj=empty
expireTime=empty
end sub

public function equal(var2)
'比较
if typename(obj)<>typename(var2) then
 equal=false
elseif typename(obj)="Object" then
 if obj is var2 then
  equal=true
 else
  equal=false
 end if
elseif typename(obj)="Variant()" then
 if join(obj,"^")=join(var2,"^") then
  equal=true
 else
  equal=false
 end if
else
 if obj=var2 then
  equal=true
 else
  equal=false
 end if
end if
end function
end class
%>

简单的在线人数统计

  一、新建 global.asa 文件,内容入下:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
 Sub Session_OnStart
  application("online")=application("online")+1
 End Sub

 Sub Session_OnEnd
  application("online")=application("online")-1
 End Sub

 Sub Application_OnStard
  application("online")=1
 End Sub

 Sub Application_OnEnd
  application("online")=1
 End Sub
</SCRIPT>

二、在 asp 页面中调用: 在线人数:<%=application("online")%>

VBscript 运行时错误列表

Microsoft VBscript 运行时错误列表(10进制表示)
error # 5 无效的过程调用或参数
error # 5 无效的过程调用或参数
error # 6 溢出
error # 7 内存不够
error # 9 下标越界
error # 10 该数组为定长的或临时被锁定
error # 11 被零除
error # 13 类型不匹配
error # 14 字符串空间不够
error # 17 不能执行所需的操作
error # 28 堆栈溢出
error # 35 未定义过程或函数
error # 48 加载 DLL 时出错
error # 51 内部错误
error # 52 错误的文件名或号码
error # 53 文件未找到
error # 54 错误的文件模式
error # 55 文件已经打开
error # 57 设备 I/O 错误
error # 58 文件已存在
error # 61 磁盘已满
error # 62 输入超出了文件尾
error # 67 文件过多
error # 68 设备不可用
error # 70 没有权限
error # 71 磁盘没有准备好
error # 74 重命名时不能带有其他驱动器符号
error # 75 路径/文件访问错误
error # 76 路径未找到
error # 91 对象变量未设置
error # 92 For 循环未初始化
error # 94 无效使用 Null
error # 322 不能创建必要的临时文件
error # 424 缺少对象
error # 429 ActiveX 部件不能创建对象
error # 430 类不支持 Automation 操作
error # 432 Automation 操作中文件名或类名未找到
error # 438 对象不支持此属性或方法
error # 440 Automation 操作错误
error # 445 对象不支持此操作
error # 446 对象不支持已命名参数
error # 447 对象不支持当前区域设置选项
error # 448 未找到已命名参数
error # 449 参数是必选项
error # 450 错误的参数个数或无效的参数属性值
error # 451 对象不是一个集合
error # 453 未找到指定的 DLL 函数
error # 455 代码资源锁定错误
error # 457 此键已与该集合的一个元素关联
error # 458 变量使用了一个 VBScript 中不支持的 Automation 类型
error # 462 远程服务器不存在或不可用
error # 481 无效图片
error # 500 变量未定义
error # 501 非法赋值
error # 502 对象不能安全用 Script 编程
error # 503 对象不能安全初始化
error # 504 对象不能安全创建
error # 505 无效的或无资格的引用
error # 506 类没有被定义
error # 507 出现一个意外错误
error # 1001 内存不够
error # 1002 语法错误
error # 1003 缺少 ':'
error # 1005 缺少 '('
error # 1006 缺少 ')'
error # 1007 缺少 ']'
error # 1010 缺少标识符
error # 1011 缺少 '='
error # 1012 缺少 'If'
error # 1013 缺少 'To'
error # 1014 缺少 'End'
error # 1015 缺少 'Function'
error # 1016 缺少 'Sub'
error # 1017 缺少 'Then'
error # 1018 缺少 'Wend'
error # 1019 缺少 'Loop'
error # 1020 缺少 'Next'
error # 1021 缺少 'Case'
error # 1022 缺少 'Select'
error # 1023 缺少表达式
error # 1024 缺少语句
error # 1025 语句未结束
error # 1026 缺少整型常数
error # 1027 缺少 'While' 或 'Until'
error # 1028 缺少 'While' 和 'Until'或语句未结束
error # 1029 缺少 'With'
error # 1030 标识符过长
error # 1031 无效数字
error # 1032 无效字符
error # 1033 未结束的字符串常量
error # 1034 注释未结束
error # 1037 无效使用 'Me' 关键字
error # 1038 'loop' 语句缺少 'do'
error # 1039 无效的 'exit' 语句
error # 1040 循环控制变量 'for' 无效
error # 1041 名称重定义
error # 1042 必须是行中的第一个语句
error # 1043 不能为 non-ByVal 参数赋值
error # 1044 调用子程序时不能使用括号
error # 1045 缺少文字常数
error # 1046 缺少 'In'
error # 1047 缺少 'Class'
error # 1048 必须在一个类的内部定义
error # 1049 在属性声明中缺少 Let , Set 或 Get
error # 1050 缺少 'Property'
error # 1051 在所有属性的规范中,变量的数目必须一致
error # 1052 在一个类中不允许有多个缺省的属性/方法
error # 1053 类的初始化或终止程序没有变量
error # 1054 属性的 set 或 let 必须至少有一个变量
error # 1055 错误的 'Next'
error # 1056 'Default' 只能在 'Property' , 'Function' 或 'Sub' 中指定
error # 1057 指定 'Default' 时必须同时指定 'Public'
error # 1058 只能在 Property Get 中指定 'Default'
error # 4096 Microsoft VBScript 编译器错误
error # 4097 Microsoft VBScript 运行时错误
error # 5016 缺少正则表达式对象
error # 5017 正则表达式语法错误
error # 5018 错误的数量词
error # 5019 正则表达式中缺少 ']'
error # 5020 正则表达式中缺少 ')'
error # 5021 字符集越界

把 ip 转换为整数

原理:先把 192.168.1.13 变成16进制的 c0.a8.01.0d ,再去了“.”后转成10进制的 3232235789 即可。

<%
function ip2int(ipstr)
 dim iptemp,max
 iptemp = split(ipstr&".",".")
 max = ubound(iptemp)
 if max <> 4 then
 exit function
end if

dim a,b,i
a = "&H"
for i = 0 to 3
 b = Hex(iptemp(i))
 if len(b) = 1 then
  b = "0"&b
 end if
 a = a&b
next
ip2int = CLng(a)
end function

function int2ip(ip)
 dim iptemp,a,ipstr,i,length
 iptemp = Hex(ip)
 length = 8 - len(iptemp)
 for i = 1 to length
  iptemp = "0" & iptemp
 next
 a = left(iptemp,2)
 a = "&H" & a
 i = CInt(a)
 a = CStr(i)
 ipstr = a & "."
 a = mid(iptemp,3,2)
 a = "&H" & a
 i = CInt(a)
 a = CStr(i)
 ipstr = ipstr & a & "."
 a = mid(iptemp,5,2)
 a = "&H" & a
 i = CInt(a)
 a = CStr(i)
 ipstr = ipstr & a & "."
 a = right(iptemp,2)
 a = "&H" & a
 i = CInt(a)
 a = CStr(i)
 ipstr = ipstr & a
 int2ip = ipstr
end function

dim testIP,testInt
testIP="0.0.1.0"
testInt = ip2int(testIP)
response.write testIP & " will be encoded to <font color=red>" & testInt & "</font><br>"
response.write testIP & " will be decoded to <font color=red>" & int2ip(testInt) & "</font><br>"
%>

asp 的网页代理

使用方法:webproxy.asp?url=http://网址

<%
Response.Buffer = True

Dim sUrlB
PageWebProxy()

Sub PageWebProxy()
 Dim i, re, Url, Html
 Url = Request.QueryString("url")
 If Url = "" Then Response.Redirect("?url=http://www.gdqy.edu.cn/")

 Set re = New RegExp
 re.IgnoreCase = True
 re.Global = True

 sUrlB = Url
 Html = getHTTPPage(Url)
 Url = Left(Url, InStrRev(Url, "/"))

 i = InStr(sUrlB, "?")
 If i > 0 Then
  sUrlB = Left(sUrlB, i - 1)
 End If

 re.Pattern = "(href|action)=('|"")?(?)"
 Html = re.Replace(Html,"$1=$2" & sUrlB & "?")

 re.Pattern = "(src|action|href)=('|"")?((http|https|javascript):[A-Za-z0-9./=?%-&_~`@[]':+!]+([^<>""])+)('|"")?"
 Html = re.Replace(Html,"$1x=$2$3$2")

 re.Pattern = "(window.open|url)(('|"")?((http|https):(//|\\)[A-Za-z0-9./=?%-&_~`@[]:+!]+([^'<>""])+)('|"")?)"
 Html = re.Replace(Html,"$1x($2$3$2)")

 re.Pattern = "(src|action|href|background)=('|"")?([^/""'][A-Za-z0-9./=?%-&_~`@[]:+!]+([^'<>""])+)('|"")?"
 Html = re.Replace(Html,"$1=$2" & Url & "$3$2")
 re.Pattern = "(src|action|href|background)=('|"")?/([^""'][A-Za-z0-9./=?%-&_~`@[]:+!]+([^'<>""])+)('|"")?"
 Html = re.Replace(Html,"$1=$2http://" & Split(Url, "/")(2) & "/$3$2")
 re.Pattern = "(src|action|href)=('|"")?/('|"")?"
 Html = re.Replace(Html,"$1=$2http://" & Split(Url, "/")(2) & "/$2")

 re.Pattern = "(window.open|url)(('|"")?([^/""'http:][A-Za-z0-9./=?%-&_~`@[]+!]+([^'<>""])+)('|"")?)"
 Html = re.Replace(Html,"$1($2" & Url & "$3$2)")
 re.Pattern = "(window.open|url)(('|"")?/([^""'http:][A-Za-z0-9./=?%-&_~`@[]+!]+([^'<>""])+)('|"")?)"
 Html = re.Replace(Html,"$1($2http://" & Split(Url, "/")(2) & "/$3$2)")

 Html = Replace(Html, "&", "%26")
' If Split(Url, "/")(2) = "club.isso.com.cn" Then
'  Html = Replace(Html, "%26amp;", "%26")
'  Else
  Html = Replace(Html, "%26amp;", "&amp;")
' End If
 Html = Replace(Html, "%26nbsp;", "&nbsp;")
 Html = Replace(Html, "%26lt;", "&lt;")
 Html = Replace(Html, "%26gt;", "&gt;")
 Html = Replace(Html, "%26quot;", "&quot;")
 Html = Replace(Html, "%26copy;", "&copy;")
 Html = Replace(Html, "%26reg;", "&reg;")
 Html = Replace(Html, "%26raquo;", "&raquo;")
 Html = Replace(Html, "%26%26", "&&")
 Html = Replace(Html, "%26#", "&#")
' Html = Replace(Html, "%26", "")

 re.Pattern = "(src|action|href)x=('|"")?((http|https|javascript):[A-Za-z0-9./=?%-&_~`@[]':+!]+([^<>""])+)('|"")?"
 Html = re.Replace(Html,"$1=$2$3$2")

 re.Pattern = "((http|https):(//|\\)[A-Za-z0-9./=?%-&_~`@[]':+!]+([^<>""])+)" '"(gif|jpg|bmp|png))"
 Html = re.Replace(Html,"?url=$1")

 re.Pattern = "?url=" & Url & "(#|javascript:)"
 Html = re.Replace(Html,"$1")

 re.Pattern = "multipart/form-data"
 Html = re.Replace(Html,"")

 Response.Write(Html)
End Sub

Function getHTTPPage(url)
 Dim Http, theStr, fileExt
 Set Http = Server.CreateObject("MSXML2.XMLHTTP")

 If Request.Form.Count > 0 Then
  For Each x In Request.Form
   theStr = theStr & Server.UrlEncode(x) & "=" & Server.UrlEncode(Request.Form(x)) & "&"
  Next
  Http.Open "POST", url, False
  Http.SetRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
  Http.Send(theStr)
  Else
  Http.Open "GET", url, False
  Http.Send()
 End If

 If Http.readystate<>4 then Exit Function

 fileExt = LCase(Mid(url, InStrRev(url, ".") + 1))
 If InStr("$jpg$gif$bmp$png$js$", "$" & fileExt & "$") > 0 Then
  Response.Clear
  Response.BinaryWrite Http.responseBody
  Response.End()
  Else
  If InStr("$rar$mdb$zip$exe$com$ico$", "$" & fileExt & "$") > 0 Then
   Response.AddHeader "Content-Disposition", "Attachment; Filename=" & Mid(sUrlB, InStrRev(sUrlB, "/") + 1)
   Response.BinaryWrite Http.responseBody
   Response.Flush
   Else
   getHTTPPage = bytesToBSTR(Http.responseBody, "GB2312")
  End If
 End If

 Set Http = Nothing
End Function

Function BytesToBstr(body,Cset)
 Dim objstream
 Set objstream = Server.CreateObject("adodb.stream")
 objstream.Type = 1
 objstream.Mode =3
 objstream.Open
 objstream.Write body
 objstream.Position = 0
 objstream.Type = 2
 objstream.Charset = Cset
 BytesToBstr = objstream.ReadText
 objstream.Close
 Set objstream = nothing
End Function
%>

17种正则表达式

"^\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\d+$"    //整数
"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\d+)(\.\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url

frame,iframe,frameset 的区别

<FRAMESET> <FRAME>
<NOFRAMES>
<IFRAME>
欲明白本篇【HTML剖析】之标记分类请看 【标记一览】。
亦请先明白围堵标记与空标记的分别请看 【HTML概念】。

■ 框架概念
所谓框架便是网页画面分成几个框窗,同时取得多个 URL。只需要 <FRAMESET> <FRAME> 即可,而所有框架标记需要放在一个总起的 html 档,这个档案只记录了该框架 如何划分,不会显示任何资料,所以不必放入 <BODY> 标记,浏览这框架必须读取这档 案而不是其它框窗的档案。<FRAMESET> 是用以划分框窗,每一框窗由一个 <FRAME> 标 记所标示,<FRAME>必须在 <FRAMESET> 范围中使用。如下例:
<frameset cols="50%,*">
<frame name="hello" src="up2u.html">
<frame name="hi" src="me2.html">
</frameset>
此例中 <FRAMESET> 把画面分成左右两相等部分,左便是显示 up2u.html,右边则会显示 me2.html 这档案,<FRAME> 标记所标示的框窗永远是按由上而下、由左至右的次序。

本节与 Composer 教室的【运用框架】大部分相同,只是本节增加了内容及较为详细,正 如其它篇章一样并不会提及网页制作工具,若阁下学会了 HTML 相信你亦不会选用 Composer , FrontPage 一类的工具了。

■ <FRAMESET> <FRAME>

<FRAMESET> 称框架标记,用以宣告HTML文件为框架模式,并设定视窗如何分割。
<FRAME> 则只是设定某一个框窗内的参数属性。
<FRAMESET> 参数设定:
例子:<frameset rows="90,*" frameborder="0" border=0 framespacing="2" bordercolor="#008000">

COLS="90,*"
垂直切割画面(如分左右两个画面),接受整数值、百分数, * 则代表占用馀下空 间。数值的个数代表分成的视窗数目且以逗号分隔。例如COLS="30,*,50%" 可以 切成叁个视窗,第一个视窗是 30 pixels 的宽度,为一绝对分割,第二个视窗是当 分配完第一及第叁个视窗後剩下的空间,第叁个视窗则占整个画面的 50% 宽度 为 一相对分割。您可自己调整数字。
ROWS="120,*"
就是横向切割,将画面上下分开,数值设定同上。唯 COLS 与 ROWS 两参数尽量 不要同在一个 <FRAMESET> 标记中,因 Netacape 偶然不能显示这类形的框架,尽 采用多重分割。
frameborder="0"
设定框架的边框,其值只有 0 和 1 , 0 表示不要边框, 1 表示要显示边框。(避 免使用 yes 或 no )
border="0"
设定框架的边框厚度,以 pixels 为单位。
bordercolor="#008000"
设定框架的边框颜色。颜色值请参考【调色原理】。
framespacing="5"
表示框架与框架间的保留空白的距离。
<FRAME> 参数设定:
例子:<frame name="top" src="a.html" marginwidth="5" marginheight="5" scrolling="Auto" frameborder="0" noresize framespacing="6" bordercolor="#0000FF">

SRC="a.html"
设定此框窗中要显示的网页档案名称,每个框窗一定要对应着一个网页档案。你可 使用绝对路径或相对路径,有关此两者详见於【连结进阶】 。
NAME="top"
设定这个框窗的名称,这样才能指定框架来作连结,必须但任意命名。
frameborder=0
设定框架的边框,其值只有 0 和 1 , 0 表示不要边框, 1 表示要显示边框。(避 免使用 yes 或 no )
framespacing="6"
表示框架与框架间的保留空白的距离。
bordercolor="#008000"
设定框架的边框颜色。颜色值请参考【HTML 剖析】。
scrolling="Auto"
设定是否要显示卷轴,YES 表示要显示卷轴,NO 表示无论如何都不要显示, AUTO是视情况显示。
noresize
设定不让使用者可以改变这个框框的大小,亦没有设定此参数,使用者可以很随 意地拉动框架,改变其大小。
marginhight=5
表示框架高度部份边缘所保留的空间。
marginwidth=5
表示框架宽度部份边缘所保留的空间。
以下是一些例子:(与 Composer 教室的【运用框架】相同)

例子 HTML Code
<frameset rows="80,*">
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>

例子 HTML Code
<frameset rows="80,*,80">
<frame name="top" src="a.html">
<frame name="middle" src="b.html">
<frame name="bottom" src="c.html">
</frameset>

例子 HTML Code
<frameset cols="150,*">
<frameset rows="80,*">
<frame name="upper_left" src="a.html">
<frame name="lower_left" src="b.html">
</frameset>
<frame name="right" src="c.html">
</frameset>

例子 HTML Code
<frameset rows="80,*">
<frame name="top" src="a.html">
<frameset cols="150,*">
<frame name="lower_left" src="b.html">
<frame name="lower_right" src="c.html">
</frameset>
</frameset>

例子 HTML Code
<frameset cols="150,*">
<frame name="left" src="a.html">
<frameset rows="80,*">
<frame name="upper_right" src="b.html">
<frame name="lower_right" src="c.html">
</frameset>
</frameset>

■ <NOFRAMES>
当别人使用的浏览器太旧,不支援框架这个功能时,他看到的将会是一片空白。为了避免 这种情况,可使用 <NOFRAMES> 这个标记,当使用者的浏览器看不到框架时,他就会看到 <NOFRAMES> 与 </NOFRAMES> 之间的内容,而不是一片空白。这些内容可以是提醒 浏览转用新的浏览器的字句,甚至是一个没有框架的网页或能自动切换至没有框架的版本 亦可。
应用方法:
在<frameset> 标记范围加入 </NOFRAMES> 标记,以下是一个例子:

<frameset rows="80,*">
<noframes>
<body>
很抱歉,阁下使用的浏览器不支援框架功能,请转用新的浏览器。
</body>
</noframes>
<frame name="top" src="a.html">
<frame name="bottom" src="b.html">
</frameset>
若浏览器支援框架,那麽它不会理会 <noframes> 中的东西,但若浏览器不支援框架,由 於不认识所有框架标记,不明的标记会被略过,标记包围的东西便被解读出来,所以放在 <noframes>范围内的文字会被显示。

■ <IFRAME> : 

这标记只适用於 IE(comet:也使用于FireFox)。 它的作用是在一页网页中间插入一个框窗以显示另一个文件。它是 一个围堵标记,但围着的字句只有在浏览器不支援 iframe 标记时才会显示,如<noframes> 一样,可以放些提醒字句之类。通常 iframe 配合一个辨认浏览器的 JavaScript 会较好,若 JavaScript 认出该浏览器并非 Internet Explorer 便会切换至另一版本。PS:一定要使用</iframe>关闭,否则后面的内容显示不出来。

<iframe> 的参数设定如下:
例子: <iframe src="iframe.html" name="test" align="MIDDLE" width="300" height="100" marginwidth="1" marginheight="1" frameborder="1" scrolling="Yes"> </iframe>

src="iframe.html"
欲显示於此框窗的文件来源除档案名称,必要加上相对或绝对路径。
name="test"
此框窗名称,这是连结标记的 target 参数所需要的,
align="MIDDLE"
可选值为 left, right, top, middle, bottom,作用不大
width="300" height="100"
框窗的宽及长,以 pixels 为单位。
marginwidth="1" marginheight="1"
该插入的文件与框边所保留的空间。
frameborder="1"
使用 1 表示显示边框, 0 则不显示。(可以是 yes 或 no)
scrolling="Yes"
使用 Yes 表示容许卷动(内定), No 则不容许卷动。

用ASP备份还原SQL Server

<HTML>
<HEAD>
<TITLE>SQL Server 数据库的备份与恢复</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<BODY>

<script language="javascript">
function inputdir()
{
if(event.srcElement.value =="wdir")
{
myform.bakfileName.disabled = true;
}
else if (event.srcElement.value == "cdir")
{
myform.bakfileName.disabled = false;
}
}
</script>
<%
if request.ServerVariables("CONTENT_LENGTH")=0 then
call fillform()
else
call backupDB()
call fillform()
end if

sub fillform()%>
<form method="post" name=myform>
<table width="433" border="1" align="center" cellpadding="0" cellspacing="0">
<caption>
SQL Server 数据库的备份与恢复
</caption>
<tr>
<td>选择操作:<label for=act_restore></label></td>
<td>
<input type="radio" name="act" id="act_backup" value="backup">
<label for=act_backup>备份</label>
<input type="radio" name="act" id="act_restore" value="restore">
<label for=act_restore>恢复</label></td>
</tr>
<tr>
<td>帐号:</td>
<td><input name="adminName" type="text" ></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="adminPassword" type="password" ></td>
</tr>
<tr>
<td>数据库名:</td>
<td><input name="databaseName" type="text" ></td>
</tr>
<tr>
<td>备份路径:</td>
<td>
<label><input type="radio" name="BackUpType" value="wdir" checked onClick="inputdir()">当前目录</label>
<label><input type="radio" name="BackUpType" value="cdir" onClick="inputdir()">自定义</label>
</td>
</tr>
<tr>
<td>文件路径:</td>
<td><input type="text" id="bakfileName" name="bakfileName" value="c:$N.bak" disabled>(备份或恢复的文件路径)</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="submit" type="submit" value="确定">
<input name="Reset" type="reset" value="重置">
</div></td>
</tr>
</table>
</form>
<% end sub %>

<%
sub backupDB()
dim sqlserver,adminName,adminPassword,sqlLoginTimeout,databasename,bakfileName,act
sqlserver = "localhost" 'sql服务器
adminName = Trim(Request.Form("adminName")) '用户名
adminPassword = Trim(Request.Form("adminPassword")) '密码
sqlLoginTimeout = 15 '登陆超时
databaseName = trim(request.Form("databaseName"))
BackUpType = trim(request.Form("BackUpType"))
if BackUpType = "wdir" then
bakfileName = request.ServerVariables("APPL_PHYSICAL_PATH") & "" & databaseName & ".bak"
elseif BackUpType = "cdir" then
bakfileName = trim(request.Form("bakfileName"))
bakfileName = replace(bakfileName,"$N",databaseName)
else

end if
act = lcase(request("act"))

if databasename = "" then
response.write "<center><font color=red>没有输入数据库名!</font></center>"
'response.End()
elseif bakfileName = "" then
response.Write "<center><font color=red>没有输入备份文件名!</font></center>"
else
if act = "backup" then
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,adminName,adminPassword
Set bak = Server.CreateObject("SQLDMO.Backup")
bak.Database=databasename
bak.Devices=Files
bak.Files=bakfileName
bak.SQLBackup srv
if err.number<>0 then
response.write err.number & "<font color=red><br>"
response.write err.description & "</font>"
else
response.Write "<center><font color=blue>备份成功!</font></center>"
'response.End()
end if
elseif act = "restore" then
'恢复时要在没有使用数据库时进行!
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,adminName,adminPassword
Set rest=Server.CreateObject("SQLDMO.Restore")
rest.Action=0 ' full db restore
rest.Database=databasename
rest.Devices=Files
rest.Files=bakfileName
rest.ReplaceDatabase=True 'Force restore over existing database
rest.SQLRestore srv
if err.number<>0 then
response.write err.number & "<font color=red><br>"
response.write err.description & "</font>"
else
Response.write "<center><font color=green>恢复成功!</font></center>"
'response.End()
end if
else
Response.write "<center><font color=red>没有选择操作!</font></center>"
'response.End()
end if
end if
end sub
%>
</BODY>
</HTML>

dvbbs 7.0的后台菜单

<SCRIPT language=javascript1.2 type="text/javascript">
function showsubmenu(sid)
{
whichEl = eval("submenu" + sid);
if (whichEl.style.display == "none")
{
eval("submenu" + sid + ".style.display="";");
}
else
{
eval("submenu" + sid + ".style.display="none";");
}
}
</SCRIPT>

<table id="1" cellspacing="0" cellpadding="0" align="center" width="200" border="1">
<tr>
<td height="8">动网论坛后台菜单</td>
</tr>
<tr style="CURSOR: hand" onclick="showsubmenu(1)">
<td><strong>聊 天</strong></td>
</tr>
<tr id="submenu1">
<td>碧聊<br>
新浪聊天<br>
网易聊天</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="showsubmenu(2)">
<td><strong>游 戏</strong></td>
</tr>
<tr id="submenu2" style="DISPLAY: none">
<td>17173<br>
新浪游戏<br>
太平洋游戏</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="showsubmenu(3)">
<td><strong>下 载</strong> </td>
</tr>
<tr id="submenu3" style="DISPLAY: none">
<td>华军软件<br>
天空软件<br>
霏凡软件站</td>
</tr>
<tr>
<td height="8"></td>
</tr>
</table>