http://www.bc-cn.net/Article/web/asp/jszl/200410/194.html ASP语法速查表    作者:佚名    文章来源:不详    点击数:1474    更新时间:2004-10-16    VBScript 函数   功能说明   例子    Abs (数值) 绝对值。一个数字的绝对值是它的正值。空字符串 (null) 的绝对值,也是空字符串。未初始化的变数,其绝对为 0 例子:ABS(-2000)  结果:2000  Array (以逗点分隔的数组元素) Array 函数传回数组元素的值。 例子:  A=Array(1,2,3) B=A(2) 结果: 2 说明:变量B为A数组的第二个元素的值。   Asc (字符串) 将字符串的第一字母转换成 ANSI (美国国家标准符号)字码。 例子:Asc(”Internet”) 结果:73 说明:显示第一字母 I 的 ANSI 字码。   CBool(表达式) 转换成布尔逻辑值变量型态(True 或False ) 例子:CBool(1+2) 结果:True   CDate (日期表达式) 换成日期变量型态。可先使用 IsDate 函数判断是否可以转换成日 期。 例子: CDate (now( )+2)  结果:2000/5/28 10:30:59   CDbl(表达式) 转换成DOUBLE变量型态。   Chr ( ANSI 字码) 将ASCII 字码转换成字符。 例子: Chr ( 72 ) 结果: H   CInt (表达式) 转换成整数变量型态。 例子: CInt ("3.12")  结果: 3   CLng (表达式) 转换成LONG 变量型态。   CSng (表达式) 转换成SINGLE 变量型态。   CStr (表达式) 转换成字符串变量型态。   Date ( )top 传回系统的日期。 例子: Date  结果: 2000/5/13  DateAdd ( I , N , D ) 将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:  yyyy Year 年  q Quarter 季  m Month 月  d Day 日  w Weekday 星期  h Hour 时  n Minute 分  s Second 秒  N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。  D :待加减的日期。 例子: DateAdd ( "m" , 1 , "31-Jan-98")  结果: 28-Feb-98  说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。  例子: DateAdd ( "d" , 20 , "30-Jan-99")  结果: 1999/2/9  说明:将一个日期 30-Jan-99 加上 20 天后的日期。  DateDiff (I , D1 , D2[,FW[,FY]]) 计算两个日期之间的期间。  I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:  yyyy > Year 年  q Quarter 季  m Month 月  d Day 日  w Weekday 星期  h Hour 时  m Minute 分  s Second 秒  D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。  FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:  0 使用 >API 的设定值。  1 星期天  2 星期一  3 星期二  4 星期三  5 星期四  6 星期五  7 星期六  FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:  0 使用 >API 的设定值。  1 一月一日那一周为一年的第一周  2 至少包括四天的第一周为一年的第一周  3 包括七天的第一周为一年的第一周 例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")  结果: 97  说明:显示两个日期之间的期间为 97 天。  DatePart (I,D,[,FW[,FY]]) 传回一个日期的之部份。  >I :设定传回那一部份。譬如 >I="d" 表示传回 部份为日。 >I 的设定值如下:  yyyy Year 年  q Quarter 季  m Month 月  d Day 日  w Weekday 星期  h Hour 时  m Minute 分  s Second 秒  D :待计算的日期。  >FW :设定每周第一天为星期几, 若未设定则表示为星期天。 >FW 的设定值如下:  0 使用 >API 的设定值。  1 星期天  2 星期一>3 星期二  4 星期三  5 星期四  6 星期五  7 星期六  FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:  0 使用 >API 的设定值。  1 一月一日那一周为一年的第一周  2 至少包括四天的第一周为一年的第一周  3 包括七天的第一周为一年的第一周 例子: DatePart ("m","25-Mar-99 ")  结果: 3  说明:显示传回一个日期 的月部份。  Dateserial (year,month,day) 转换(year,month,day) 成日期变量型态。 例子: DateSerial (99,10,1)  结果: 1999/10/1  Datevalue ( 日期的字符串或表达式 ) 转换成日期变量型态,日期从 January 1,100 到 December 31,9999 。格式为 month,day,and year 或 month/day/year 。譬如: December 30,1999 、 Dec 30,1999 、 12/30/1999 、 12/30/99 例子: Datevalue ("January 1,2002 ")  结果: 2002/1/1  Day( 日期的字符串或表达式 ) 传回日期的「日」部份。 例子: Day(" 12/1/1999 ")  结果: 1  Fix( 表达式 )top 转换字符串成整数数字型态。与 Int 函数相同。若为 null 时传回 null 。  Int (number) 与 Fix(number) 的差别在负数。如 Int (-5.6)=-6 , Fix(-5.6)=-5 。 例子: Fix(5.6)  结果: 5  Hex( 表达式 )top 传回数值的十六进制值。若表达式为 null 时 Hex( 表达式 )=null ,若表达式 =Empty 时 Hex( 表达式 )=0 。 16 进位可以加「 &H 」表示,譬如 16 进位 &H10 表示十进制的 16 。 例子: Hex(30)  结果: 1E  Hour( 时间的字符串或表达式 ) 传回时间的「小时」部份。 例子: Hour("12:30:54 ")  结果: 12  InStr ([start,]string1,string2[,compare]) top 将一 个 字符串由左 而右与另一个比较,传回第一个相同的位置。  start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。 例子: InStr("abc123def123","12")  结果: 4  InstrRev ([start,]string1,string2[,compare]) 将一 个 字符串 由右而左与另一个比较,传回第一个相同的位置。  start 为从第几个字比较起,若省略 start 则从第一个字比较起, string1 为待寻找的字符串表达式, string2 为 待比较的字符串表达式, compare 为比较的方法, compare=0 表二进制比较法, compare=1 表文字比较法,若省略 compare 则为预设的二进制比较法。 例子: InstrRev ("abc123def123","12")  结果: 10  Int ( 表达式 ) 传回一个数值的整数部份。与 Fix 函数相同。 例子: Int (5.6)  结果: 5  IsArray ( 变数 ) 测试变量是 (True) 否 (False) 是一个数组。 例子: IsArray (3)  结果: False  说明:不是一个数组。  IsDate ( 日期或字符串的表达式 ) 是否可以转换成日期。日期从 January 1,100 A.D. 到 December 31,9999 A.D 。 例子: IsDate ("December 31,1999 ")  结果: True  说明:可以转换成日期。  IsEmpty ( 变数 ) 测试变量是 (True) 否 (False) 已经被初始化 例子: IsEmpty (a)  结果: True  IsNull ( 变数 ) 测试变数是 (True) 否 (False) 不是有效的数据。 例子: IsNull ("")  结果: False  说明:是有效的数据。  IsNumeric ( 表达式 ) 是 (True) 否 (False) 是数字。 例子: IsNumeric ("abc123")  结果: False  说明:不是数字。  LCase ( 字符串表达式 ) top 转换字符串成小写。将大写字母的部份转换成小写。字符串其余的部份不变。 例子: LCase ("ABC123")  结果: abc123  Left( 字符串表达式 ,length) 取字符串左边的几个字。 length 为取个字。 Len 函数可得知字符串的长度。 例子: Left("ABC123",3)  结果: ABC  Len( 字符串表达式 变量 ) 取得字符串的长度。 例子: Len("ABC123")  结果: 6  LTrim ( 字符串表达式 ) 除去字符串左边的空白字。 RTrim 除去字符串右边的空白字, Trim 函数除去字符串左右两边的空白字。 例子: LTrim ("456+" abc ")  结果: 456abc123  Mid( 字符串表达式 ,start[,length]) top 取字符串中的几个字。 start 为从第几个 字取起, length 为取几个字, 若略 length 则从 start 取到最右底。由Len 函数可得知字符串的长度。 例子: Mid("abc123",2,3)  结果: c12  Minute( 日期的字符串或表达式 ) 传回时间的「分钟」部份。 例子: Minute("12:30:54")  结果:30  Month(日期的字符串或表达式) 传回日期的「月」部份。 例子:Month("12/1/2001")  结果:12  MonthName(month[,abbreviate]) 传回月的名称。  month :待传回月名称的数字 1~12 。譬如, 1 代表一月, 7 代表七月。  abbreviate: 是 (True) 否 (False) 为缩写,譬如 March ,缩写为 Mar 。默认值为 False 。中文的月名称无缩写。 例子: MonthName (7)  结果:七月  Now() 传回系统的日期时间。 例子: Now()  结果: 2001/12/30 10:35:59 AM  Oct() 传回数值的八进位值。八进位可以加「 &O 」表示,譬如八进位 &O10 表示十进制的 8 。 例子: Oct(10)  结果: 12  Replace( 字符串表达式,findnreplacewith[,start[,count[,compare]]])  将一个字符串取代 部份字。寻找待取代的原字符串 (find) , 若找到则被取代为新字符串 (replacewith) 。  find :待寻找取代的原字符串。  replacewith :取代后的字。  start :从第几个字开始寻找取代, 若未设定则由第一个字开始寻找。  count :取代的次数。 若未设定则所有寻找到的字符串取代字符 串全部被取代。  compare :寻找比较的方法, compare=0 表示二进制比较法, compare=1 表文字比较法, compare =2 表根据比较的 数据型态而定,若省略 compare 则为预设的二进制比较法。 例子: Replace("ABCD123ABC","AB","ab")  结果: abCD123abC  Right( 字符串表达式 ,length) 取字符串右边的几个字, length 为取几个字。 Len 函数可得知字符串的长度。 例子: Right("ABC123",3)  结果: 123  Rnd [(number)] 0~1 的 随机随机数值。 number 是任何有效的数值表达式。若 number 小于 0 表示每次得到相同的 随机随机数值。 number 大于 0 或未提供时表示依序得到下一个 随机随机数值。 >number=0 表示得到最近产生的 随机随机数值。为了避免得到相同的随机随机数顺序,可以于 Rnd 函数前加 Randomize 。 例子: Rnd  结果: 0.498498  Round( 数值表达式 [,D]) 四舍五入。  D :为四舍五入到第几位小数,若省略则四舍五入到整数。 例子: Round(30635,1)  结果: 3.6  RTrim ( 字符串表达式 ) 除去字符串右边的空白字。 LTrim 除去字符串左边的空白字, Trim 函数除去字符串左右两边的空白字。 例子: RTrim ("abc123 ")+"456"  结果: abc123456  Second( 时间的字符串或表达式 )top 传回时间的「秒」部份。 例子:Second("12:30:54")  结果:54  Space( 重复次数 ) 得到重复相同的空白字符串。 例子: A"+Space (5)+"B  结果: A B  说明: A 和 B 中间加入五个空白字。  String( 重复次数,待重复的字 ) 得到重复相同的字符串。 例子: String(5,71)  结果: GGGGG  StrReverse (String(10,71)) 将一个字符串顺序颠倒。 例子: StrReverse ("ABC")  结果: CBA  Time() 传回系统的时间。 例子: Time  结果: 10:35:59 PM  TimeSerial (hour,minute,second) 转换指定的 ( hour,minute,second) 成时间 变量型态。 例子: TimeSerial (10,31,59)  结果: 10:31:59  Timevalue ( 日期的字符串或表达式 ) 转换 成时间变量型态。日期的字符串或表达式从 0:00:00(12:00:00 A.M.) 到 23:59:59(11:59:59 P.M.) 。 例子: Timevalue (" 11:59:59 ")  结果: 11:59:59  Trim( 字符串表达式 ) 除去字符串左右两边的空白字。 例子: Trim(" abc123 ")  结果: abc123  UCase ()top 转换字符串成大写。将小写字母的部份转换成大写,字符串其余部份不变。 例子: UCase ("abc123")  结果: ABC123  VarType ( 变数 ) 传回一个变量类型。与 TypeName 函数相同, VarType 传回变量类型的代码, TypeName 传回变量类型的名称。 例子: VarType ( "I love you!")  结果: 8  Weekday( 日期表达式 ,[FW])  传回星期几的数字。  FW :设定一周的第一天是星期几。若 省略则表 1( 星期日 ) 。  Firstdayfweek 设定值为: 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三 ),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。 例子: Weekday(" 1/1/2000")  结果: 7  WeekDayName (W,A,FW) 传回星期几的名称。  W :是 (True) 否 (False) 为缩写。譬如 March ,缩写为 Mar 。预设为 False 。中文的星期几名称无缩写。  FW :设定一周的第一天是星期几。 若省略表 1( 星期日 ) 。设定待传回星期几的名称,为一周中的第几天。  A : 1( 星期日 ),2( 星期一 ),3( 星期二 ),4( 星期三&, nbsp;),5( 星期四 ),6( 星期五 ),7( 星期六 ) 。 例子: WeekDayName ("1/1/2000")  结果:星期六  Year() 传回日期的「年」部份。 例子: Year(" 12/1/2000 ")  结果: 2000 ASP中一种效率极高的分类算法(一)        (2002年04月29日22:55:00 阅读: 1 )     在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。  我常常面试一些程序员,而且我几乎毫无例外地要问他们一些关于分类算法的问题。下面的举几个我常常询问的问题。你认为你可以很轻松地回答么^_^. 
1、分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段? 2、如何快速地从这个Table恢复出一棵树; 3、如何判断某个分类是否是另一个分类的子类; 4、如何查找某个分类的所有产品; 5、如何生成分类所在的路径。 6、如何新增分类;  在不限制分类的级数和每级分类的个数时,这些问题并不是可以轻松回答的。本文试图解决这些问题。  分类的数据结构 我们知道:分类的数据结构实际上是一棵树。在《数据结构》课程中,大家可能学过Tree的算法。由于在网站建设中我们大量使用数据库,所以我们将从Tree在数据库中的存储谈起。  为简化问题,我们假设每个节点只需要保留Name这一个信息。我们需要为每个节点编号。编号的方法有很多种。在数据库中常用的就是自动编号。这在Access、SQL Server、Oracle中都是这样。假设编号字段为ID。  为了表示某个节点ID1是另外一个节点ID2的父节点,我们需要在数据库中再保留一个字段,说明这个分类是属于哪个节点的儿子。把这个字段取名为FatherID。如这里的ID2,其FatherID就是ID1。  这样,我们就得到了分类Catalog的数据表定义:  Create Table [Catalog](  [ID] [int] NOT NULL,  [Name] [nvarchar](50) NOT NULL,  [FatherID] [int] NOT NULL  );  约定:我们约定用-1作为最上面一层分类的父亲编码。编号为-1的分类。这是一个虚拟的分类。它在数据库中没有记录。  如何恢复出一棵树 上面的Catalog定义的最大优势,就在于用它可以轻松地恢复出一棵树—分类树。为了更清楚地展示算法,我们先考虑一个简单的问题:怎样显示某个分类的下一级分类。我们知道,要查询某个分类FID的下一级分类,SQL语句非常简单:  select Name from catalog where FatherID=FID  显示这些类别时,我们简单地用< LI>来做到:  < %  REM oConn---数据库连接,调用GetChildren时已经打开  REM FID-----当前分类的编号  Function GetChildren(oConn,FID) 
 strSQL = "select ID,Name from catalog where FatherID="&FID   set rsCatalog = oConn.Execute(strSQL)  %>   < UL>  < %   Do while not rsCatalog.Eof    %>   < LI>< %=rsCatalog("Name")%>  < %   Loop  %>   < /UL>  < %     rsCatalog.Close  End Function  %>  现在我们来看看如何显示FID下的所有分类。这需要用到递归算法。我们只需要在GetChildren函数中简单地对所有ID进行调用:GetChildren(oConn,Catalog(“ID”))就可以了。  < %  REM oConn---数据库连接,已经打开  REM FID-----当前分类的编号  Function GetChildren(oConn,FID) 
 strSQL = "select Name from catalog where FatherID="&FID   set rsCatalog = oConn.Execute(strSQL)  %>   < UL>  < %   Do while not rsCatalog.Eof    %>   < LI>  < %=GetChildren(oConn,Catalog("ID"))%>    < %   Loop  %>   < /UL>  < %     rsCatalog.Close  End Function  %>  修改后的GetChildren就可以完成显示FID分类的所有子分类的任务。要显示所有的分类,只需要如此调用就可以了:  < %  REM strConn--连接数据库的字符串,请根据情况修改  set oConn = Server.CreateObject("ADODB.Connection")  oConn.Open strConn  =GetChildren(oConn,-1)  oConn.Close  %>  如何查找某个分类的所有产品; 现在来解决我们在前面提出的第四个问题。第三个问题留作习题。我们假设产品的数据表如下定义: 
