怎样才能将nginx query stringg从一个asp文件传送到另一个

ASP20个实例_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ASP20个实例
&&asp的基本应用
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢html的submit如何传值到另一个页面,另外页面如何接受 - ASP.NET当前位置:& &&&html的submit如何传值到另一个页面,另外页面如何接html的submit如何传值到另一个页面,另外页面如何接受&&网友分享于:&&浏览:307次html的submit怎么传值到另一个页面,另外页面怎么接受比如下面是a.aspx页面的代码:
&form&runat="server"&action="test2.aspx"&method="get"&
&input&type="text"&id="txt"&name="txt"&/&
&input&type="button"&id="btn"&style="&width:50"&value="提交"&&/&
如何在b.aspx页面接受传过来的值?请教大侠们!------解决方案--------------------Reuquest.From["btn"]------解决方案--------------------string&txt=&form["txt"];------解决方案--------------------补充:System.Collections.Specialized.NameValueCollection&form&=&Request.F
string&txt=&form["txt"];&------解决方案--------------------get方式用querystring接收
Response.QueryString["name"]
就是你传过来的值------解决方案--------------------form提交&直接用Reuquest.From["参数"]即可,url提交用&Response.QueryString["参数"]
------解决方案--------------------将你的提交按钮的type改成&type="submit"&这样就不用写脚本了,test2.aspx中区txt:&Request.QueryString["txt"]------解决方案--------------------楼上都对。。。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有&%&'#######以下是一个类文件,下面的注解是调用类的方法################################################&'# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用&'# Access 数据库类&'# CreateDbFile 建立一个Access 数据库文件&'# CompactDatabase 压缩一个Access 数据库文件&'# 建立对象方法:&'# Set a = New DatabaseTools&'# by (萧寒雪) s.f.&'#########################################################################################Class DatabaseTools&Public function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath)&'建立数据库文件&'If DbVer is 0 Then Create Access97 dbFile&'If DbVer is 1 Then Create Access2000 dbFile&On error resume Next&If Right(SavePath,1)&&"/" Or Right(SavePath,1)&&"/" Then SavePath = Trim(SavePath) & "/"&If Left(dbFileName,1)="/" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))&If DbExists(SavePath & dbFileName) Then&Response.Write ("对不起,该数据库已经存在!")&CreateDBfile = False&Else&Dim Ca&Set Ca = Server.CreateObject("ADOX.Catalog")&If Err.number&&0 Then&Response.Write ("无法建立,请检查错误信息&" & Err.number & "&" & Err.Description)&Err.Clear&Exit function&End If&If DbVer=0 Then&call Ca.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName)&Else&call Ca.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SavePath & dbFileName)&End If&Set Ca = Nothing&CreateDBfile = True&End If&End function&Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath)&'压缩数据库文件&'0 为access 97&'1 为access 2000&On Error resume next&If Right(SavePath,1)&&"/" Or Right(SavePath,1)&&"/" Then SavePath = Trim(SavePath) & "/"&If Left(dbFileName,1)="/" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))&If DbExists(SavePath & dbFileName) Then&Response.Write ("对不起,该数据库已经存在!")&CompactDatabase = False&Else&Dim Cd&Set Cd =Server.CreateObject("JRO.JetEngine")&If Err.number&&0 Then&Response.Write ("无法压缩,请检查错误信息&" & Err.number & "&" & Err.Description)&Err.Clear&Exit function&End If&If DbVer=0 Then&pactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data&Source=" & SavePath & dbFileName & ".bak.Jet OLEDB;Encrypt Database=True")&Else&pactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &&SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &&SavePath & dbFileName & ".bak.Jet OLEDB;Encrypt Database=True")&End If&'删除旧的数据库文件&call DeleteFile(SavePath & dbFileName)&'将压缩后的数据库文件还原&call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName)&Set Cd = False&CompactDatabase = True&End If&end function&Public function DbExists(byVal dbPath)&'查找数据库文件是否存在&On Error resume Next&Dim c&Set c = Server.CreateObject("ADODB.Connection")&c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath&If Err.number&&0 Then&Err.Clear&DbExists = false&else&DbExists = True&End If&set c = nothing&End function&Public function AppPath()&'取当前真实路径&AppPath = Server.MapPath("./")&End function&Public function AppName()&'取当前程序名称&AppName = Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME") ,"/",-1,1))+1,Len(Request.ServerVariables("SCRIPT_NAME")))&End Function&Public function DeleteFile(filespec)&'删除一个文件&Dim fso&Set fso = CreateObject("Scripting.FileSystemObject")&If Err.number&&0 Then&Response.Write("删除文件发生错误!请查看错误信息&" & Err.number & "&" & Err.Description)&Err.Clear&DeleteFile = False&End If&call fso.DeleteFile(filespec)&Set fso = Nothing&DeleteFile = True&End function&Public function RenameFile(filespec1,filespec2)&'修改一个文件&Dim fso&Set fso = CreateObject("Scripting.FileSystemObject")&If Err.number&&0 Then&Response.Write("修改文件名时发生错误!请查看错误信息&" & Err.number & "&" & Err.Description)&Err.Clear&RenameFile = False&End If&call fso.CopyFile(filespec1,filespec2,True)&call fso.DeleteFile(filespec1)&Set fso = Nothing&RenameFile = True&End function&End Class&%&&现在已可以压缩有密码的数据库,代码如下,但是压缩之后的数据库密码就没有了!如何解决?&&%&Const JET_3X = 4&Function CompactDB(dbPath, boolIs97)&Dim fso, Engine, strDBPath&strDBPath = left(dbPath,instrrev(DBPath,"/"))&Set fso = CreateObject("Scripting.FileSystemObject")&If fso.FileExists(dbPath) Then&Set Engine = CreateObject("JRO.JetEngine")&If boolIs97 = "True" Then&pactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _&"Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password='XXXXXXXX';Data Source=" & strDBPath & "temp." _&& "Jet OLEDB:Engine Type=" & JET_3X&Else&pactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password='XXXXXXXX';Data Source=" & dbpath, _&"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"&End If&fso.CopyFile strDBPath & "temp.mdb",dbpath&fso.DeleteFile(strDBPath & "temp.mdb")&Set fso = nothing&Set Engine = nothing&CompactDB = "你的数据库, " & dbpath & ", 已经压缩成功!" & vbCrLf&Else&CompactDB = "数据库名称或路径不正确. 请重试!" & vbCrLf&End If&End Function&%&&asp编程有用的例子(一)&1.如何用Asp判断你的网站的虚拟物理路径&答:使用Mappath方法&& p align="center" && font size="4" face="Arial" && b &&The Physical path to this virtual website is:&& /b && /font &&& font color="#FF0000" size="6" face="Arial" &&& %= Server.MapPath("/")% &&& /font && /p &&2.我如何知道使用者所用的浏览器?&答:使用the Request object方法&strBrowser=Request.ServerVariables("HTTP_USER_AGENT")&If Instr(strBrowser,"MSIE") & & 0 Then&  Response.redirect("ForMSIEOnly.htm")&Else&  Response.redirect("ForAll.htm")&End If&3.如何计算每天的平均反复访问人数&答:解决方法&& % startdate=DateDiff("d",Now,"01/01/1990")&if strdate& 0 then startdate=startdate*-1&avgvpd=Int((usercnt)/startdate) % &&显示结果&& % response.write(avgvpd) % &&that is it.this page have been viewed since November 10,1998&4.如何显示随机图象&& % dim p,ppic,dpic&ppic=12&randomize&p=Int((ppic*rnd)+1)&dpic="graphix/randompics/"&p&".gif"&% &&显示&& img src="../../& %=dpic% &" &&5.如何回到先前的页面&答:& a href=../../"& %=request.serverVariables("Http_REFERER")% &" &preivous page& /a &&或用图片如:& img src="../../arrowback.gif" alt="& %=request.serverVariables("HTTP_REFERER")% &" &&6.如何确定对方的IP地址&答:& %=Request.serverVariables("REMOTE_ADDR)% &&7.如何链结到一副图片上&答:& % @Languages=vbs cript % &&& % response.expires=0&strimagename="graphix/errors/erroriamge.gif"&response.redirect(strimagename)&% &&8.强迫输入密码对话框&答:把这句话放载页面的开头&& % response.status="401 not Authorized"&response.end&% &&9.如何传递变量从一页到另一页&答:用 HIDDEN 类型来传递变量&& % form method="post" action="mynextpage.asp" &&& % for each item in request.form % &&& input namee="& %=item% &" type="HIDDEN"&value="& %=server.HTMLEncode(Request.form(item)) % &" &&& % next % &&& /form &&10.为何我在 asp 程序内使用 msgbox,程序出错说没有权限&答: 由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止 这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:&& % yourVar="测试对话框"% &&& % s cript language='javas cript' &&alert("& %=yourvar% &")&& /s cript &&11.有没有办法保护自己的源代码,不给人看到&答: 可以去下载一个微软的Windows s cript Encoder,它可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有s cript engine 5(装一个ie5就有了)才能执行。&12.怎样才能将 query string 从一个 asp 文件传送到另一个?&答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))&13.global.asa文件总是不起作用?&答: 只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?&14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?&答: Internet Sevices Manager - & 选择default web site - &右鼠键- &菜单属性-&主目录- & 应用程序设置(Application Setting)- & 点击按钮 "配置"- & app mapping - &点击按钮"Add" - & executable browse选择 /WINNT/SYSTEM32/INETSRV/ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。&15.如何注册组件&答:有两种方法。&第 一种方法:手工注册 DLL 这种方法从IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:regsvr32 component_name.dll 例如 c:/temp/regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。当使用这种方法注册完毕组件后,该组件 必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况 下,要取消注册这个dll,使用:regsvr32 /u aspobject.dll example c:/temp/regsvr32 /u aneiodbc.dll&第二种方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下:&1) 打开IIS管理控制台。&2) 展开transaction server,右键单击"pkgs installed"然后选择"new package"。&3) 单击"create an empty package"。&4) 给该包命名。&5) 指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator 登陆的话)。&6) 现在使用右键单击你刚建立的那个包下面展开后的"components"。选择 "new then component"。&7) 选择 "install new component" 。&8) 找到你的.dll文件然后选择next到完成。&要删除这个对象,只要选择它的图标,然后选择delete。&附注:特别要注意第二种方法,它是用来调试自己编写组件的最好方法,而不必每次都需要重新启动机器了。&16. ASP与Access数据库连接:&&%@ language=VBs cript%&&&%&dim conn,mdbfile&mdbfile=server.mappath("数据库名称.mdb")&set conn=server.createobject("adodb.connection")&conn.open "driver={microsoft access driver (*.mdb)};uid=pwd=数据库密码;dbq="&mdbfile&%&&接着来,希望大家也参与近来&-------------------------------&asp编程有用的例子(二)&17. ASP与SQL数据库连接:&&%@ language=VBs cript%&&&%&dim conn&set conn=server.createobject("ADODB.connection")&con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=PWD=数据库密码;DATABASE=数据库名称&%&&建立记录集对象:&set rs=server.createobject("adodb.recordset")&rs.open SQL语句,conn,3,2&18. SQL常用命令使用方法:&(1) 数据记录筛选:&sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"&sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"&sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"&sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"&sql="select * from 数据表 where 字段名 between 值1 and 值2"&(2) 更新数据记录:&sql="update 数据表 set 字段名=字段值 where 条件表达式"&sql="update 数据表 set 字段1=值1,字段2=值2 && 字段n=值n where 条件表达式"&(3) 删除数据记录:&sql="delete from 数据表 where 条件表达式"&sql="delete from 数据表" (将数据表所有记录删除)&(4) 添加数据记录:&sql="insert into 数据表 (字段1,字段2,字段3 &) valuess (值1,值2,值3 &)"&sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)&(5) 数据记录统计函数:&AVG(字段名) 得出一个表格栏平均值&COUNT(*字段名) 对数据行数的统计或对某一栏有值的数据行数统计&MAX(字段名) 取得一个表格栏最大的值&MIN(字段名) 取得一个表格栏最小的值&SUM(字段名) 把数据栏的值相加&引用以上函数的方法:&sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"&set rs=conn.excute(sql)&用 rs("别名") 获取统的计值,其它函数运用同上。&(5) 数据表的建立和删除:&CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) && )&例:CREATE TABLE tab01(name varchar(50),datetime default now())&DROP TABLE 数据表名称 (永久性删除一个数据表)&19. 记录集对象的方法:&rs.movenext 将记录指针从当前的位置向下移一行&rs.moveprevious 将记录指针从当前的位置向上移一行&rs.movefirst 将记录指针移到数据表第一行&rs.movelast 将记录指针移到数据表最后一行&rs.absoluteposition=N 将记录指针移到数据表第N行&rs.absolutepage=N 将记录指针移到第N页的第一行&rs.pagesize=N 设置每页为N条记录&rs.pagecount 根据 pagesize 的设置返回总页数&rs.recordcount 返回记录总数&rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否&rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否&rs.delete 删除当前记录,但记录指针不会向下移动&rs.addnew 添加记录到数据表末端&rs.update 更新数据表记录&---------------------------------------&20 Recordset对象方法&Open方法&recordset.Open Source,ActiveConnection,CursorType,LockType,Options&Source&Recordset 对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是 一个Stored Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。&ActiveConnection&Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。&CursorType&Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:&--------------------------------------------------------------&常数 常数值 说明&-------------------------------------------------------------&adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。&adOpenKeyset 1 启动一个Keyset类型的游标。&adOpenDynamic 2 启动一个Dynamic类型的游标。&adOpenStatic 3 启动一个Static类型的游标。&-------------------------------------------------------------&以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。&-------------------------------------------------------------&Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic&-------------------------------------------------------------&AbsolutePage 不支持 不支持 可读写 可读写&AbsolutePosition 不支持 不支持 可读写 可读写&ActiveConnection 可读写 可读写 可读写 可读写&BOF 只读 只读 只读 只读&Bookmark 不支持 不支持 可读写 可读写&CacheSize 可读写 可读写 可读写 可读写&CursorLocation 可读写 可读写 可读写 可读写&CursorType 可读写 可读写 可读写 可读写&EditMode 只读 只读 只读 只读&EOF 只读 只读 只读 只读&Filter 可读写 可读写 可读写 可读写&LockType 可读写 可读写 可读写 可读写&MarshalOptions 可读写 可读写 可读写 可读写&MaxRecords 可读写 可读写 可读写 可读写&PageCount 不支持 不支持 只读 只读&PageSize 可读写 可读写 可读写 可读写&RecordCount 不支持 不支持 只读 只读&Source 可读写 可读写 可读写 可读写&State 只读 只读 只读 只读&Status 只读 只读 只读 只读&AddNew 支持 支持 支持 支持&CancelBatch 支持 支持 支持 支持&CancelUpdate 支持 支持 支持 支持&Clone 不支持 不支持&Close 支持 支持 支持 支持&Delete 支持 支持 支持 支持&GetRows 支持 支持 支持 支持&Move 不支持 支持 支持 支持&MoveFirst 支持 支持 支持 支持&MoveLast 不支持 支持 支持 支持&MoveNext 支持 支持 支持 支持&MovePrevious 不支持 支持 支持 支持&NextRecordset 支持 支持 支持 支持&Open 支持 支持 支持 支持&Requery 支持 支持 支持 支持&Resync 不支持 不支持 支持 支持&Supports 支持 支持 支持 支持&Update 支持 支持 支持 支持&UpdateBatch 支持 支持 支持 支持&--------------------------------------------------------------&其中NextRecordset方法并不适用于Microsoft Access数据库。&LockType&Recordset 对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设 值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及 adLockBatchOptimistic等,分述如下:&-------------------------------------------------------------&常数 常数值 说明&--------------------------------------------------------------&adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法&adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。&adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。&adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、&删、改的操作。&将你的网站设置为客户的信任站点--WSH方案&ar SiteName="Acmnet"&SetTrustSite(SiteName);&WScript.Echo("You have accept 'http://acmnet/' as your Trusted Site");&function SetTrustSite(StrSiteName)&{&var WshShell=WScript.CreateObject("WScript.Shell");&WshShell.RegWrite("HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Domains//"+StrSiteName+"//http", 2 ,"REG_DWORD");&TrustedSite_Value=WshShell.RegRead("HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Internet Settings//ZoneMap//Domains//"+StrSiteName+"//http");&delete WshS&}&如何在服务器端调用winzip命令行对上传的多个文件打包压缩&-------------------------------------------&如何在服务器端调用winzip命令行对上传的多个文件打包压缩?&要解决这个问题,首先要了解一下Windows Scripting Host,简称为WSH!下面引用一下微软给的解释:&************************************************************************&* WSH是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境, *&* 在这个环境中,预定义了一些对象,同时也可以使用COM里的其他对象。 *&* 他使用一种脚本引擎来对脚本解释执行,微软自己支持VBSCRIPT和JSCRIPT, *&* 第三方也可以开发自己的脚本引擎。 *&************************************************************************&具体点,就是你先编好一些脚本文件(微软自带例子若干,后缀.vbs或 .js),&然后用一个程序对他解释执行,这个程序就叫Windows Scripting Host,程序&的名字是Wscript.exe(或者命令行的Cscript.exe),你可以查看一下你的机器&里有没有这两个文件,就知道有没有WSH了。(win2000是在winnt/system32/下)&这非常像批处理文件,只不过文件里不是命令行,而是脚本语言写的脚本。&再来简单介绍一下WSH自带的几个内置对象包括:&1.由 Wscript.exe 提供的对象&Wscript 作为 Wscript 公开给脚本引擎。&WshArguments 未公开;通过 Wscript.Arguments 属性访问。 入&2.由 WSHom.Ocx 提供的对象。&WshShell 自动对象。ProgID 是 Wscript.WshShell。&(注:这个就是我们要用到的,可以执行dos命令)&WshNetwork 自动对象。ProgID 是 Wscript.WshNetwork。&WshShortcut 未公开;通过 WshShell.CreateShortcut 方法访问。&WshUrlShortcut 未公开;通过 WshShell.CreateShortcut 方法访问。&WshCollection 未公开;通过 WshNetwork.EnumNetworkDrives 或 WshNetwork.EnumPrinterConnection 方法访问。&WshEnvironment 未公开;通过 WshShell.Environment 属性访问。&WshSpecialFolders 未公开;通过 WshShell.Folder 属性访问。&他们主要可以完成环境变量的获取,网络登陆,驱动器映射,快截方式创建,&程序加载,特殊文件夹(如系统文件夹)信息获取等功能。&如果你的系统里支持ADO等COM部件,你同样可以使用,&下面这个例子演示打开写字板查看文本文件,同时创建一个文本文件并写入一&段话,你可以把他拷贝到写字板中,然后以.vbs为后缀存盘,之后双击他,&'test.vbs&'*********************&'下面用SHELL对象启动程序&'*********************&Set WshShell = Wscript.CreateObject("Wscript.Shell")&WshShell.Run ("notepad " & Wscript.ScriptFullName)&'***********************************************&'用COM对象Scripting.FileSystemObject操作文本文件&'***********************************************&Set fs = Wscript.CreateObject("Scripting.FileSystemObject")&Set a = fs.CreateTextFile("c:/testfile.txt", True)&a.WriteLine("这是一个测试。")&a.Close&也可以在asp等web编程语言中应用&&script language="VBScript.Encode" runat=server&&'上面用SHELL对象启动程序&Set WshShell = server.CreateObject("Wscript.Shell")&IsSuccess = WshShell.Run ("D:/winnt/system32/cmd.exe" ,1, true)&if IsSuccess = 0 Then&Response.write " 命令成功执行!"&else&Response.write " 命令执行失败!权限不够或者该程序无法在DOS状态下运行"&end if&&/script&&注:&1.其中runat=server必须要有&2.Set WshShell = Wscript.CreateObject("Wscript.Shell")&要改为Set WshShell = server.CreateObject("Wscript.Shell"),&3.参数1代表SW_SHOWNORMAL, 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。&4.TRUE代表返回执行的错误,False或者为指定代表脚本继续执行而不等待进程结束。&5.调用WSH的内置对象了,可以象调用函数和过程一样。&如call WshShell.Run ("D:/winnt/system32/cmd.exe" ,1, true)&如果你对WSH感兴趣,想了解更多的话,请察看&/library/default.asp?url=/library/en-us/script56/html/wsconwshbasics.asp&http://www./club/bbs/showEssence.asp?id=11136&现在我们言归正传来看看如何对文件进行压缩和解压!&大家都知道winzip对文件解压和压缩都易如反掌,但是如何通过程序和命令行对其调用呢?&当然winzip的作者已经开发出&WinZip Command Line Support Add-On Version 1.0&大家去可以去/wzcline.htm 下载wzcline.exe!&前提是本机须安装winzip8.0或更高版本的支持,如果你不是winzip8.0,去&/download.htm 下载!&下载后,直接安装就可以!&就会在winzip的目录中产生winzip命令行帮助文件和程序WZZIP.exe,WZUNZIP.EXE。&你可以开始运行里调用:&如:"c:/program files/winzip/wzzip" myfile.zip&也可以拷贝这里两个文件到任意目录下,直接在dos窗口下运行&如:wzzip.exe myfile.zip&你可以在系统的环境变量里加入set path=c:/c:/program files/&就可以在任何地方不用加入路经调用了!&现在来简单的了解一下帮助中两个命令的基本用法&压缩文件用 WZZIP.exe :&通用格式:wzzip [options] zipfile [@listfile] [files...]&[options]包括:&-a 默认的操作,压缩文件&-a+ 压缩文件,并删除要压缩的文件&-b[drivepath] 是在另外的驱动器上创建临时压缩文件&-d 删除zip文件中指定的目标文件&-e&xnfs0& 是设置压缩比率,x最大,0最小&-f 替换zip文件中存在的文件&-h-? 察看帮助&-v 创建一个压缩文件的列表信息&-@list 先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名压缩&...............(其他具体看帮助文件)&[@listfile] 是压缩文件的列表信息纪录&[files...] 则是要压缩的多个文件,用空格隔开,也可以用通配符&例:&压缩当前目录的所有文件&wzzip test.zip *.*&压缩类型为txt的所有文件&wzzip test.zip *.txt&压缩两个文件&wzzip test.zip abc.txt def.txt&压缩类型为txt的所有文件除了abc.txt&wzzip -xABC.TXT test.zip *.txt&压缩D:/docs下的所有类型为txt的文件及子目录&wzzip -rp test.zip d:/docs/*.txt&把zipit.1st里的文件更新到test.zip&wzzip -u test.zip @Zipit.lst&列出一个压缩文件的列表内容&wzzip -v test.zip&解压文件用WZUNZIP.exe :&通过格式:wzunzip [options] zipfile [@listfile] [path] [files...]&[options]包括:&-c[m] 解压是显示文件列表在dos屏幕中&-d 重建zip文件中的目录结构&-f 只解压在zip文件里同目前文件夹存在的同名的文件,如果没有则不解压&-jhrs 忽视zip文件里的文件的隐藏、只读、系统属性&-Jhrs 只解压带有隐藏、只读、系统属性的文件&-n 只解压叫新的文件,如果要解压的文件比已存在的新则替换。&-o 不用通过yes来确定是否要替换文件&-v 创建一个压缩文件的列表信息&-@list 先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名解压&...............(其他具体看帮助文件)&例如:&创建所有文件到当前目录下&wzunzip test.zip&从test.zip中创建abc.txt到当前目录下&wzunzip test.zip abc.txt&创建在test.zip中的目录结构及文件到当前目录下&wzunzip -d test.zip&创建在test.zip中的目录结构及文件到c:/docs下&wzunzip -d test.zip c:/docs从test.zip中创建包含在files.ist中的文件名的文件&wzunzip test.zip @files.lst&显示test.zip的文件列表内容&wzunzip -v test.zip&显示压缩文件中所有类型为txt的文件列表内容&wzunzip -v test.zip *.txt&有了以上的准备,那么我们现在来编写VBS来执行文件解压和压缩就易如反掌了:&'test.vbs&'*********************&'上面用SHELL对象启动程序&'*********************&Set WshShell = Wscript.CreateObject("Wscript.Shell")&WshShell.Run ("c:/wzzip.exe c:/test.zip c:/a.txt c:/b.txt")&'test.asp&'*********************&'上面用SHELL对象启动程序&'*********************&&script language="VBScript.Encode" runat=server&&'上面用SHELL对象启动程序&Set WshShell = server.CreateObject("Wscript.Shell")&IsSuccess = WshShell.Run (" c:/wzzip.exe c:/test.zip c:/a.txt c:/b.txt" ,1, true)&if IsSuccess = 0 Then&Response.write " 命令成功执行!"&else&Response.write " 命令执行失败!权限不够或者该程序无法在DOS状态下运行"&end if&&/script&&利用ASP远程注册DLL的方法&--------------------------&&% Response.Buffer = True %&&&% Server.ScriptTimeout = 500&Dim frmFolderPath, frmFilePath&frmFolderPath = Request.Form("frmFolderPath")&frmFilePath = Request.Form("frmDllPath")&frmMethod = Request.Form("frmMethod")&btnREG = Request.Form("btnREG")&%&&&HTML&&&HEAD&&&TITLE&Regsvr32.asp&/TITLE&&&STYLE TYPE="TEXT/CSS"&&.Legend {FONT-FAMILY: FONT-SIZE: 14 FONT-WEIGHT: COLOR: blue}&.FS {FONT-FAMILY: FONT-SIZE: 12 BORDER-WIDTH: 4 BORDER-COLOR:&MARGIN-LEFT:2 MARGIN-RIGHT:2px}&TD {MARGIN-LEFT:6 MARGIN-RIGHT:6 PADDING-LEFT:12 PADDING-RIGHT:12px}&&/STYLE&&&/HEAD&&&BODY&&&FORM NAME="regForm" METHOD="POST"&&&TABLE BORDER=0 CELLSPACING=6 CELLPADDING=6 MARGINWIDTH=6&&&TR&&&TD VALIGN=TOP&&&FIELDSET ID=FS1 NAME=FS1 class="FS"&&&LEGEND class="Legend"&Regsvr Functions&/LEGEND&&Insert Path to DLL Directory&BR&&&INPUT TYPE=TEXT NAME="frmFolderPath" VALUE="&%=frmFolderPath%&"&&BR&&&INPUT TYPE=SUBMIT NAME=btnFileList VALUE="Build File List"&&BR&&&%&IF Request.Form("btnFileList") && "" OR btnREG && "" Then&Set RegisterFiles = New clsRegister&RegisterFiles.EchoB("&B&Select File&/B&")&Call RegisterFiles.init(frmFolderPath)&RegisterFiles.EchoB("&BR&&INPUT TYPE=SUBMIT NAME=btnREG VALUE=" & Chr(34) _&& "REG/UNREG" & Chr(34) & "&")&IF Request.Form("btnREG") && "" Then&Call RegisterFiles.Register(frmFilePath, frmMethod)&End IF&Set RegisterFiles = Nothing&End IF&%&&&/FIELDSET&&&/TD&&&/TR&&&/TABLE&&&/FORM&&&/BODY&&&/HTML&&&%&Class clsRegister&Private m_oFS&Public Property Let oFS(objOFS)&m_oFS = objOFS&End Property&Public Property Get oFS()&Set oFS = Server.CreateObject("Scripting.FileSystemObject")&End Property&Sub init(strRoot) 'Root to Search (c:, d:, e:)&Dim oDrive, oRootDir&IF oFS.FolderExists(strRoot) Then&IF Len(strRoot) & 3 Then 'Must Be a Drive&Set oDrive = oFS.GetDrive(strRoot)&Set oRootDir = oDrive.RootFolder&Else&Set oRootDir = oFS.GetFolder(strRoot)&End IF&Else&EchoB("&B&Folder ( " & strRoot & " ) Not Found.")&Exit Sub&End IF&setRoot = oRootDir&Echo("&SELECT NAME=" & Chr(34) & "frmDllPath" & Chr(34) & "&")&Call getAllDlls(oRootDir)&EchoB("&/SELECT&")&BuildOptions&End Sub&Sub getAllDlls(oParentFolder)&Dim oSubFolders, oFile, oFiles&Set oSubFolders = oParentFolder.SubFolders&Set opFiles = oParentFolder.Files&For Each oFile in opFiles&IF Right(lCase(oFile.Name), 4) = ".dll" OR Right(lCase(oFile.Name), 4) = ".ocx" Then&Echo("&OPTION VALUE=" & Chr(34) & oFile.Path & Chr(34) & "&" _&& oFile.Name & "&/Option&")&End IF&Next&On Error Resume Next&For Each oFolder In oSubFolders 'Iterate All Folders in Drive&Set oFiles = oFolder.Files&For Each oFile in oFiles&IF Right(lCase(oFile.Name), 4) = ".dll" OR Right(lCase(oFile.Name), 4) = ".ocx" Then&Echo("&OPTION VALUE=" & Chr(34) & oFile.Path & Chr(34) & "&" _&& oFile.Name & "&/Option&")&End IF&Next&Call getAllDlls(oFolder)&Next&On Error GoTo 0&End Sub&Sub Register(strFilePath, regMethod)&Dim theFile, strFile, oShell, exitcode&Set theFile = oFS.GetFile(strFilePath)&strFile = theFile.Path&Set oShell = CreateObject ("WScript.Shell")&IF regMethod = "REG" Then 'Register&oShell.Run "c:/WINNT/system32/regsvr32.exe /s " & strFile, 0, False&exitcode = oShell.Run("c:/WINNT/system32/regsvr32.exe /s " & strFile, 0, False)&EchoB("regsvr32.exe exitcode = " & exitcode)&Else 'unRegister&oShell.Run "c:/WINNT/system32/regsvr32.exe /u/s " & strFile, 0, False&exitcode = oShell.Run("c:/WINNT/system32/regsvr32.exe /u/s " & strFile, 0, False)&EchoB("regsvr32.exe exitcode = " & exitcode)&End IF&Cleanup oShell&End Sub&Sub BuildOptions&EchoB("Register: &INPUT TYPE=RADIO NAME=frmMethod VALUE=REG CHECKED&")&EchoB("unRegister: &INPUT TYPE=RADIO NAME=frmMethod VALUE=UNREG&")&End Sub&Function Echo(str)&Echo = Response.Write(str & vbCrLf)&End Function&Function EchoB(str)&EchoB = Response.Write(str & "&BR&" & vbCrLf)&End Function&Sub Cleanup(obj)&If isObject(obj) Then&Set obj = Nothing&End IF&End Sub&Sub Class_Terminate()&Cleanup oFS&End Sub&End Class&%&&列出你的所有Session变:&&%@ Language=VBScript %&&&% Option Explicit %&&&%&Response.Write "在你的程序中一共使用了 " & Session.Contents.Count & _&" 个Session变量&P&"&Dim strName, iLoop&For Each strName in Session.Contents&'判断一个Session变量是否为数组&If IsArray(Session(strName)) then&'如果是数组,那么罗列出所有的数组元素内容&For iLoop = LBound(Session(strName)) to UBound(Session(strName))&Response.Write strName & "(" & iLoop & ") - " & _&Session(strName)(iLoop) & "&BR&"&Next&Else&'如果不是数组,那么直接显示&Response.Write strName & " - " & Session.Contents(strName) & "&BR&"&End If&Next&%&&利用CDONTS发送邮件的ASP函数&&%&'Last Updated By Recon On 05/14/2001&'On Error Resume Next&'利用CDONTS组件在Win2k上发送邮件&'发送普通邮件&SendMail "", "", "Normal Mail!", "Please check the attatchment!", 2, 0, "C:/Love.txt"&'发送HTML邮件&Dim m_fso, m_tf&Dim m_strHTML&Set m_fso = Server.CreateObject("SCRIPTING.FILESYSTEMOBJECT")&Set m_tf = m_fso.OpenTextFile("C:/Mail.htm", 1)&m_strHTML = m_tf.ReadAll&'Write m_strHTML&Set m_tf = Nothing&Set m_fso = Nothing&SendMail "", "", "HTML Mail!", m_strHTML, 2, 1, Null&'参数说明&'strFrom : 发件人Email&'strTo : 收件人Email&'strSubject : 信件主题&'strBody : 信件正文&'lngImportance : 信件重要性&' : 0 - 低重要性&' : 0 - 中等重要性(默认)&' : 0 - 高重要性&'lngAType : 信件格式&' : 为1时将邮件正文作为HTML(此时可以发送HTML邮件)&'strAttach : 附件的路径&Sub SendMail(strFrom, strTo, strSubject, strBody, lngImportance, lngAType, strAttach)&Dim objMail&Set objMail = Server.CreateObject("CDONTS.NEWMAIL")&With objMail&.From = strFrom&.To = strTo&.Subject = strSubject&.Body = strBody&.Importance = lngImportance&If lngAType = 1 Then&.BodyFormat = 0&.MailFormat = 0&End If&If IsEmpty(strAttach) = False And IsNull(strAttach) = False Then&.AttachFile strAttach&End If&.Send&End With&Set objMail = Nothing&End Sub&%&&处理驱动器和文件夹&使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。&获取有关驱动器的信息&可以用 Drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:&驱动器的总容量,以字节为单位(TotalSize 属性)&驱动器的可用空间是多少,以字节为单位(AvailableSpace 或 FreeSpace 属性)&哪个号被赋给了该驱动器(DriveLetter 属性)&驱动器的类型是什么,如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘(DriveType 属性)&驱动器的序列号(SerialNumber 属性)&驱动器使用的文件系统类型,如 FAT、FAT32、NTFS 等等(FileSystem 属性)&驱动器是否可以使用(IsReady 属性)&共享和/或卷的名字(ShareName 和 VolumeName 属性)&驱动器的路径或根文件夹(Path 和 RootFolder 属性)&请考察示例代码,来领会如何在 FileSystemObject 中使用这些属性。&Drive 对象用法示例&使用 Drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。&下面示例示范了如何在 VBScript 中使用 Drive 对象:&Sub ShowDriveInfo(drvPath)&Dim fso, drv, s&Set fso = CreateObject("Scripting.FileSystemObject")&Set drv = fso.GetDrive(fso.GetDriveName(drvPath))&s = "Drive " & UCase(drvPath) & " - "&s = s & drv.VolumeName & "&br/&"&s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)&s = s & " Kb" & "&br/&"&s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)&s = s & " Kb" & "&br/&"&Response.Write s&End Sub&下面的代码说明在 JScript 中实现同样的功能:&function ShowDriveInfo1(drvPath)&{&var fso, drv, s ="";&fso = new ActiveXObject("Scripting.FileSystemObject");&drv = fso.GetDrive(fso.GetDriveName(drvPath));&s += "Drive " + drvPath.toUpperCase()+ " - ";&s += drv.VolumeName + "&br/&";&s += "Total Space: " + drv.TotalSize / 1024;&s += " Kb" + "&br/&";&s += "Free Space: " + drv.FreeSpace / 1024;&s += " Kb" + "&br/&";&Response.Write(s);&}&处理文件夹&在下面的表中,描述了普通的文件夹任务和执行它们的方法。&任务 方法&创建文件夹。 FileSystemObject.CreateFolder&删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder&移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder&复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder&检索文件夹的名字。 Folder.Name&如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists&获得现有 Folder 对象的实例。 FileSystemObject.GetFolder&找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName&找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder&请考察示例代码,来看看在 FileSystemObject 中使用了多少种这些的方法和属性。&下面的示例示范了如何在 VBScript 中使用 Folder 和 FileSystemObject 对象,来操作文件夹和获得有关它们的信息:&Sub ShowFolderInfo()&Dim fso, fldr, s&' 获得 FileSystemObject 的实例。&Set fso = CreateObject("Scripting.FileSystemObject")&' 获得 Drive 对象。&Set fldr = fso.GetFolder("c:")&' 打印父文件夹名字。&Response.Write "Parent folder name is: " & fldr & "&br/&"&' 打印驱动器名字。&Response.Write "Contained on drive " & fldr.Drive & "&br/&"&' 打印根文件名。&If fldr.IsRootFolder = True Then&Response.Write "This is the root folder." & ""&br/&"&br/&"&Else&Response.Write "This folder isn't a root folder." & "&br/&&br/&"&End If&' 用 FileSystemObject 对象创建新的文件夹。&fso.CreateFolder ("C:/Bogus")&Response.Write "Created folder C:/Bogus" & "&br/&"&' 打印文件夹的基本名字。&Response.Write "Basename = " & fso.GetBaseName("c:/bogus") & "&br/&"&' 删除新创建的文件夹。&fso.DeleteFolder ("C:/Bogus")&Response.Write "Deleted folder C:/Bogus" & "&br/&"&End Sub&下面的示例显示如何在 JScript 中使用 Folder 和 FileSystemObject 对象:&function ShowFolderInfo()&{&var fso, fldr, s = "";&// 获得 FileSystemObject 的实例。&fso = new ActiveXObject("Scripting.FileSystemObject");&// 获得 Drive 对象。&fldr = fso.GetFolder("c:");&// 打印父文件夹名。&Response.Write("Parent folder name is: " + fldr + "&br/&");&// 打印驱动器名字。&Response.Write("Contained on drive " + fldr.Drive + "&br/&");&// 打印根文件名。&if (fldr.IsRootFolder)&Response.Write("This is the root folder.");&else&Response.Write("This folder isn't a root folder.");&Response.Write("&br/&&br/&");&// 用 FileSystemObject 对象创建新的文件夹。&fso.CreateFolder ("C://Bogus");&Response.Write("Created folder C://Bogus" + "&br/&");&// 打印文件夹的基本名。&Response.Write("Basename = " + fso.GetBaseName("c://bogus") + "&br/&");&// 删除新创建的文件夹。&fso.DeleteFolder ("C://Bogus");&Response.Write("Deleted folder C://Bogus" + "&br/&");&}&ASP分页函数&Function ExportPageInfo(ByRef rs,curpage,i,LinkFile)&Dim retval, j, pageNumber, BasePage&retval = "第" & curpage & "页/总" & rs.pagecount & "页 "&retval = retval & "本页" & i & "条/总" & rs.recordcount & "条 "&If curpage = 1 Then&retval = retval & "首页 前页 "&Else&retval = retval & "&a href='" & LinkFile & "page=1'&首页&/a& &a href='" & LinkFile & "page=" & cstr(curpage - 1) & "'&前页&/a& "&End If&If curpage = rs.pagecount Then&retval = retval & "后页 末页"&Else&retval = retval & "&a href='" & LinkFile & "page=" & cstr(curpage + 1) & "'&后页&/a& &a href='" & LinkFile & "page=" & cstr(rs.pagecount) & "'&末页&/a&"&End if&retval = retval & "&br/&"&BasePage = (curpage / 10) * 10&If BasePage & 0 Then retval = retval & " &a href='" & LinkFile & "page=" & (BasePage - 9) & "'&&&&/a&"&For j = 1 to 10&pageNumber = BasePage + j&If PageNumber & rs.pagecount Then Exit For&If pageNumber = Cint(curpage) Then&retval = retval & " &font color='#FF0000'&" & pageNumber & "&/font&"&Else&retval = retval & " &a href='" & LinkFile & "page=" & pageNumber & "'&" & pageNumber & "&/a&"&End If&Next&If rs.pagecount & BasePage Then retval = retval & " &a href='" & LinkFile & "page=" & (BasePage + 11) & "'&&&&/a&"&ExportPageInfo = retval&End Function&应用&&%&adoPageRS.open "SELECT * FROM news ORDER BY addtime DESC", conn, 1, 1&if err.number && 0 then&response.write "数据库操作失败:"&err.description&else&if adoPageRS.eof and adoPageRS.bof then&response.write "没有记录"&else&%&&&div align="center"&&&center&&&table width="100%" border="0" cellspacing="1" cellpadding="2"&&&tr class="big"&&&td width="60%"&新 闻 标 题&/td&&&td width="25%" align="center"&日期&/td&&&td width="15%" align="center"&操  作&/td&&&/tr&&&%&adoPageRS.pagesize = 10&adoPageRS.absolutepage = curpage&for i = 0 to 9&%&&&tr&&&td&&%= adoPageRS("title") %&&/td&&&td align="center"&&&% = adoPageRS("addtime") %&&&/td&&&td align="center"&&a href=../../'newsman.asp?action=edit&id=&%= adoPageRS("id")%&'&编辑&/a&&&a href='javascript:confirmDel(&%= adoPageRS("id") %&)'&删除&/a&&/td&&&/tr&&&%&adoPageRS.movenext&if adoPageRS.eof then&i = i + 1&exit for&End If&next&%&&&tr align="center"&&&td colspan="3"&&&% = ExportPageInfo(adoPageRS, curpage, i, "Newsman.asp?") %&&&/td&&&/tr&&&/table&&&/center&&&/div&&从ASP调用SQL中的图像:&如 何处理ASP中的图象 在用ASP编程中,很多时侯要用到图象。对于单纯从数据库中处理一个图象,方法大家讲了很多,也不难, 可以看下面的代码: 这里假设你有个数据库名字叫:PUBS,在数据库中有一个叫:PUB_INFO的表,在表中有一个LOGO 的BLOB列。我们查出PUB_ID=0736的人的相片。 FILE: SHOWIMG.ASP *************************************** & %@ LANGUAGE="VBSCRIPT" %& & % & Clear out the existing HTTP header information Response.Expires = 0 Response.Buffer = TRUE Response.Clear & Change the HTTP header to reflect that an image is being passed. Response.ContentType = "image/gif" Set cn = Server.CreateObject("ADODB.Connection") & The following open line assumes you have set up a System DataSource & by the name of myDSN. cn.Open "DSN=myDSN;UID=PWD=;DATABASE=pubs" Set rs = cn.Execute("SELECT logo FROM pub_info WHERE pub_id=&0736&") Response.BinaryWrite rs("logo") Response.End %& ***************************************** 执行这个ASP文件就可以看到你存在数据库中的图象了。 但如果是同时处理文字和图象就会有些困难了:-( 比如:一个企业的人员管理,后台数据库可以用SYBASE或SQL SERVER等。(我在这用SQL SERVER)当 你在企业内部需要用到BROWSE/SERVER方式,即用浏览器查看员工的个人信息时,就即要处理文字信息同时 还要用到关于图象的技巧。 问题在于你显示文字信息时HTML的HEAD中的CONTENT=&TEXT/HTML&,而显示图象则必须是 CONTENT=&IMAGE/GIF&或者是CONTENT=&IMAGE/JPEG&。因此你是无法只用一个ASP文件就把文字信息和 图象都处理完的,解决的办法是:用一个单独的ASP文件处理图象,然后在处理文字信息的ASP文件中调用 这个ASP文件。 在这给大家介绍一个我的解决方法,希望大家一起讨论: 环境:WINNT4.0 SQL SERVER IIS3.0 数据库名:RSDA 表名:RSDA_TABLE 目的:从RSDA_TABLE中查出ID=00001的人员的信息,包括姓名,年龄和照片 第一步:创建一个查询表单RSDA.HTM: ********************************** & html& & head& & /head& & body& & form method="POST" action="SEARCH.ASP"& & p&请输入编号:& input type="text" name="T1" size="20"& & input type="submit" value="提交" name="B1"& & /form& & /body& *********************************** 第二步:建立SEARCH.ASP *********************************** & html& & head& & meta http-equiv="content-type" content="text/charset=gb2312"& & title&查询结果& /title& & /head& & body bgColor=Azure& & % session("RSDA_ID")=Request.Form("T1") &这里我用了一个SESSION变量,是为了在处理图象的ASP文件中再次调用 temp_id=session("RSDA_ID") & font size=4 color=OrangeRed& 查询结果:& /font& & %set conntemp=server.createobject("adodb.connection") conntemp.open "dsn=RSDA;uid=pwd=SA" set rstemp=conntemp.execute("select * from RSDA_TABLE where rsda=&"&temp_id&"&") % & & % &put headings on the table of field names nobody="对不起!在我们的数据库里没有您要找的资料!"%& &判断是否有这个人 & %if rstemp.eof then % & & font size="5" color=OrangeRed& & %Response.Write(nobody)% && /font& & %else% & & div align="center"& & center& & table border="1" width="73%" height="399"& & tr& & td width="21%" height="49" align="center"&& p align="center"&姓 名& /td& & td width="30%" height="49" align="center"& & font size=4 color=OrangeRed&& /font&& /td& & /td& & tr& & p align="center"&年 龄& /td& & td width="30%" height="47" align="center"& & font size=4 color=OrangeRed&& %=rstemp(0)% && /font&& /td& & /tr& & tr& & td width="49%" height="146" rowspan="3" colspan="2"& & img src="jpg.asp"&& /td& &JPG.ASP就是我们将要建立的专门处理图象的ASP文件 & /tr& & /table& & /center&& /div& rstemp.close set rstemp=nothing conntemp.close set conntemp=nothing % & & /BODY& & /HTML& *********************************** 第三步:建立处理图象的ASP文件。(JPG.ASP) *********************************** & % Response.Expires = 0 Response.Buffer = TRUE Response.Clear & Open database Set conntemp = Server.CreateObject("ADODB.Connection") conntemp.open "dsn=RSDA;uid=pwd=SA" &change http header Response.ContentType = "image/jpeg" & or "IMAGE/GIF" & Get picture TEMP_ID=session("RSDA_ID") Set Rs = conntemp.Execute("SELECT photo from RSDA_table where ID=&"&TEMP_ID&"&") Response.BinaryWrite Rs("photo") Session.Abandon Response.End % & ********************************** 这里主要就是用到了一个小技巧就是利用了一个SESSION变量来实现两次同条件查询。 大家如我上述只需少量改动,就可以实现一个页面既有文字又有图象了!&asp常常用到的一些东西,&我做东西一般下面的东西经常用(拷贝)&&%=Request.ServerVariables("remote_addr")%&&FOR each item in Request.form&tempvalue=trim(Request(item))&tempvalue=Replace(tempvalue,chr(13)&chr(10),"&br/&")&tempvalue=Replace(tempvalue,"&br/&&br/&","&br/&")&if tempvalue="" then tempvalue=0&Execute item&"="""&tempvalue&""""&'response.write item&"="&tempvalue&"&br/&"&next&'response.write request("id")&'response.end&if ="" then&response.write "&script language='JavaScript'&window.alert('')&/script&"&response.write "&script language='JavaScript'&window.history.go(-1);&/script&"&response.end&end if&&!--#include file="" --&&&!--#include virtual="" --&&sql="select max(id) from pack"&set RS=conn.execute(sql)&if isnull(RS(0)) then&id=1&else&id=RS(0)+1&end if&set rs=nothing&sql="insert into pack(id,strpackdm,strusername) values("&id&",'"&strpackdm&"','"&Session("username")&"')"&set RS=conn.execute(sql)&sql="update pack set "&Itemname&"='"&tempvalue&"' where id="&id&""&if Itemname&&"id" then&response.write sql&"&br/&"&set rs=conn.execute(sql)&if err.number&&0 then&'错误处理&response.write "数据库操作失败:" & err.description&err.clear&end if&Set rs=Nothing&Conn.close&Set conn=Nothing&do while not rs.eof and rowcount&0&rowcount=rowcount-1&rs.MoveNext&do while not rs.eof&rs.MoveNext&loop&for each item in rs2.fields&Execute item.name&"="""&trim(rs2(""&item.name&""))&""""&next&function Mycn(str)&str=lcase(str)&str=replace(str,"","")&response.write str&end function&dim conn&dim connstr&on error resume next&set conn=server.CreateObject("adodb.connection")&Connstr="driver=SQL S server="&servername&"; uid="&username&"; pwd="&password&"; database="&datebasename&";"&Connstr="DBQ="+server.mappath(mydbpath&mdbname)+";DRIVER={Microsoft Access Driver (*.mdb)};"&'response.write Connstr&'response.end&conn.Open connstr&if err&&0 then&Response.Write "无法建立到数据库的连接!"&end if&MD5不可逆加密算法的ASP实现实例(一)&此为国外转载函数,可将任意字符转换为md5 16为字符加密形式,而且为不可逆转换。&&%&Private Const BITS_TO_A_BYTE = 8&Private Const BYTES_TO_A_WORD = 4&Private Const BITS_TO_A_WORD = 32&Private m_lOnBits(30)&Private m_l2Power(30)&Private Function LShift(lValue, iShiftBits)&If iShiftBits = 0 Then&LShift = lValue&Exit Function&ElseIf iShiftBits = 31 Then&If lValue And 1 Then&LShift = &H&Else&LShift = 0&End If&Exit Function&ElseIf iShiftBits & 0 Or iShiftBits & 31 Then&Err.Raise 6&End If&If (lValue And m_l2Power(31 - iShiftBits)) Then&LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H&Else&LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))&End If&End Function&Private Function RShift(lValue, iShiftBits)&If iShiftBits = 0 Then&RShift = lValue&Exit Function&ElseIf iShiftBits = 31 Then&If lValue And &H Then&RShift = 1&Else&RShift = 0&End If&Exit Function&ElseIf iShiftBits & 0 Or iShiftBits & 31 Then&Err.Raise 6&End If&RShift = (lValue And &H7FFFFFFE) / m_l2Power(iShiftBits)&If (lValue And &H) Then&RShift = (RShift Or (&H / m_l2Power(iShiftBits - 1)))&End If&End Function&Private Function RotateLeft(lValue, iShiftBits)&RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))&End Function&Private Function AddUnsigned(lX, lY)&Dim lX4&Dim lY4&Dim lX8&Dim lY8&Dim lResult&lX8 = lX And &H&lY8 = lY And &H&lX4 = lX And &H&lY4 = lY And &H&lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)&If lX4 And lY4 Then&lResult = lResult Xor &H Xor lX8 Xor lY8&ElseIf lX4 Or lY4 Then&If lResult And &H Then&lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8&Else&lResult = lResult Xor &H Xor lX8 Xor lY8&End If&Else&lResult = lResult Xor lX8 Xor lY8&End If&AddUnsigned = lResult&End Function&Private Function md5_F(x, y, z)&md5_F = (x And y) Or ((Not x) And z)&End Function&Private Function md5_G(x, y, z)&md5_G = (x And z) Or (y And (Not z))&End Function&Private Function md5_H(x, y, z)&md5_H = (x Xor y Xor z)&End Function&Private Function md5_I(x, y, z)&md5_I = (y Xor (x Or (Not z)))&End Function&Private Sub md5_FF(a, b, c, d, x, s, ac)&a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))&a = RotateLeft(a, s)&a = AddUnsigned(a, b)&End Sub&Private Sub md5_GG(a, b, c, d, x, s, ac)&a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))&a = RotateLeft(a, s)&a = AddUnsigned(a, b)&End Sub&Private Sub md5_HH(a, b, c, d, x, s, ac)&a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))&a = RotateLeft(a, s)&a = AddUnsigned(a, b)&End Sub&Private Sub md5_II(a, b, c, d, x, s, ac)&a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))&a = RotateLeft(a, s)&a = AddUnsigned(a, b)&End Sub&Private Function ConvertToWordArray(sMessage)&Dim lMessageLength&Dim lNumberOfWords&Dim lWordArray()&Dim lBytePosition&Dim lByteCount&Dim lWordCount&Const MODULUS_BITS = 512&Const CONGRUENT_BITS = 448&lMessageLength = Len(sMessage)&lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) / BITS_TO_A_BYTE)) / (MODULUS_BITS / BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS / BITS_TO_A_WORD)&ReDim lWordArray(lNumberOfWords - 1)&lBytePosition = 0&lByteCount = 0&Do Until lByteCount &= lMessageLength&lWordCount = lByteCount / BYTES_TO_A_WORD&lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE&lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)&lByteCount = lByteCount + 1&Loop&lWordCount = lByteCount / BYTES_TO_A_WORD&lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE&lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)&lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)&lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)&ConvertToWordArray = lWordArray&End Function&Private Function WordToHex(lValue)&Dim lByte&Dim lCount&For lCount = 0 To 3&lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)&WordToHex = WordToHex & Right("0" & Hex(lByte), 2)&Next&End Function&MD5不可逆加密算法的ASP实现实例(一)&--------------------------------------&Public Function MD5(sMessage)&m_lOnBits(0) = CLng(1)&m_lOnBits(1) = CLng(3)&m_lOnBits(2) = CLng(7)&m_lOnBits(3) = CLng(15)&m_lOnBits(4) = CLng(31)&m_lOnBits(5) = CLng(63)&m_lOnBits(6) = CLng(127)&m_lOnBits(7) = CLng(255)&m_lOnBits(8) = CLng(511)&m_lOnBits(9) = CLng(1023)&m_lOnBits(10) = CLng(2047)&m_lOnBits(11) = CLng(4095)&m_lOnBits(12) = CLng(8191)&m_lOnBits(13) = CLng(16383)&m_lOnBits(14) = CLng(32767)&m_lOnBits(15) = CLng(65535)&m_lOnBits(16) = CLng(131071)&m_lOnBits(17) = CLng(262143)&m_lOnBits(18) = CLng(524287)&m_lOnBits(19) = CLng(1048575)&m_lOnBits(20) = CLng(2097151)&m_lOnBits(21) = CLng(4194303)&m_lOnBits(22) = CLng(8388607)&m_lOnBits(23) = CLng()&m_lOnBits(24) = CLng()&m_lOnBits(25) = CLng()&m_lOnBits(26) = CLng()&m_lOnBits(27) = CLng()&m_lOnBits(28) = CLng()&m_lOnBits(29) = CLng()&m_lOnBits(30) = CLng()&m_l2Power(0) = CLng(1)&m_l2Power(1) = CLng(2)&m_l2Power(2) = CLng(4)&m_l2Power(3) = CLng(8)&m_l2Power(4) = CLng(16)&m_l2Power(5) = CLng(32)&m_l2Power(6) = CLng(64)&m_l2Power(7) = CLng(128)&m_l2Power(8) = CLng(256)&m_l2Power(9) = CLng(512)&m_l2Power(10) = CLng(1024)&m_l2Power(11) = CLng(2048)&m_l2Power(12) = CLng(4096)&m_l2Power(13) = CLng(8192)&m_l2Power(14) = CLng(16384)&m_l2Power(15) = CLng(32768)&m_l2Power(16) = CLng(65536)&m_l2Power(17) = CLng(131072)&m_l2Power(18) = CLng(262144)&m_l2Power(19) = CLng(524288)&m_l2Power(20) = CLng(1048576)&m_l2Power(21) = CLng(2097152)&m_l2Power(22) = CLng(4194304)&m_l2Power(23) = CLng(8388608)&m_l2Power(24) = CLng()&m_l2Power(25) = CLng()&m_l2Power(26) = CLng()&m_l2Power(27) = CLng()&m_l2Power(28) = CLng()&m_l2Power(29) = CLng()&m_l2Power(30) = CLng()&Dim x&Dim k&Dim AA&Dim BB&Dim CC&Dim DD&Dim a&Dim b&Dim c&Dim d&Const S11 = 7&Const S12 = 12&Const S13 = 17&Const S14 = 22&Const S21 = 5&Const S22 = 9&Const S23 = 14&Const S24 = 20&Const S31 = 4&Const S32 = 11&Const S33 = 16&Const S34 = 23&Const S41 = 6&Const S42 = 10&Const S43 = 15&Const S44 = 21&x = ConvertToWordArray(sMessage)&a = &H&b = &HEFCDAB89&c = &H98BADCFE&d = &H&For k = 0 To UBound(x) Step 16&AA = a&BB = b&CC = c&DD = d&md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478&md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756&md5_FF c, d, a, b, x(k + 2), S13, &H242070DB&md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE&md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF&md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A&md5_FF c, d, a, b, x(k + 6), S13, &HA8304613&md5_FF b, c, d, a, x(k + 7), S14, &HFD469501&md5_FF a, b, c, d, x(k + 8), S11, &H&md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF&md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1&md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE&md5_FF a, b, c, d, x(k + 12), S11, &H6B901122&md5_FF d, a, b, c, x(k + 13), S12, &HFD987193&md5_FF c, d, a, b, x(k + 14), S13, &HA679438E&md5_FF b, c, d, a, x(k + 15), S14, &H49B40821&md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562&md5_GG d, a, b, c, x(k + 6), S22, &HC040B340&md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51&md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA&md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D&md5_GG d, a, b, c, x(k + 10), S22, &H2441453&md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681&md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8&md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6&md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6&md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87&md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED&md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905&md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8&md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9&md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A&md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942&md5_HH d, a, b, c, x(k + 8), S32, &H&md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122&md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C&md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44&md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9&md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60&md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70&md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6&md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA&md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085&md5_HH b, c, d, a, x(k + 6), S34, &H4881D05&md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039&md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5&md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8&md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665&md5_II a, b, c, d, x(k + 0), S41, &HF4292244&md5_II d, a, b, c, x(k + 7), S42, &H432AFF97&md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7&md5_II b, c, d, a, x(k + 5), S44, &HFC93A039&md5_II a, b, c, d, x(k + 12), S41, &H655B59C3&md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92&md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D&md5_II b, c, d, a, x(k + 1), S44, &H85845DD1&md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F&md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0&md5_II c, d, a, b, x(k + 6), S43, &HA3014314&md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1&md5_II a, b, c, d, x(k + 4), S41, &HF7537E82&md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235&md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB&md5_II b, c, d, a, x(k + 9), S44, &HEB86D391&a = AddUnsigned(a, AA)&b = AddUnsigned(b, BB)&c = AddUnsigned(c, CC)&d = AddUnsigned(d, DD)&Next&MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))&' MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D&End Function&Response.Write "123456的加密结果为[" & md5 ("123456") & "]"&%&&JS判断输入日期的正确性(有两个函数,很类似)&---------------------------&JS判断输入日期的正确性&&script language=javascript&&function strDateTime(str){&var reg = /^(/d{1,4})(-//)(/d{1,2})/2(/d{1,2})$/;&var r = str.match(reg);&if(r==null)&var d= new Date(r[1], r[3]-1,r[4]);&var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()&return newStr==str&}&alert(strDateTime(""))&alert(strDateTime(""))&&/script&&&script language=javascript&&function strDateTime(str){&var reg = /^(/d{1,4})(-//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;&var r = str.match(reg);&if(r==null)&var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);&var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()&return newStr==str&}&alert(strDateTime(" 12:34:56"))&alert(strDateTime(" 12:54:56"))&alert(strDateTime(" 12:00:00"))&&/script&&&script language="javascript"&&var s=""&alert(chkDate(s));&function chkDate(sDate){&var r=//d{4}(?:-/d{1,2}){0,2}/&//正则表达式,判断是否为yyyy-mm-dd,yyyy-mm,yyyy格式&if(sDate.match(r)==sDate){&var arr=sDate.split("-")&switch(arr.length){&//根据不同的yyyy-mm-dd,yyyy-mm格式判断年月日数字是否正确&case 3:&var tmpDate=new Date(arr[0],arr[1],arr[2]);&if(tmpDate.getMonth()==arr[1] && tmpDate.getFullYear()==arr[0])&&case 2:&if(arr[1]&13)&&default:&&}&}&&}&&/script&&/*&时间有效性判断函数&All by happywinds&*/&function verifyDate(textObj) {&var str=textObj.&textObj.value = textObj.value.replace(//s+/g,"");&if(str.search(/^/d{4}-/d{1,2}-/d{1,2}$/) == 0){&var y = parseInt(str.split("-")[0]);&var m = parseInt(str.split("-")[1]);&var d = parseInt(str.split("-")[2]);&switch(m){&case 1:&case 3:&case 5:&case 7:&case 8:&case 10:&case 12:&if(d&31){&&textObj.focus();&textObj.select();&}else{&&}&&case 2:&if((y%4==0 && d&29) ((y%4!=0 && d&28))){&&textObj.focus();&textObj.select();&}else{&&}&&case 4:&case 6:&case 9:&case 11:&if(d&30){&&textObj.focus();&textObj.select();&}else{&&}&&default:&&textObj.focus();&textObj.select();&}&}else{&&textObj.focus();&textObj.select();&}&}&meizz(梅花雨)斑竹的Javascript脚本日历输入控件(呵呵,我借花献佛了)&----------------------------------------------&调用的代码:&&script language=javascript src=../../setday.js&&/script&&&input onfocus="setday(this)"&&或者&&script language=javascript src=../../setday.js&&/script&&&input name=txt&&input type=button value=setday onclick="setday(this,document.all.txt)"&&控件的代码:&&!--&//-------------------------------------------------------------------------------&// 这是我做的一个日历 Javascript 页面脚本控件,适用于微软的 IE (5.0以上)浏览器&// 主调用函数是 setday(this,[object]),[object]是控件输出的控件名,举两个具体调用的例子:&// 一、&input name=txt&&input type=button value=setday onclick="setday(this,document.all.txt)"&&// 二、&input onfocus="setday(this)"&&// 若有什么不足的地方,或者您有更好的建议,请与我联系:mail: &// 本日历的年份限制是(1000 - 9999)&//==================================================== WEB 页面显示部分 =====================================================&document.writeln('&div id=meizzDateLayer style="position: width: 142; height: 166; z-index: 9998; display: none"&');&document.writeln('&span id=tmpSelectYearLayer style="z-index: 9999;position:top: 2; left: 18;display: none"&&/span&');&document.writeln('&span id=tmpSelectMonthLayer style="z-index: 9999;position:top: 2; left: 75;display: none"&&/span&');&document.writeln('&table border=0 cellspacing=1 cellpadding=0 width=142 height=160 bgcolor=#808080 onselectstart="return false"&');&document.writeln(' &tr&&td width=142 height=23 bgcolor=#FFFFFF&&table border=0 cellspacing=1 cellpadding=0 width=140 height=23&');&document.writeln(' &tr align=center&&td width=20 align=center bgcolor=#808080 style="font-size:12cursor:color: #FFD700" ');&document.writeln(' onclick="meizzPrevM()" title="向前翻 月" Author=meizz&&b Author=meizz&&&&/b&');&document.writeln(' &/td&&td width=100 align=center style="font-size:12cursor:default" Author=meizz&');&document.writeln(' &span Author=meizz id=meizzYearHead onclick="tmpSelectYearInnerHTML(this.innerText)"&&/span& 年 &span');&document.writeln(' id=meizzMonthHead Author=meizz onclick="tmpSelectMonthInnerHTML(this.innerText)"&&/span& 月&/td&');&document.writeln(' &td width=20 bgcolor=#808080 align=center style="font-size:12cursor:color: #FFD700" ');&document.writeln(' onclick="meizzNextM()" title="往后翻 月" Author=meizz&&b Author=meizz&&&&/b&&/td&&/tr&');document.writeln(' &/table&&/td&&/tr&');&document.writeln(' &tr&&td width=142 height=18 bgcolor=#808080&');&document.writeln('&table border=0 cellspacing=0 cellpadding=0 width=140 height=1 style="cursor:default"&');&document.writeln('&tr align=center&&td style="font-size:12color:#FFFFFF" Author=meizz&日&/td&');&document.writeln('&td style="font-size:12color:#FFFFFF" Author=meizz&一&/td&&td style="font-size:12color:#FFFFFF" Author=meizz&二&/td&');&document.writeln('&td style="font-size:12color:#FFFFFF" Author=meizz&三&/td&&td style="font-size:12color:#FFFFFF" Author=meizz&四&/td&');&document.writeln('&td style="font-size:12color:#FFFFFF" Author=meizz&五&/td&&td style="font-size:12color:#FFFFFF" Author=meizz&六&/td&&/tr&');&document.writeln('&/table&&/td&&/tr&&!-- Author:F.R.Huang(meizz) / mail:
--&');&document.writeln(' &tr&&td width=142 height=120&');&document.writeln(' &table border=0 cellspacing=1 cellpadding=0 width=140 height=120 bgcolor=#FFFFFF&');&var n=0; for (j=0;j&5;j++){ document.writeln (' &tr align=center&'); for (i=0;i&7;i++){&document.writeln('&td width=20 height=20 id=meizzDay'+n+' style="font-size:12px" Author=meizz onclick=meizzDayClick(this.innerText)&&/td&');n++;}&document.writeln('&/tr&');}&document.writeln(' &tr align=center&&td width=20 height=20 style="font-size:12px" id=meizzDay35 Author=meizz ');&document.writeln(' onclick=meizzDayClick(this.innerText)&&/td&');&document.writeln(' &td width=20 height=20 style="font-size:12px" id=meizzDay36 Author=meizz onclick=meizzDayClick(this.innerText)&&/td&');&document.writeln(' &td colspan=5 align=right Author=meizz&&span onclick=closeLayer() style="font-size:12cursor: hand"');&document.writeln(' Author=meizz title="作者: F.R.Huang(meizz) MAIL: "&&u&关闭本控件&/u&&/span& &/td&&/tr&');&document.writeln(' &/table&&/td&&/tr&&tr&&td&');&document.writeln(' &table border=0 cellspacing=1 cellpadding=0 width=100% bgcolor=#FFFFFF&');&document.writeln(' &tr&&td Author=meizz align=left&&input Author=meizz type=button value="& " title="向前翻 年" onclick="meizzPrevY()" ');&document.writeln(' onfocus="this.blur()" style="font-size: 12 height: 20px"&&input Author=meizz title="向前翻 月" type=button ');&document.writeln(' value="&&" onclick="meizzPrevM()" onfocus="this.blur()" style="font-size: 12 height: 20px"&&/td&&td ');&document.writeln(' Author=meizz align=center&&input Author=meizz type=button value=Today onclick="meizzToday()" ');&document.writeln(' onfocus="this.blur()" title="现在的年月" style="font-size: 12 height: 20px"&&/td&&td ');&document.writeln(' Author=meizz align=right&&input Author=meizz type=button value="&&" onclick="meizzNextM()" ');&document.writeln(' onfocus="this.blur()" title="往后翻 月" style="font-size: 12 height: 20px"&&input ');&document.writeln(' Author=meizz type=button value=" &" title="往后翻 年" onclick="meizzNextY()"');&document.writeln(' onfocus="this.blur()" style="font-size: 12 height: 20px"&&/td&');&document.writeln('&/tr&&/table&&/td&&/tr&&/table&&/div&');&meizz(梅花雨)斑竹的Javascript脚本日历输入控件(二)&-------------------------------------------------------&//==================================================== WEB 页面显示部分 ======================================================&var outO&function setday(tt,obj) //主调函数&{&if (arguments.length & 2){alert("对不起!传入本控件的参数太多!");}&if (arguments.length == 0){alert("对不起!您没有传回本控件任何参数!");}&var dads = document.all.meizzDateLayer.var th =&var ttop = tt.offsetT //TT控件的定位点高&var thei = tt.clientH //TT控件本身的高&var tleft = tt.offsetL //TT控件的定位点宽&var ttyp = tt. //TT控件的类型&while (tt = tt.offsetParent){ttop+=tt.offsetT tleft+=tt.offsetL}&dads.top = (ttyp=="image")? ttop+thei : ttop+thei+6;&dads.left =&outObject = (arguments.length == 1) ? th :&dads.display = '';&event.returnValue=&}&var MonHead = new Array(12); //定义阳历中每个月的最大天数&MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30;&MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;&var meizzTheYear=new Date().getFullYear(); //定义年的变量的初始值&var meizzTheMonth=new Date().getMonth()+1; //定义月的变量的初始值&var meizzWDay=new Array(37); //定义写日期的数组&function document.onclick() //任意点击时关闭该控件&{&with(window.event.srcElement)&{ if (tagName != "INPUT" && getAttribute("Author")==null)&document.all.meizzDateLayer.style.display="none";&}&}&function meizzWriteHead(yy,mm) //往 head 中写入当前的年与月&{ document.all.meizzYearHead.innerText =&document.all.meizzMonthHead.innerText =&}&function tmpSelectYearInnerHTML(strYear) //年份的下拉框&{&if (strYear.match(//D/)!=null){alert("年份输入参数不是数字!");}&var m = (strYear) ? strYear : new Date().getFullYear();&if (m & 1000 m & 9999) {alert("年份值不在 1000 到 9999 之间!");}&var n = m - 10;&if (n & 1000) n = 1000;&if (n + 26 & 9999) n = 9974;&var s = "&select Author=meizz name=tmpSelectYear style='font-size: 12px' "&s += "onblur='document.all.tmpSelectYearLayer.style.display=/"none/"' "&s += "onchange='document.all.tmpSelectYearLayer.style.display=/"none/";"&s += "meizzTheYear = this. meizzSetDay(meizzTheYear,meizzTheMonth)'&/r/n";&var selectInnerHTML =&for (var i = i & n + 26; i++)&{&if (i == m)&{selectInnerHTML += "&option value='" + i + "' selected&" + i + "年" + "&/option&/r/n";}&else {selectInnerHTML += "&option value='" + i + "'&" + i + "年" + "&/option&/r/n";}&}&selectInnerHTML += "&/select&";&document.all.tmpSelectYearLayer.style.display="";&document.all.tmpSelectYearLayer.innerHTML = selectInnerHTML;&document.all.tmpSelectYear.focus();&}&function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框&{&if (strMonth.match(//D/)!=null){alert("月份输入参数不是数字!");}&var m = (strMonth) ? strMonth : new Date().getMonth() + 1;&var s = "&select Author=meizz name=tmpSelectMonth style='font-size: 12px' "&s += "onblur='document.all.tmpSelectMonthLayer.style.display=/"none/"' "&s += "onchange='document.all.tmpSelectMonthLayer.style.display=/"none/";"&s += "meizzTheMonth = this. meizzSetDay(meizzTheYear,meizzTheMonth)'&/r/n";&var selectInnerHTML =&for (var i = 1; i & 13; i++)&{&if (i == m)&{selectInnerHTML += "&option value='"+i+"' selected&"+i+"月"+"&/option&/r/n";}&else {selectInnerHTML += "&option value='"+i+"'&"+i+"月"+"&/option&/r/n";}&}&selectInnerHTML += "&/select&";&document.all.tmpSelectMonthLayer.style.display="";&document.all.tmpSelectMonthLayer.innerHTML = selectInnerHTML;&document.all.tmpSelectMonth.focus();&}&function closeLayer() //这个层的关闭&{&document.all.meizzDateLayer.style.display="none";&}&function document.onkeydown()&{&if (window.event.keyCode==27)document.all.meizzDateLayer.style.display="none";&}&function IsPinYear(year) //判断是否闰平年&{&if (0==year%4&&((year%100!=0)(year%400==0)))&}&function GetMonthCount(year,month) //闰年二月为29天&{&var c=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;&}&function GetDOW(day,month,year) //求某天的星期几&{&var dt=new Date(year,month-1,day).getDay()/7;&}&function meizzPrevY() //往前翻 Year&{&if(meizzTheYear & 999 && meizzTheYear &10000){meizzTheYear--;}&else{alert("年份超出范围()!");}&meizzSetDay(meizzTheYear,meizzTheMonth);&}&function meizzNextY() //往后翻 Year&{&if(meizzTheYear & 999 && meizzTheYear &10000){meizzTheYear++;}&else{alert("年份超出范围()!");}&meizzSetDay(meizzTheYear,meizzTheMonth);&}&function meizzToday() //Today Button&{&meizzTheYear = new Date().getFullYear();&meizzTheMonth = new Date().getMonth()+1;&meizzSetDay(meizzTheYear,meizzTheMonth);&}&function meizzPrevM() //往前翻月份&{&if(meizzTheMonth&1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;}&meizzSetDay(meizzTheYear,meizzTheMonth);&}&function meizzNextM() //往后翻月份&{&if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++}&meizzSetDay(meizzTheYear,meizzTheMonth);&}&function meizzSetDay(yy,mm) //主要的写程序**********&{&meizzWriteHead(yy,mm);&for (var i = 0; i & 37; i++){meizzWDay[i]=""}; //将显示框的内容全部清空&var day1 = 1,firstday = new Date(yy,mm-1,1).getDay(); //某月第一天的星期几&for }

我要回帖

更多关于 http query string 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信