Create Table Product(  [ID] [int] NOT NULL,  [Name] [nvchar] NOT NULL,  [FatherID] [int] NOT NULL  );  其中,ID是产品的编号,Name是产品的名称,而FatherID是产品所属的分类。  对第四个问题,很容易想到的办法是:先找到这个分类FID的所有子类,然后查询所有子类下的所有产品。实现这个算法实际上很复杂。代码大致如下:  < %  Function GetAllID(oConn,FID)   Dim strTemp   If FID=-1 then 
 strTemp = ""   else   strTemp =","   end if      strSQL = "select Name from catalog where FatherID="&FID   set rsCatalog = oConn.Execute(strSQL)   Do while not rsCatalog.Eof    strTemp=strTemp&rsCatalog("ID")&GetAllID(oConn,Catalog("ID")) REM 递归调用   Loop   rsCatalog.Close 分类算法要解决的问题 在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。  我常常面试一些程序员,而且我几乎毫无例外地要问他们一些关于分类算法的问题。下面的举几个我常常询问的问题。你认为你可以很轻松地回答么^_^.  1、分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段? 2、如何快速地从这个Table恢复出一棵树; 3、如何判断某个分类是否是另一个分类的子类; 4、如何查找某个分类的所有产品; 5、如何生成分类所在的路径。 6、如何新增分类;  在不限制分类的级数和每级分类的个数时,这些问题并不是可以轻松回答的。本文试图解决这些问题。  分类的数据结构 我们知道:分类的数据结构实际上是一棵树。在《数据结构》课程中,大家可能学过Tree的算法。由于在网站建设中我们大量使用数据库,所以我们将从Tree在数据库中的存储谈起。  为简化问题,我们假设每个节点只需要保留Name这一个信息。我们需要为每个节点编号。编号的方法有很多种。在数据库中常用的就是自动编号。这在Access、SQL Server、Oracle中都是这样。假设编号字段为ID。  为了表示某个节点ID1是另外一个节点ID2的父节点,我们需要在数据库中再保留一个字段,说明这个分类是属于哪个节点的儿子。把这个字段取名为FatherID。如这里的ID2,其FatherID就是ID1。  这样,我们就得到了分类Catalog的数据表定义:  Create Table [Catalog](  [ID] [int] NOT NULL,  [Name] [nvarchar](50) NOT NULL,  [FatherID] [int] NOT NULL  );  约定:我们约定用-1作为最上面一层分类的父亲编码。编号为-1的分类。这是一个虚拟的分类。它在数据库中没有记录。  如何恢复出一棵树 上面的Catalog定义的最大优势,就在于用它可以轻松地恢复出一棵树—分类树。为了更清楚地展示算法,我们先考虑一个简单的问题:怎样显示某个分类的下一级分类。我们知道,要查询某个分类FID的下一级分类,SQL语句非常简单:  select Name from catalog where FatherID=FID  显示这些类别时,我们简单地用〈 LI〉来做到:    〈%  REM oConn---数据库连接,调用GetChildren时已经打开  REM FID-----当前分类的编号  Function GetChildren(oConn,FID) 
 strSQL = "select ID,Name from catalog where FatherID="&FID   set rsCatalog = oConn.Execute(strSQL)  %〉   〈UL〉  〈%   Do while not rsCatalog.Eof    %〉   〈LI〉〈%=rsCatalog("Name")%〉  〈%   Loop  %〉   〈/UL〉  〈%     rsCatalog.Close  End Function  %〉  现在我们来看看如何显示FID下的所有分类。这需要用到递归算法。我们只需要在GetChildren函数中简单地对所有ID进行调用:GetChildren(oConn,Catalog(“ID”))就可以了。  〈%  REM oConn---数据库连接,已经打开  REM FID-----当前分类的编号  Function GetChildren(oConn,FID) 
 strSQL = "select Name from catalog where FatherID="&FID   set rsCatalog = oConn.Execute(strSQL)  %〉   〈UL〉  〈%   Do while not rsCatalog.Eof    %〉   〈LI〉〈%=rsCatalog("Name")%〉  〈%=GetChildren(oConn,Catalog("ID"))%〉    〈%   Loop  %〉   〈/UL〉  〈%     rsCatalog.Close  End Function  %〉  修改后的GetChildren就可以完成显示FID分类的所有子分类的任务。要显示所有的分类,只需要如此调用就可以了:  〈%  REM strConn--连接数据库的字符串,请根据情况修改  set oConn = Server.CreateObject("ADODB.Connection")  oConn.Open strConn  =GetChildren(oConn,-1)  oConn.Close  %〉  如何查找某个分类的所有产品; 现在来解决我们在前面提出的第四个问题。第三个问题留作习题。我们假设产品的数据表如下定义: 
Create Table Product(  [ID] [int] NOT NULL,  [Name] [nvchar] NOT NULL,  [FatherID] [int] NOT NULL  );  其中,ID是产品的编号,Name是产品的名称,而FatherID是产品所属的分类。  对第四个问题,很容易想到的办法是:先找到这个分类FID的所有子类,然后查询所有子类下的所有产品。实现这个算法实际上很复杂。代码大致如下:  〈%  Function GetAllID(oConn,FID)   Dim strTemp   If FID=-1 then 
 strTemp = ""   else   strTemp =","   end if      strSQL = "select Name from catalog where FatherID="&FID   set rsCatalog = oConn.Execute(strSQL)   Do while not rsCatalog.Eof    strTemp=strTemp&rsCatalog("ID")&GetAllID(oConn,Catalog("ID")) REM 递归调用   Loop   rsCatalog.Close      GetAllID = strTemp  End Function  REM strConn--连接数据库的字符串,请根据情况修改 
set oConn = Server.CreateObject("ADODB.Connection")  oConn.Open strConn  FID = Request.QueryString("FID") 
strSQL = "select top 100 * from Product where FatherID in ("&GetAllID(oConn,FID)&")" 
set rsProduct=oConn.Execute(strSQL)  %〉  〈UL〉〈%  Do while not rsProduct.EOF  %〉   〈LI〉〈%=rsProduct("Name")%〉  〈%    Loop  %〉  〈/UL〉  〈%rsProduct.Close  oConn.Close   %〉  一个asp加密方法(好像是什么什么RSA,上次朋友相托写的)存为html就行了  <% Class clsRSA Public Key  Public Sub GetKey() Key=3 end Sub  Public Function Encode(ByVal Message) On Error Resume Next Dim L_Message Dim i Dim Asc_Message L_Message = Len(Message) If L_Message = 0 Then Exit Function call GetKey() For i = 1 To L_Message Asc_Message = Asc(Mid(Message,i, 1)) if Asc_Message\2=0 then     Asc_Message=Asc_Message+key else    Asc_Message=Asc_Message+key+1 end if Encode=Encode & Chr(Asc_Message) next End Function  Public Function Decode(ByVal Message) On Error Resume Next Dim L_Message Dim i Dim Asc_Message L_Message = Len(Message) If L_Message = 0 Then Exit Function call GetKey() For i = 1 To L_Message Asc_Message = Asc(Mid(Message,i, 1)) if (Asc_Message - Key)\2=0 then Asc_Message=Asc_Message - Key else Asc_Message=Asc_Message - Key-1 end if Decode=Decode & Chr(Asc_Message) next End Function  End Class key = "138505633zzszyzf" Set ObjRSA = New clsRSA pass=request("pass") if pass<>"" then enpass= ObjRSA.Decode(pass) %> <head> <title>1234</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style>BODY,TD,INPUT{}{FONT-SIZE:9PT}</style> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="enpass" method="post" >   密文:<input type="text" name="pass" value="<%=Pass%>">   <input type="submit" name="Submit" value="解密"> </form> 明文:<input type=text size=34 maxlength=16 value='<%=enpass%>'> </body> Class clsRSA   Public PrivateKey  Public PublicKey  Public Modulus        Public Function Crypt(pLngMessage, pLngKey)  On Error Resume Next  Dim lLngMod  Dim lLngResult  Dim lLngIndex  If pLngKey Mod 2 = 0 Then  lLngResult = 1  For lLngIndex = 1 To pLngKey / 2  lLngMod = (pLngMessage ^ 2) Mod Modulus  '' Mod may error on key generation  lLngResult = (lLngMod * lLngResult) Mod Modulus  If Err Then Exit Function  Next  Else  lLngResult = pLngMessage  For lLngIndex = 1 To pLngKey / 2  lLngMod = (pLngMessage ^ 2) Mod Modulus  On Error Resume Next  '' Mod may error on key generation  lLngResult = (lLngMod * lLngResult) Mod Modulus  If Err Then Exit Function  Next  End If  Crypt = lLngResult  End Function  
Public Function Encode(ByVal pStrMessage)  Dim lLngIndex  Dim lLngMaxIndex  Dim lBytAscii  Dim lLngEncrypted  lLngMaxIndex = Len(pStrMessage)  If lLngMaxIndex = 0 Then Exit Function  For lLngIndex = 1 To lLngMaxIndex  lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))  lLngEncrypted = Crypt(lBytAscii, PublicKey)  Encode = Encode & NumberToHex(lLngEncrypted, 4)  Next  End Function    Public Function Decode(ByVal pStrMessage)  Dim lBytAscii  Dim lLngIndex  Dim lLngMaxIndex  Dim lLngEncryptedData  Decode = ""  lLngMaxIndex = Len(pStrMessage)  For lLngIndex = 1 To lLngMaxIndex Step 4  lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))  lBytAscii = Crypt(lLngEncryptedData, PrivateKey)  Decode = Decode & Chr(lBytAscii)  Next  End Function    Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)  NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)  End Function  
Private Function HexToNumber(ByRef pStrHex)  HexToNumber = CLng("&h" & pStrHex)  End Function   End Class  %>   test.asp  <!--#INCLUDE FILE="RSA.asp"-->  <%  function Encryptstr(Message)  Dim LngKeyE  Dim LngKeyD  Dim LngKeyN  Dim StrMessage  Dim ObjRSA  
LngKeyE = "32823"  LngKeyD = "20643"  LngKeyN = "29893"  StrMessage = Message    Set ObjRSA = New clsRSA      ObjRSA.PublicKey = LngKeyE  ObjRSA.Modulus = LngKeyN  Encryptstr = ObjRSA.Encode(StrMessage)  Set ObjRSA = Nothing  end function  
function decryptstr(Message)  Dim LngKeyE  Dim LngKeyD  Dim LngKeyN  Dim StrMessage  Dim ObjRSA   LngKeyE = "32823"  LngKeyD = "20643"  LngKeyN = "29893"  StrMessage = Message    Set ObjRSA = New clsRSA  
ObjRSA.PrivateKey =LngKeyD  ObjRSA.Modulus=LngKeyN  decryptstr=ObjRSA.Decode(StrMessage)  Set ObjRSA = Nothing  end function   dim last,first  first="sohu"  Response.Write "加密前为:"&first  last=Encryptstr(first)  Response.Write "加密后为"&last  Response.Write "解密后为" &decryptstr(last)  
%> 一段在asp中加密与解密对应的函数 如何用asp进行base64加密    <%      OPTION EXPLICIT      const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"      dim nl      ' zero based arrays      dim Base64EncMap(63)      dim Base64DecMap(127)       ' must be called before using anything else      PUBLIC SUB initCodecs()           ' init vars           nl = "<P>" & chr(13) & chr(10)           ' setup base 64           dim max, idx              max = len(BASE_64_MAP_INIT)           for idx = 0 to max - 1                ' one based string                Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)           next           for idx = 0 to max - 1                Base64DecMap(ASC(Base64EncMap(idx))) = idx           next      END SUB 
     ' encode base 64 encoded string      PUBLIC FUNCTION base64Encode(plain)            if len(plain) = 0 then                base64Encode = ""                exit function           end if            dim ret, ndx, by3, first, second, third           by3 = (len(plain) \ 3) * 3           ndx = 1           do while ndx <= by3                first  = asc(mid(plain, ndx+0, 1))                second = asc(mid(plain, ndx+1, 1))                third  = asc(mid(plain, ndx+2, 1))                ret = ret & Base64EncMap(  (first \ 4) AND 63 )                ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )                ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )                ret = ret & Base64EncMap( third AND 63)                ndx = ndx + 3           loop           ' check for stragglers           if by3 < len(plain) then                first  = asc(mid(plain, ndx+0, 1))                ret = ret & Base64EncMap(  (first \ 4) AND 63 )                if (len(plain) MOD 3 ) = 2 then                     second = asc(mid(plain, ndx+1, 1))                     ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second 16) AND 15 ) )                     ret = ret & Base64EncMap( ((second * 4) AND 60) )                else                     ret = ret & Base64EncMap( (first * 16) AND 48)                     ret = ret & "="                end if                ret = ret & "="           end if            base64Encode = ret      END FUNCTION       ' decode base 64 encoded string      PUBLIC FUNCTION base64Decode(scrambled)            if len(scrambled) = 0 then                base64Decode = ""                exit function           end if            ' ignore padding           dim realLen           realLen = len(scrambled)           do while mid(scrambled, realLen, 1) = "="                realLen = realLen - 1           loop           dim ret, ndx, by4, first, second, third, fourth           ret = ""           by4 = (realLen \ 4) * 4           ndx = 1           do while ndx <= by4                first  = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))                second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))                third  = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))                fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))                ret = ret & chr( ((first * 4) AND 255) +   ((second \ 16) AND 3) )                ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )                ret = ret & chr( ((third * 64) AND 255) +  (fourth AND 63) )                ndx = ndx + 4           loop           ' check for stragglers, will be 2 or 3 characters           if ndx < realLen then                first  = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))                second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))                ret = ret & chr( ((first * 4) AND 255) +   ((second \ 16) AND 3) )                if realLen MOD 4 = 3 then                     third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))                     ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15) )                end if           end if            base64Decode = ret      END FUNCTION  ' initialize      call initCodecs  ' Testing code '    dim inp, encode '    inp = request.QueryString("input") '    encode = base64Encode(inp) '    response.write "Encoded value = " & encode & nl '    response.write "Decoded value = " & base64Decode(encode) & nl %>  用asp写个简单的加密和解密的类 http://www.pconline.com.cn/pcedu/empolder/wz/asp/0412/509728.html 
用asp写个简单的加密和解密的类,在这个类中简单的实现了一个加密和解密。目的是和大家分享一下。这个类的破解非常简单。看看我的注释就知道是怎么回事了。下次编写一个java的加密和解密的类。 
class Base64Class rem Const  dim sBASE_64_CHARACTERS'转化码  dim lenString '计算字符串的长度  dim iCount '计数器  dim returnvalue '返回值  dim tempChar'缓存字符  dim tempString'缓存字符串  dim paramString '参数字符串  dim temHex'缓存缓存十六进制  dim tempLow'缓存低位  dim tempHigh'缓存高位  dim mod3String'  dim mod4String'  dim tempBinary'  dim tempByteOne'  dim tempByteTwo'  dim tempByteThree'  dim tempByteFour'  dim tempSaveBitsOne'  dim tempSaveBitsTwo'  '******************************************** 'begin初始化类  '********************************************  private sub Class_Initialize()  sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" end sub  '********************************************  'end初始化类 ' ********************************************  '********************************************  'begin销毁类  '********************************************  Private Sub Class_Terminate()  sBASE_64_CHARACTERS="" end sub  '********************************************  'end销毁类  '********************************************  '********************************************  'begin将Ansi编码的字符串进行Base64编码  '********************************************  public function Encode(paramString)  tempString=""  returnvalue=""  lenString=len(paramString)  if lenString<1 then  Encode=returnvalue  else  mod3String=lenString mod 3  '补足位数是为了便于计算  if mod3String>0 then  lenString=lenString+3-mod3String  lenString=lenString-3  end if  '*************************begin  for iCount=1 to lenString step 3  tempBinary = Mid(paramString, iCount, 3)  'response.write tempBinary  tempByteOne= Asc(Mid(tempBinary, 1, 1)): tempSaveBitsOne = tempByteOne And 3  tempByteTwo = Asc(Mid(tempBinary, 2, 1)): tempSaveBitsTwo = tempByteTwo And 15  tempChar = Asc(Mid(tempBinary, 3, 1))  tempByteOne = Mid(sBASE_64_CHARACTERS, ((tempByteOne And 252) \ 4) + 1, 1)  tempByteTwo = Mid(sBASE_64_CHARACTERS, (((tempByteTwo And 240) \ 16) Or (tempSaveBitsOne * 16) And &HFF) + 1, 1)  tempByteThree = Mid(sBASE_64_CHARACTERS, (((tempChar And 192) \ 64) Or (tempSaveBitsTwo * 4) And &HFF) + 1, 1)  tempByteFour = Mid(sBASE_64_CHARACTERS, (tempChar And 63) + 1, 1)  tempString = tempByteOne & tempByteTwo & tempByteThree & tempByteFour returnvalue=returnvalue & tempString next  '*************************end  '*************************begin处理最后剩余的几个字符  if mod3String>0 then  tempBinary = Mid(paramString, iCount, mod3String)  if mod3String=1 then  tempString = tempBinary & Chr(64) & Chr(64) & Chr(64) '用@号补足位数  else tempString = tempBinary & Chr(64) & Chr(64) '用@号补足位数  end if  returnvalue=returnvalue & tempString  end if  '*************************end处理最后剩余的几个字符  Encode=returnvalue end if end function  '********************************************  'end将Ansi编码的字符串进行Base64编码  '******************************************** '********************************************  'end将Base64编码字符串转换成Ansi编码的字符串  '********************************************  public function Decode(paramString)  tempString=""  returnvalue=""  lenString=len(paramString)  if lenString<1 then  Decode=returnvalue  else  mod4String=lenString mod 4  if mod4String >0 then '字符串长度应当是4的倍数  Decode=returnvalue  else 'begin判断是不是@号  if Mid(paramString, lenString-1, 1) = "@" then  mod4String=2  end if  if Mid(paramString, lenString-2, 1) = "@" then  mod4String=1  end if  'end判断是不是@号  if mod4String>0 then  lenString=lenString-4  end if   '******************************begin  for iCount=1 to lenString step 4  tempString = Mid(paramString, iCount, 4)  tempByteOne = InStr(sBASE_64_CHARACTERS, Mid(tempString, 1, 1)) - 1  tempByteTwo = InStr(sBASE_64_CHARACTERS, Mid(tempString, 2, 1)) - 1  tempByteThree = InStr(sBASE_64_CHARACTERS, Mid(tempString, 3, 1)) - 1  tempByteFour = InStr(sBASE_64_CHARACTERS, Mid(tempString, 4, 1)) - 1  tempByteOne = Chr(((tempByteTwo And 48) \ 16) Or (tempByteOne * 4) And &HFF) tempByteTwo = "" & Chr(((tempByteThree And 60) \ 4) Or (tempByteTwo * 16) And &HFF)  tempByteThree = Chr((((tempByteThree And 3) * 64) And &HFF) Or (tempByteFour And 63))  tempString=tempByteOne & tempByteTwo & tempByteThree  returnvalue=returnvalue & tempString  next  '******************************end  '处理最后剩余的几个字符  if mod4String > 0 then  tempString=left(right(paramString,4),mod4String)  returnvalue = returnvalue & tempString  end if  Decode=returnvalue  end if  end if  end function  '********************************************  'end将Base64编码字符串转换成Ansi编码的字符串  '********************************************  end class ASP中时间函数的使用(一)  副标题:  作者:佚名 文章来源:本站原创 点击数:313 更新时间:2004-9-16        Date 函数 描述:返回当前系统日期。 语法:Date  DateAdd 函数 描述:返回已添加指定时间间隔的日期。  语法:DateAdd(interval, number, date) interval: 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。  number: 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。  date: 必选。Variant 或要添加 interval 的表示日期的文字。   interval 参数可以有以下值: yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒) 说明:可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。 DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月: NewDate = DateAdd("m", 1, "31-Jan-95") 在这个例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。 如果计算的日期是在公元 100 年之前则会产生错误。 如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。  
DateDiff 函数 描述:返回两个日期之间的时间间隔。  语法:DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>) interval: 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。  date1, date2: 必选。日期表达式。用于计算的两个日期。  firstdayofweek: 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。  firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。  interval 参数可以有以下值: yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒) firstdayofweek 参数可以有以下值: (以下分别为:常数 值 描述) vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日(默认)  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  firstweekofyear 参数可以有以下值: (以下分别为:常数 值 描述) vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。  vbFirstFourDays 2 由在新年中至少有四天的第一周开始。  vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。  说明:DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。 要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。 如果 date1 晚于 date2,则 DateDiff 函数返回负数。 firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。 如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。 在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。   DatePart 函数 描述:返回给定日期的指定部分。 语法:DatePart(interval, date[, firstdayofweek[, firstweekofyear>) DatePart: 函数的语法有以下参数: interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。  date: 必选。要计算的日期表达式。  firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。  firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。  interval 参数可以有以下值: yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒) firstdayofweek 参数可以有以下值: (以下分别为:常数 值 描述) vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日(默认)  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  firstweekofyear 参数可以有以下值: (以下分别为:常数 值 描述) vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。  vbFirstFourDays 2 由在新年中至少有四天的第一周开始。  vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。  说明:DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。 firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。 如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。   ASP中时间函数的使用(二)  副标题:  作者:佚名 文章来源:本站原创 点击数:232 更新时间:2004-9-16       DateSerial 函数 描述:对于指定的年、月、日,返回 Date 子类型的 Variant。 语法:DateSerial(year, month, day) year: 从 100 到 9999 之间的数字或数值表达式。  month: 任意数值表达式。  day: 任意数值表达式。  说明:要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。 以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。 DateSerial(1990 - 10, 8 - 2, 1 - 1) 对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。 当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。  Datevalue 函数 描述:返回 Date 子类型的 Variant。 语法:Datevalue(date) date 参数应是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是,date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。 说明:如果 date 参数包含时间信息,则 Datevalue 不会返回时间信息。但是如果 date 包含无效的时间信息(如 "89:98"),就会出现错误。 如果 date 是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则 Datevalue 将会根据为系统指定的短日期格式识别月、日和年的顺序。Datevalue 还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别 12/30/1991 和 12/30/91 之外,Datevalue 还能识别 December 30, 1991 和 Dec 30, 1991。 如果省略了 date 的年份部分,Datevalue 将使用计算机系统日期中的当前年份。 
Day 函数 描述:返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。 语法:Day(date) date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。  FormatDateTime 函数 描述:返回表达式,此表达式已被格式化为日期或时间。  语法:FormatDateTime(Date[,NamedFormat]) Date: 必选。要被格式化的日期表达式。  NamedFormat: 可选。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。  NamedFormat 参数可以有以下值: (以下分别为:常数 值 描述) vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。   vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。  vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。  vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。  vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。   Hour 函数 描述:返回 0 到 23 之间的一个整数(包括 0 和 23),代表一天中的某一小时。 语法:Hour(time) time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。  Minute 函数 描述:返回 0 到 59 之间的一个整数(包括 0 和59),代表一小时内的某一分钟。 语法:Minute(time) time 参数是任意可以代表时间的表达式。如果 time 参数包含 Null,则返回 Null。  Month 函数 描述:返回 1 到 12 之间的一个整数(包括 1 和 12),代表一年中的某月。 语法:Month(date) date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。   ASP中时间函数的使用(三)  副标题:  作者:佚名 文章来源:本站原创 点击数:150 更新时间:2004-9-16        MonthName 函数 描述:返回表明指定月份的字符串。 语法:MonthName(month[, abbreviate]) month: 必选。月份的数值定义。例如,一月是 1,二月是 2,以此类推。  abbreviate: 可选。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。   Now 函数 描述:根据计算机系统设定的日期和时间返回当前的日期和时间值。 语法:Now 
Second 函数 描述:返回 0 到 59 之间的一个整数(包括 1 和 59),代表一分钟内的某一秒。 语法:Second(time) time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。  Time 函数 描述:返回 Date 子类型 Variant,指示当前系统时间。 语法:Time  TimeSerial 函数 描述:返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间。 语法:TimeSerial(hour, minute, second) hour: 其值为从 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的数值或数值表达式。  minute: 任意数值表达式。  second: 任意数值表达式。  说明:要指定一时刻,如 11:59:59,TimeSerial 的参数取值应在可接受的范围内;也就是说,小时应介于 0-23 之间,分和秒应介于 0-59 之间。但是,可以使用数值表达式为每个参数指定相对时间,这一表达式代表某时刻之前或之后的时、分或秒数。以下样例中使用了表达式代替绝对时间数。TimeSerial 函数返回中午之前六小时 (12 - 6) 十五分钟的时间 (-15),即 5:45:00 A.M.。  TimeSerial(12 - 6, -15, 0) 当任何一个参数的取值超出可接受的范围时,它会正确地进位到下一个较大的时间单位中。例如,如果指定了 75 分钟,则这个时间被解释成一小时十五分钟。但是,如果任何一个参数值超出 -32768 到 32767 的范围,就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围,也会导致错误。  Timevalue 函数 描述:返回包含时间的 Date 子类型的 Variant。 语法:Timevalue(time) time 参数通常是代表从 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表达式(包括 0:00:00 和 23:59:59)。不过,time 也可以是代表该范围内任何时间的表达式。如果 time 参数包含 Null,则返回 Null。 说明:可以采用 12 或 24 小时时钟格式输入时间。例如 "2:24PM" 和 "14:24" 都是有效的 time 参数。 如果 time 参数包含日期信息, Timevalue 函数并不返回日期信息。然而,如果 time 参数包含无效的日期信息,则会出现错误。  Weekday 函数 描述:返回代表一星期中某天的整数。 语法:Weekday(date, [firstdayofweek]) date: 可以代表日期的任意表达式。如果 date 参数中包含 Null,则返回 Null。  firstdayofweek: 指定星期中第一天的常数。如果省略,默认使用 vbSunday。  firstdayofweek 参数有如下设置: (以下分别为:常数 值 描述) vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六  Weekday 函数返回如下值: (以下分别为:常数 值 描述) vbSunday 1 星期日  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六   WeekdayName 函数 描述:返回一个字符串,表示星期中指定的某一天。 语法:WeekDayName(weekday, abbreviate, firstdayofweek) weekday: 必选。星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。  abbreviate: 可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称。  firstdayofweek: 可选。指明星期第一天的数值。关于数值,请参阅“设置”部分。  firstdayofweek 参数有以下值: (以下分别为:常数 值 描述) vbUseSystem 0 使用区域语言支持 (NLS) API 设置。  vbSunday 1 星期日(默认)  vbMonday 2 星期一  vbTuesday 3 星期二  vbWednesday 4 星期三  vbThursday 5 星期四  vbFriday 6 星期五  vbSaturday 7 星期六   Year 函数 描述:返回一个代表某年的整数。 语法:Year(date) date 参数是任意可以代表日期的参数。如果 date 参数中包含 Null,则返回 Null。   让我们了解IE的按钮  副标题:  作者:admin 文章来源:本站原创 点击数:89 更新时间:2004-9-11    &nbs, p; ie按钮  <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0>   </OBJECT>    <input onclick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开 name=Button1>   <input onclick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为 name=Button2>   <input onclick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性 name=Button3>   <input onclick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印 name=Button>   <input onclick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置 name=Button4>   <br>   <input onclick=window.location.reload() type=button value=刷新 name=refresh>   <input onclick="window.external.ImportExportFavorites(true,'');" type=button value=导入收藏夹 name=Button5>   <input onclick="window.external.ImportExportFavorites(false,'');" type=button value=导出收藏夹 name=Button32>   <input onclick="window.external.AddFavorite(location.href, document.title)" type=button value=加入收藏夹 name=Button22>   <br>   <input onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)" type=button value=整理收藏夹 name=Submit2>   <input onclick='window.location="view-source:" + window.location.href' type=button value=查看源文件 name=Button7>   <input onclick="window.external.ShowBrowserUI('LanguageDialog', null)" type=button value=语言设置 name=Button6>   <input onclick=history.go(1) type=submit value=前进 name=Submit>   <input onclick=history.go(-1) type=submit value=后退 name=Submit2> 要完成此效果把如下代码加入到<body>区域中 <input type="button" name="Button" value="点击保存页面" onClick="document.all.WebBrowser.ExecWB(4,1)"> <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object>  ……………………………………………………………………………………………………………………………… 鼠标自定义 <script language=javascript>var Loaded=false;var Flag=false;</script> <script src=' http://files.cometsystems.com/javascript/lc2000.js' language=javascript></script> <script language=javascript>if(Loaded&&Flag)TheCometCursor('cd_electric',0,626);</script>  要完成此效果把如下代码加入到<head>区域中 <SCRIPT LANGUAGE="javascript"> <!-- Begin var x, y, xold, yold, xdiff, ydiff; var dir = Array(); dir[0] = "n-resize"; dir[1]="ne-resize"; dir[2]="e-resize"; dir[3]="se-resize"; dir[4] = "s-resize"; dir[5]="sw-resize"; dir[6]="w-resize"; dir[7]="nw-resize"; document.onmousemove = FindXY; function display(direction) { document.body.style.cursor = dir[direction]; } function FindXY(loc) { x = (document.layers) ? loc.pageX : event.clientX; y = (document.layers) ? loc.pageY : event.clientY; xdiff = x - xold; ydiff = y - yold if ((xdiff <  2) && (ydiff < -2)) display(0); if ((xdiff <  2) && (ydiff >  2)) display(4); if ((xdiff >  2) && (ydiff <  2)) display(2); if ((xdiff < -2) && (ydiff <  2)) display(6); if ((xdiff >  2) && (ydiff >  2)) display(3); if ((xdiff >  2) && (ydiff < -2)) display(1); if ((xdiff < -2) && (ydiff >  2)) display(5); if ((xdiff < -2) && (ydiff < -2)) display(7); xold = x; yold = y; } //  End --> </script> 
从一个Blog中分离出来的好代码   [ 日期:2005-06-07 ]   [ 来自: ]/********************************************************************** * *                       从一个Blog中分离出来的好代码 * *        如果需要更多代码,请到:http://www.relaxlife.net 感觉好帮我顶! * *         * *********************************************************************/ <% ’//----------日期转换成字符串函数 Function DateToStr(DateTime,ShowType)       Dim DateMonth,DateDay,DateHour,DateMinute     DateMonth=Month(DateTime)     DateDay=Day(DateTime)     DateHour=Hour(DateTime)     DateMinute=Minute(DateTime)     If Len(DateMonth)<2 Then DateMonth="0"&DateMonth     If Len(DateDay)<2 Then DateDay="0"&DateDay     Select Case ShowType     Case "Y-m-d"           DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay     Case "Y-m-d H:I A"         Dim DateAMPM         If DateHour>12 Then              DateHour=DateHour-12             DateAMPM="PM"         Else             DateHour=DateHour             DateAMPM="AM"         End If         If Len(DateHour)<2 Then DateHour="0"&DateHour             If Len(DateMinute)<2 Then DateMinute="0"&DateMinute         DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay&" "&DateHour&":"&DateMinute&" "&DateAMPM     Case "Y-m-d H:I:S"         Dim DateSecond         DateSecond=Second(DateTime)         If Len(DateHour)<2 Then DateHour="0"&DateHour             If Len(DateMinute)<2 Then DateMinute="0"&DateMinute         If Len(DateSecond)<2 Then DateSecond="0"&DateSecond         DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay&" "&DateHour&":"&DateMinute&":"&DateSecond     Case "YmdHIS"         DateSecond=Second(DateTime)         If Len(DateHour)<2 Then DateHour="0"&DateHour             If Len(DateMinute)<2 Then DateMinute="0"&DateMinute         If Len(DateSecond)<2 Then DateSecond="0"&DateSecond         DateToStr=Year(DateTime)&DateMonth&DateDay&DateHour&DateMinute&DateSecond         Case "ym"         DateToStr=Right(Year(DateTime),2)&DateMonth     Case "d"         DateToStr=DateDay     Case Else         If Len(DateHour)<2 Then DateHour="0"&DateHour         If Len(DateMinute)<2 Then DateMinute="0"&DateMinute         DateToStr=Year(DateTime)&"-"&DateMonth&"-"&DateDay&" "&DateHour&":"&DateMinute     End Select End Function 
’//--------------截取字符串中有前N个字符。 Function CutStr(byVal Str,byVal StrLen)     Dim l,t,c,i     l=Len(str)     t=0     For i=1 To l         c=AscW(Mid(str,i,1))         If c<0 Or c>255 Then t=t+2 Else t=t+1         IF t>=StrLen Then             CutStr=left(Str,i)&"..."             Exit For         Else             CutStr=Str         End If     Next End Function 
’//--------------随机产生N个字符。 Function Generator(Length)     Dim i, tempS     tempS = "abcdefghijklmnopqrstuvwxyz1234567890"      Generator = ""     If isNumeric(Length) = False Then          Exit Function      End If      For i = 1 to Length          Randomize          Generator = Generator & Mid(tempS,Int((Len(tempS) * Rnd) + 1),1)     Next  End Function   ’//-------------过滤无效字符 Function CheckStr(byVal ChkStr)      Dim Str:Str=ChkStr     Str=Trim(Str)     If IsNull(Str) Then         CheckStr = ""         Exit Function      End If     Dim re     Set re=new RegExp     re.IgnoreCase =True     re.Global=True     re.Pattern="(\r\n){3,}"     Str=re.Replace(Str,"$1$1$1")     Set re=Nothing     Str = Replace(Str,"’","’’")     Str = Replace(Str, "select", "sele;ct")     Str = Replace(Str, "join", "joi;n")     Str = Replace(Str, "union", "uni;on")     Str = Replace(Str, "where", "whe;re")     Str = Replace(Str, "insert", "inse;rt")     Str = Replace(Str, "delete", "dele;te")     Str = Replace(Str, "update", "upd;ate")     Str = Replace(Str, "like", "like;")     Str = Replace(Str, "drop", "drop;")     Str = Replace(Str, "create", "cre;ate")     Str = Replace(Str, "modify", "modi;fy")     Str = Replace(Str, "rename", "rena;me")     Str = Replace(Str, "alter", "alte;r")     Str = Replace(Str, "cast", "cas;t")     CheckStr=Str End Function ’//-------------反过滤无效字符 Function UnCheckStr(Str)         Str = Replace(Str, "sele;ct", "select")         Str = Replace(Str, "joi;n", "join")         Str = Replace(Str, "uni;on", "union")         Str = Replace(Str, "whe;re", "where")         Str = Replace(Str, "inse;rt", "insert")         Str = Replace(Str, "dele;te", "delete")         Str = Replace(Str, "upd;ate", "update")         Str = Replace(Str, "like;", "like")         Str = Replace(Str, "drop;", "drop")         Str = Replace(Str, "cre;ate", "create")         Str = Replace(Str, "modi;fy", "modify")         Str = Replace(Str, "rena;me", "rename")         Str = Replace(Str, "alte;r", "alter")         Str = Replace(Str, "cas;t", "cast")         UnCheckStr=Str End Function  ’//-----------------------转换HTML代码 Function HTMLEncode(reString)      Dim Str:Str=reString     If Not IsNull(Str) Then         Str = UnCheckStr(Str)         Str = Replace(Str, "&", "&;")         Str = Replace(Str, ">", ">;")         Str = Replace(Str, "<", "<;")         Str = Replace(Str, CHR(32), " ;")         Str = Replace(Str, CHR(9), " ; ; ; ;")         Str = Replace(Str, CHR(9), " ; ; ; ;")         Str = Replace(Str, CHR(34),"";")         Str = Replace(Str, CHR(39),"';")         Str = Replace(Str, CHR(13), "")         Str = Replace(Str, CHR(10), "<br>")         HTMLEncode = Str     End If End Function  ’//---------------------------切割前行内容 Function SplitLines(byVal Content,byVal ContentNums)      Dim ts,i,l     If IsNull(Content) Then Exit Function     i=1     ts = 0     For i=1 to Len(Content)           l=Mid(Content,i,4)           If l="<br>" Then              ts=ts+1           End If           If ts>ContentNums Then Exit For      Next     If ts>ContentNums Then         Content=Left(Content,i-1)     End If     SplitLines=Content End Function  ’//---------------------------返回时间差(秒) Function GetEndTimeNum(StartTime)     GetEndTimeNum = FormatNumber(Timer()-StartTime,6,-1) End Function  ’//------------------------删除文件 Function DeleteFiles(FilePath)     Dim FSO     Set FSO=Server.CreateObject("Scripting.FileSystemObject")     If Err<>0 Then         Err.Clear         Response.Write("服务器关闭FSO,无法删除文件")     Else         If FSO.FileExists(FilePath) Then             FSO.DeleteFile FilePath,True             DeleteFiles = 1         Else             DeleteFiles = 0         End If     End If     Set FSO = Nothing End Function  ’//-----------------------查看占用空间 Function GetTotalSize(GetLocal,GetType)     Dim FSO     Set FSO=Server.CreateObject("Scripting.FileSystemObject")     If Err<>0 Then         Err.Clear         GetTotalSize="服务器关闭FSO,查看占用空间失败"     Else         Dim SiteFolder         If GetType="Folder" Then             Set SiteFolder=FSO.GetFolder(GetLocal)          Else             Set SiteFolder=FSO.GetFile(GetLocal)          End If         GetTotalSize=SiteFolder.Size         If GetTotalSize>1024*1024 Then         GetTotalSize=GetTotalSize/1024/1024         If inStr(GetTotalSize,".") Then GetTotalSize = Left(GetTotalSize,inStr(GetTotalSize,".")+2)             GetTotalSize=GetTotalSize&" MB"         Else             GetTotalSize=Fix(GetTotalSize/1024)&" KB"         End If         Set SiteFolder=Nothing     End If     Set FSO=Nothing End Function  ’//----------------------------复制文件 Function CopyFiles(TempSource,TempEnd)     Dim FSO     Set FSO = Server.CreateObject("Scripting.FileSystemObject")     If Err<>0 Then         Err.Clear         Response.Write("服务器关闭FSO,无法复制文件")     Else         If FSO.FileExists(TempEnd) then            Response.Write "目标备份文件 <b>" & TempEnd & "</b> 已存在,请先删除!"            Set FSO=Nothing            Exit Function         End If         If FSO.FileExists(TempSource) Then         Else            Response.Write "要复制的源数据库文件 <b>"&TempSource&"</b> 不存在!"            Set FSO=Nothing            Exit Function         End If         FSO.CopyFile TempSource,TempEnd         Response.Write "已经成功复制文件 <b>"&TempSource&"</b> 到 <b>"&TempEnd&"</b>"     End If     Set FSO = Nothing End Function  ’-------------------------------------------------------True/False------------------------------------- ’//----------------检测是否有效的E-mail地址 Function IsValidEmail(Email)     Dim names, name, i, c     IsValidEmail = True     Names = Split(email, "@")     If UBound(names) <> 1 Then            IsValidEmail = False            Exit Function     End If     For Each name IN names         If Len(name) <= 0 Then              IsValidEmail = False              Exit Function            End If            For i = 1 to Len(name)              c = Lcase(Mid(name, i, 1))              If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then                    IsValidEmail = false                    Exit Function              End If            Next            If Left(name, 1) = "." or Right(name, 1) = "." Then               IsValidEmail = false               Exit Function            End If     Next     If InStr(names(1), ".") <= 0 Then            IsValidEmail = False            Exit Function     End If     i = Len(names(1)) - InStrRev(names(1), ".")     If i <> 2 And i <> 3 Then            IsValidEmail = False            Exit Function     End If     If InStr(email, "..") > 0 Then            IsValidEmail = False     End If End Function 
’//----------------检测是否开通组件 ’FileUp上传组件:<%=CheckObjInstalled("FileUp.upload") ’FSO文本读写:<%=CheckObjInstalled("Scripting.FileSystemObject") ’数据库使用:<%=CheckObjInstalled("adodb.connection") ’Jmail组件支持:<%=CheckObjInstalled("JMail.SMTPMail") ’GflSDK组件支持:<%=CheckObjInstalled("GflAx190.GflAx") ’EasyMail邮件支持:<%=CheckObjInstalled("easymail.Mailsend") ’无组件上传-ADODB.Stream:<%=CheckObjInstalled("Scripting.Dictionary") ’无组件上传-Scripting.Dictionary :<%=CheckObjInstalled("Scripting.Dictionary") Function CheckObjInstalled(strClassString)     On Error Resume Next     Dim TmpObj     Set TmpObj = Server.CreateObject(strClassString)     If Err = 0 OR Err = -2147221477 Then         CheckObjInstalled= "<font color=""#00FF00""><b>√</b></font>"     ElseIF Err = 1 OR Err = -2147221005 Then         CheckObjInstalled="<font color=""#FF0000""><b>×</b></font>"     End If     Err.Clear     Set TmpObj = Nothing End Function  ’//----------------检测用户名是否是有效的字符 Function IsValidUserName(byVal UserName)     Dim i,c     IsValidUserName = True     For i = 1 To Len(UserName)         c = Lcase(Mid(UserName, i, 1))         IF InStr("$!<>?#^%@~`&*(){};:+=’""          ", c) > 0 Then                 IsValidUserName = False                 Exit Function         End IF     Next End Function  ’//------------检测是否有效的数字 Function IsInteger(Para)      IsInteger=False     If Not (IsNull(Para) Or Trim(Para)="" Or Not IsNumeric(Para)) Then         IsInteger=True     End If End Function  ’限制上传文件类型 UP_FileType = "RAR,ZIP,SWF,JPG,PNG,GIF,DOC,TXT,CHM,PDF,ACE,JPG,MP3,WMA,WMV,MIDI,AVI,RM,RA,RMVB,MOV,TORRENT" Function IsvalidFile(File_Type)       IsvalidFile = False     Dim GName     For Each GName in UP_FileType         If File_Type = GName Then             IsvalidFile = True             Exit For         End If     Next End Function  ’--------------------------------------------------------------------------------------------------- ’//-------------------本页里关闭Conn对象,放在最后一行写。 IF TypeName(Conn)<>"Nothing" Then     Conn.Close     Set Conn=Nothing End IF ’//--------------------------设置Cookie Const CookieName="Relaxlife" Response.Cookies(CookieName)("memName")=memLogin("mem_Name") Response.Cookies(CookieName)("memPassword")=memLogin("mem_Password") Response.Cookies(CookieName)("memStatus")=memLogin("mem_Status") Select Case Request.Form("CookieTime")     Case 1         Response.Cookies(CookieName).Expires=Date+1’保存一天     Case 2         Response.Cookies(CookieName).Expires=Date+31’保存一月     Case 3         Response.Cookies(CookieName).Expires=Date+365’保存一年 End Select ’//--------------------------取Cookie值 memName=CheckStr(Request.Cookies(CookieName)("memName")) memPassword=CheckStr(Request.Cookies(CookieName)("memPassword")) memStatus=CheckStr(Request.Cookies(CookieName)("memStatus")) ’//----------------------------3秒后自动返回 msg_Content="<a href=’blogview.asp?logID="&blog_ID&"’>评论发表成功,点击返回,或者3秒后自动返回</a><meta http-equiv=’refresh’ content=’3;url=blogview.asp?logID="&blog_ID&"’>" ’//----------------------------------- Reg_Title="错误信息" Reg_Message="密码长度不符合<br><a href=’javascript:history.go(-1);’>请返回重新输入</a>" %> <table width="95%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#CCCCCC">   <tr><td height="24" align="center"><strong><%=Reg_Title%></strong></td></tr>   <tr><td height="88" align="center" valign="middle" bgcolor="#FFFFFF"><%=Reg_Message%></td></tr> </table> <% ’//--------------------------Application的应用 ’写入表情符号 Dim Arr_Smilies IF Not IsArray(Application(CookieName&"_blog_Smilies")) Then     Dim log_SmiliesList     Set log_SmiliesList=Server.CreateObject("ADODB.RecordSet")     SQL="SELECT sm_ID,sm_Image,sm_Text FROM blog_Smilies ORDER BY sm_ID ASC"     log_SmiliesList.Open SQL,Conn,1,1     SQLQueryNums=SQLQueryNums+1     If log_SmiliesList.EOF And log_SmiliesList.BOF Then         Redim Arr_Smilies(3,0)     Else         Arr_Smilies=log_SmiliesList.GetRows     End If     log_SmiliesList.Close     Set log_SmiliesList=Nothing     Application.Lock     Application(CookieName&"_blog_Smilies")=Arr_Smilies     Application.UnLock Else     Arr_Smilies=Application(CookieName&"_blog_Smilies") End IF ’//------------------------ If Request.QueryString("type")="EnableSite" Then     Application.Lock()     Application(CookieName & "_SiteEnable") = 1     Application(CookieName & "_SiteDisbleWhy") = ""     Application.UnLock()     Response.Write("<a href=""admincp.asp?action=setting"">开启站点成功,请点击返回</a>") ElseIF Request.QueryString("type")="DisableSite" Then     Set Conn=Nothing     FreeApplicationMemory     Application.Lock()     Application(CookieName & "_SiteEnable") = 0     Application(CookieName & "_SiteDisbleWhy")="站点维护中,请稍候再来..."     Application.UnLock()     Response.Write("<br><a href=""admincp.asp?action=setting"">关闭站点成功</a>") Else     If Application(CookieName & "_SiteEnable") = 0 AND Application(CookieName & "_SiteDisbleWhy")<>"" Then         Response.Write("<b>站点已关闭</b> ; ; ; ;| ; ; ; ;<a href=""admincp.asp?action=setting&type=EnableSite"">点击开启站点</a>")     Else         Response.Write("<b>站点已开启</b> ; ; ; ;| ; ; ; ;<a href=""admincp.asp?action=setting&type=DisableSite"">点击关闭站点</a>")     End If End If ’//-----------------------------------释放网站数据列表 Function FreeApplicationMemory     Response.Write "<b>释放网站数据列表:</b>" & VbCrLf     Dim Thing     For Each Thing IN Application.Contents         If Left(Thing,Len(CookieName)) = CookieName Then             Response.Write "<font color=""gray"">" & thing & "</font><br>"             If isObject(Application.Contents(Thing)) Then                 Application.Contents(Thing).Close                 Set Application.Contents(Thing) = Nothing                 Application.Contents(Thing) = Null                 Response.Write "成功关闭对象"             ElseIF isArray(Application.Contents(Thing)) Then                 Set Application.Contents(Thing) = Nothing                 Application.Contents(Thing) = Null                 Response.Write "成功释放数组"             Else                 Response.Write(HtmlEncode(Application.Contents(Thing)))                 Application.Contents(Thing) = Null             End If             Response.Write(" ; ;")         End If     Next End Function ’//----------------------- ’定义数据库链接文件,根据自己的情况修改 Const AccessPath="blogdata" Const AccessFile="loveyuki.asa"  Const IPAccessFile="ipdata.asa"  ’------------定义数据库连接 Dim Conn On Error Resume Next Set Conn= Server.CreateObject("ADODB.Connection") Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessPath&"/"&AccessFile) Conn.Open If Err Then     Err.Clear     Set Conn = Nothing     Response.Write("<head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><title>数据库连接出错,请检查连接字串</title></head><body><div align=""center"" style=""width:400px;height:100px;padding: 8px;font-size:9pt;border: 1px solid ThreeDShadow;POSITION:absolute;top:expression((document.body.offsetHeight-100)/2);left:expression((document.body.offsetWidth-400)/2);""><table width=""100%"" height=""100%"" style=""font-size:12px;font-family:Tahoma;""><tr><td align=""center""><strong>数据库连接出错,请检查连接字串</strong></td></tr></table></div></body>")     Response.End End If  ’------------压缩数据库     Dim FSO,Engine     Set FSO=Server.CreateObject("Scripting.FileSystemObject")     If Err<>0 Then         Err.Clear         Response.Write("服务器关闭FSO,无法压缩数据库")     Else         If FSO.FileExists(Server.Mappath(AccessPath&"/"&AccessFile)) Then             Response.Write "压缩数据库开始,网站暂停一切用户的前台操作......<br>"             Conn.Close             Set Conn=Nothing             Application.Lock             FreeApplicationMemory             Application(CookieName & "_SiteEnable") = 0             Application(CookieName & "_SiteDisbleWhy") = "网站暂停中,请稍候几分钟后再来..."             Application.UnLock             Set Engine = CreateObject("JRO.JetEngine")             Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessPath&"/"&AccessFile), "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath(AccessPath&"/"&AccessFile&".temp")             FSO.CopyFile Server.Mappath(AccessPath&"/"&AccessFile&".temp"),Server.Mappath(AccessPath&"/"&AccessFile)             FSO.DeleteFile(Server.Mappath(AccessPath&"/"&AccessFile&".temp"))             Set FSO = Nothing             Set Engine = Nothing             Response.write "压缩数据库完成..."             Application.Lock             Application(CookieName & "_SiteEnable") = 1             Application(CookieName & "_SiteDisbleWhy") = ""             Application.UnLock             Response.Write "<br>网站恢复正常访问..."             Response.Write("<br><a href=""admincp.asp?action=database"">请点击返回</a>")         End If     End If     Set FSO=Nothing ’-----------------------备份数据库     Response.Write "备份数据库开始,网站暂停一切用户的前台操作......<br>"     Conn.Close     Set Conn=Nothing     Application.Lock     Application(CookieName & "_SiteEnable") = 0     application(CookieName & "_SiteDisbleWhy") = "网站暂停中,请稍候几分钟后再来..."     Application.UnLock     CopyFiles Server.Mappath(AccessPath&"/"&AccessFile),Server.Mappath(AccessPath&"/"&AccessFile & "_" & DateToStr(Now(),"YmdHIS") &".BAK")     Response.write "<br>备份完成..."     Application.Lock     Application(CookieName & "_SiteEnable") = 1     Application(CookieName & "_SiteDisbleWhy") = ""     Application.UnLock     Response.write "<br>网站恢复正常访问..."     Response.Write("<br><a href=""admincp.asp?action=database"">请点击返回</a>")      ’--------------删除的文件     If Request.QueryString("filename")=Empty Then         Response.Write("<a href=""admincp.asp?action=database"">要删除的文件名不能为空,请点击返回</a>")     Else         If DeleteFiles(Server.MapPath(AccessPath&"/"&Request.QueryString("filename")))=1 Then             Response.Write("<a href=""admincp.asp?action=database"">文件删除成功,请点击返回</a>")         Else             Response.Write("<a href=""admincp.asp?action=database"">文件删除失败,请点击返回</a>")         End If     End If      ’------------------文件列表     Response.Write("<b>备份文件列表</b><br>")     Dim DataFolder,DataFileList,DataFile,DataFileName     Set FSO=Server.CreateObject("Scripting.FileSystemObject")     If Err<>0 Then         Err.Clear         Response.Write("服务器关闭FSO,无法查看备份文件列表")     Else         Set DataFolder=FSO.GetFolder(Server.MapPath(AccessPath))         Set DataFileList=DataFolder.Files         For Each DataFile IN DataFileList             If Ubound(Split(DataFile,"."))>=2 Then                 DataFileName=DataFile.Name                 Response.Write("<font color=""#FF0000"">"&DataFileName&"</font> ; ;| ; ;<b><a href=""blogdata/"&DataFileName&""">下载此文件</a></b> ; ;| ; ;<b><a href=""admincp.asp?action=database&type=DeleFile&filename="&DataFileName&""">删除此文件</a></b> ; ;| ; ;<b><a href=""admincp.asp?action=database&type=Restore&filename="&DataFileName&""">从此文件还原数据</a></b><br>")             End If         Next     End If     Set FSO=Nothing ’------------------SQL语句执行     Dim SQL_Query     SQL_Query=Request.Form("SQL_Query")     Conn.ExeCute(SQL_Query)     SQLQueryNums=SQLQueryNums+1     Response.Write("<a href=""admincp.asp?action=database"">SQL语句执行成功,请点击返回</a>")  %>  引用通告地址 (0): http://blog.chenoe.com/blog//trackback.asp?tbID=1797 http://blog.chenoe.com/blog//trackback.asp?tbID=1797&CP=GBK 
base64编码、解码函数  http://www.3pcode.com/article/article_3/1858.htm 
这是我看完几个base64编码、解码函数后自己改写的。 因为,在中文操作系统的VBscript中,使用的是unicode字符集,所以 很多base64编码、解码函数在理论上是正确的,但实际不能运行! 
我加写了几个Unicode与Ansi编码转换的函数,现贴出来,请大家执教!  文件名称base64test.asp 
<%  sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"   sBASE_64_CHARACTERS = strUnicode2Ansi(sBASE_64_CHARACTERS)  Function strUnicodeLen(asContents)   '计算unicode字符串的Ansi编码的长度   asContents1="a"&asContents   len1=len(asContents1)   k=0   for i=1 to len1       asc1=asc(mid(asContents1,i,1))       if asc1<0 then asc1=65536+asc1       if asc1>255 then          k=k+2       else          k=k+1       end if   next   strUnicodeLen=k-1 End Function  Function strUnicode2Ansi(asContents)   '将Unicode编码的字符串,转换成Ansi编码的字符串   strUnicode2Ansi=""   len1=len(asContents)   for i=1 to len1       varchar=mid(asContents,i,1)       varasc=asc(varchar)       if , varasc<0 then varasc=varasc+65536       if varasc>255 then          varHex=Hex(varasc)          varlow=left(varHex,2)          varhigh=right(varHex,2)          strUnicode2Ansi=strUnicode2Ansi & chrb("&H" & varlow ) & chrb("&H" & varhigh )       else          strUnicode2Ansi=strUnicode2Ansi & chrb(varasc)       end if    next End function  Function strAnsi2Unicode(asContents)   '将Ansi编码的字符串,转换成Unicode编码的字符串   strAnsi2Unicode = ""   len1=lenb(asContents)   if len1=0 then exit function   for i=1 to len1       varchar=midb(asContents,i,1)       varasc=ascb(varchar)       if varasc > 127  then           strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))          i=i+1       else          strAnsi2Unicode = strAnsi2Unicode & chr(varasc)       end if   next End function  Function Base64encode(asContents)   '将Ansi编码的字符串进行Base64编码 'asContents应当是ANSI编码的字符串(二进制的字符串也可以) Dim lnPosition   Dim lsResult   Dim Char1   Dim Char2   Dim Char3   Dim Char4   Dim Byte1   Dim Byte2   Dim Byte3   Dim SaveBits1   Dim SaveBits2   Dim lsGroupBinary   Dim lsGroup64   Dim m4,len1,len2  len1=Lenb(asContents) if len1<1 then     Base64encode=""    exit Function end if  m3=Len1 Mod 3  If M3 > 0 Then asContents = asContents & String(3-M3, chrb(0))   '补足位数是为了便于计算  IF m3 > 0 THEN     len1=len1+(3-m3)    len2=len1-3 else    len2=len1 end if  lsResult = ""    For lnPosition = 1 To len2 Step 3       lsGroup64 = ""       lsGroupBinary = Midb(asContents, lnPosition, 3)        Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3       Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15       Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))        Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)       Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)       Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)       Char4 = Midb(sBASE_64_CHARACTERS, (Byte3 And 63) + 1, 1)       lsGroup64 = Char1 & Char2 & Char3 & Char4            lsResult = lsResult & lsGroup64   Next    '处理最后剩余的几个字符 if M3 > 0  then     lsGroup64 = ""       lsGroupBinary = Midb(asContents, len2+1, 3)        Byte1 = Ascb(Midb(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3       Byte2 = Ascb(Midb(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15       Byte3 = Ascb(Midb(lsGroupBinary, 3, 1))        Char1 = Midb(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)       Char2 = Midb(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)       Char3 = Midb(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)        if M3=1 then        lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61)   '用=号补足位数     else        lsGroup64 = Char1 & Char2 & Char3 & ChrB(61)      '用=号补足位数     end if          lsResult = lsResult & lsGroup64   end if  Base64encode = lsResult    End Function    Function Base64decode(asContents)   '将Base64编码字符串转换成Ansi编码的字符串 'asContents应当也是ANSI编码的字符串(二进制的字符串也可以) Dim lsResult   Dim lnPosition   Dim lsGroup64, lsGroupBinary   Dim Char1, Char2, Char3, Char4   Dim Byte1, Byte2, Byte3   Dim M4,len1,len2 
len1= Lenb(asContents)  M4 = len1 Mod 4  if len1 < 1 or M4 > 0 then    '字符串长度应当是4的倍数    Base64decode = ""      exit Function   end if         '判断最后一位是不是 = 号 '判断倒数第二位是不是 = 号 '这里m4表示最后剩余的需要单独处理的字符个数 if midb(asContents, len1, 1) = chrb(61)   then   m4=3  if midb(asContents, len1-1, 1) = chrb(61) then   m4=2  if m4 = 0 then    len2=len1 else    len2=len1-4 end if  For lnPosition = 1 To Len2 Step 4       lsGroupBinary = ""       lsGroup64 = Midb(asContents, lnPosition, 4)       Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1       Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1       Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1       Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1       Byte1 = Chrb(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)       Byte2 = lsGroupBinary & Chrb(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)       Byte3 = Chrb((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))       lsGroupBinary = Byte1 & Byte2 & Byte3            lsResult = lsResult & lsGroupBinary   Next   '处理最后剩余的几个字符 if M4 > 0 then      lsGroupBinary = ""       lsGroup64 = Midb(asContents, len2+1, m4) & chrB(65)   'chr(65)=A,转换成值为0     if M4=2 then                                          '补足4位,是为了便于计算          lsGroup64 = lsGroup64 & chrB(65)                       end if     Char1 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 1, 1)) - 1       Char2 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 2, 1)) - 1       Char3 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 3, 1)) - 1       Char4 = InStrb(sBASE_64_CHARACTERS, Midb(lsGroup64, 4, 1)) - 1       Byte1 = Chrb(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)       Byte2 = lsGroupBinary & Chrb(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)       Byte3 = Chrb((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))          if M4=2 then        lsGroupBinary = Byte1     elseif M4=3 then        lsGroupBinary = Byte1 & Byte2     end if          lsResult = lsResult & lsGroupBinary   end if  Base64decode = lsResult    End Function         
|