<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[Wudang Swordsman's Blog]]></title>
<link>http://www.wd0719.com/blog/</link>
<description><![CDATA[勤劳勇敢的IT民工]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[binghe3465@163.com(武当剑客)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>Wudang Swordsman&#39;s Blog</title> 
	<url>http://www.wd0719.com/blog/images/logos.gif</url> 
	<link>http://www.wd0719.com/blog/</link> 
	<description>Wudang Swordsman&#39;s Blog</description> 
</image>

			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=45</link>
			<title><![CDATA[ASP读取大量数据的程序优化]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+ASP+]]></category>
			<pubDate>Thu,27 Dec 2007 14:23:54 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=45</guid>	
		<description><![CDATA[现有10W条数据，Access数据库保存<br/><br/>通过正常提取：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>Set&nbsp;conn=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)<br/>connstr&nbsp;=&nbsp;&#34;Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source=&#34;&amp;Server.MapPath(&#34;db2.mdb&#34;)<br/>conn.Open&nbsp;connstr<br/><br/>Set&nbsp;rs&nbsp;=&nbsp;Server.Cr&#101;ateObject&nbsp;(&#34;ADODB.Recordset&#34;)<br/>sql&nbsp;=&nbsp;&#34;Sel&#101;ct&nbsp;*&nbsp;from&nbsp;people&nbsp;o&#114;der&nbsp;by&nbsp;id&nbsp;desc&#34;<br/>rs.Open&nbsp;sql,conn,1,1<br/><br/>Do&nbsp;While&nbsp;Not&nbsp;rs.EOF<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.write&nbsp;rs(&#34;id&#34;)&amp;&#34;&nbsp;|&nbsp;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;rs.MoveNext<br/>Loop<br/>%&gt;</div></div><br/><br/><a href="http://www.cnbruce.com/test/getrows/show1.asp" target="_blank">http://www.cnbruce.com/test/getrows/show1.asp</a>&nbsp;<br/><br/>耗时3,250.000毫秒，总测试平均值在3秒左右<br/><br/>使用存储过程提取：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>Set&nbsp;conn&nbsp;=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)<br/>Set&nbsp;cmd&nbsp;=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Command&#34;)<br/>conn.Open&nbsp;&#34;Provider=Microsoft.Jet.OLEDB.4.0;&nbsp;Data&nbsp;Source=&#34;&nbsp;&amp;&nbsp;Server.MapPath(&#34;db2.mdb&#34;)<br/><br/>cmd.ActiveConnection&nbsp;=&nbsp;conn<br/>cmd.CommandText&nbsp;=&nbsp;&#34;Sel&#101;ct&nbsp;*&nbsp;from&nbsp;people&nbsp;o&#114;der&nbsp;by&nbsp;id&nbsp;desc&#34;<br/>Set&nbsp;rs&nbsp;=&nbsp;cmd.Execute<br/><br/>Do&nbsp;While&nbsp;Not&nbsp;rs.EOF<br/>Response.write&nbsp;rs(&#34;id&#34;)&amp;&#34;&nbsp;|&nbsp;&#34;<br/>rs.MoveNext<br/>Loop<br/>%&gt;</div></div><br/><br/><a href="http://www.cnbruce.com/test/getrows/show2.asp" target="_blank">http://www.cnbruce.com/test/getrows/show2.asp</a>&nbsp;<br/><br/>耗时2,187.500毫秒，总测试平均值在2秒左右<br/><br/>以上两种均不能彻底解决执行时间漫长的问题，主要原因即是循环每次都须向数据库抽取记录（Command速度相对较快）<br/><br/>那么使用GetRows()方法呢：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>Set&nbsp;conn&nbsp;=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)<br/>Set&nbsp;cmd&nbsp;=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Command&#34;)<br/><br/>conn.Open&nbsp;&#34;Provider=Microsoft.Jet.OLEDB.4.0;&nbsp;Data&nbsp;Source=&#34;&nbsp;&amp;&nbsp;Server.MapPath(&#34;db2.mdb&#34;)<br/>cmd.ActiveConnection&nbsp;=&nbsp;conn<br/>cmd.CommandText&nbsp;=&nbsp;&#34;Sel&#101;ct&nbsp;*&nbsp;from&nbsp;people&nbsp;o&#114;der&nbsp;by&nbsp;id&nbsp;desc&#34;<br/>Set&nbsp;rs&nbsp;=&nbsp;cmd.Execute<br/>rsArray&nbsp;=&nbsp;rs.GetRows()<br/><br/>For&nbsp;i&nbsp;=&nbsp;0&nbsp;To&nbsp;UBound(rsArray,&nbsp;2)<br/>Response.Write&nbsp;rsArray(0,&nbsp;i)&amp;&#34;&nbsp;|&nbsp;&#34;<br/>Next<br/>%&gt;</div></div><br/><br/><a href="http://www.cnbruce.com/test/getrows/show3.asp" target="_blank">http://www.cnbruce.com/test/getrows/show3.asp</a>&nbsp;<br/><br/>耗时187.500毫秒，总测试平均值在0.2秒左右<br/><br/>GetRows()方法是将数据从&nbsp;Recordset&nbsp;复制到二维数组中，这是一个二维数组，第一个下标标识字段，第二个则标识记录号<br/><br/>所以rsArray&nbsp;=&nbsp;rs.GetRows()<br/>rsArray(0,&nbsp;0)就表示记录集第一行的第一字段值<br/>rsArray(1,&nbsp;0)就表示记录集第一行的第二字段值<br/><br/>数组的数据是保存在内存中的，这就从根本上解决了每次显示记录还需向数据库请求的麻烦。<br/><br/>另外，关于GetRows()的详细介绍和用法，这里有份内容参考<br/><br/><a href="http://www.51windows.net/pages/Ado/mdmthgetrows.htm" target="_blank">http://www.51windows.net/pages/Ado/mdmthgetrows.htm</a>&nbsp;<br/><br/><a href="http://www.blueidea.com/tech/program/2005/2853.asp" target="_blank">http://www.blueidea.com/tech/program/2005/2853.asp</a>]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=44</link>
			<title><![CDATA[ASP编程心得]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+ASP+]]></category>
			<pubDate>Thu,27 Dec 2007 14:07:27 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=44</guid>	
		<description><![CDATA[学好一门编程语言有两个条件是必不可少的，一是理论与实践结合，在实际例程去验证书本上的理论能加深你对理论的理解；二是学会总结，把学习、运用中的心得体会记下来，当成一种经验或者教训加以提炼并在日后的应用中加以改进，一定能提高你对这门编程语言的认识。以下是笔者在学习与运用ASP编程中的两点经验，希望能对大家有所帮助。&nbsp;<br/><br/>ASP页面内VBScript和JScript的交互&nbsp;<br/><br/>　　ASP具备管理不同语言脚本程序的能力，能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎，即VBScript（缺省）和JScript。不过，开发者并没有被限制于只能使用这两种语言，只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。&nbsp;<br/><br/>　　脚本语言的选择往往基于许多不同原因：它可能是开发者最为熟悉的语言，可能是对给定工程来说能够提供最多特色支持的，也有可能是最具效率的。不同的环境和要求使得我们在选择脚本语言时注重不同的因素，同时也使得我们在某些时候面临选定的脚本语言不能直接提供其它语言固有的函数这一问题，或某个脚本已经写成但用的却是另外一种脚本语言。&nbsp;<br/><br/>　　此时应该怎么办？是否需要用当前所用的脚本语言重写这些脚本？或者说，是否有可能在一种脚本语言中调用其它脚本语言的内置函数？本文要说明的就是在ASP应用中如何让VBScript脚本和JScript脚本交互以最大限度地获得两种脚本语言的特色支持。&nbsp;<br/><br/>一、VBScript和JScript的内置函数&nbsp;<br/><br/>　　在VBScript和JScript中，有大量的内置函数功能是相同或类似的。然而，在一种脚本语言中内置的函数并非总是在另外一种脚本语言中也有对应的函数。例如，VBScript提供了许多用于操作字符串和格式化数据的函数，这些函数在JScript中并不存在。这些函数包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面，JScript所提供的用于管理数组、字符串编码等的函数在VBScript中也没有定义，如join()、reverse()、pow()、位操作、escape()和unescape()等。&nbsp;<br/><br/>　　那么，如果在JScript程序中需要一个VBscript函数该怎么办呢?&nbsp;<br/><br/>二、异种脚本的互相调用&nbsp;<br/><br/>　　如果需要在JScript脚本中调用一个VBScript中内置的函数，则应该写一个VBScript用户定义函数（在这里调用VBScript内置函数），然后在JScript脚本中象调用公用JScript函数一样调用这个用户定义函数。&nbsp;<br/><br/>　　例如，如果要调用的VBSCript内置函数是FormatCurrency()，则可以声明如下自定义函数：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;SCRIPT&nbsp;LANGUAGE=&#34;VBSCRIPT&#34;&nbsp;RUNAT=&#34;SERVER&#34;&gt;&nbsp;<br/>　Function&nbsp;FormatValue(Value)&nbsp;<br/>　&nbsp;FormatValue&nbsp;=&nbsp;FormatCurrency(Value)&nbsp;<br/>　End&nbsp;Function&nbsp;<br/>　&lt;/SCRIPT&gt;</div></div><br/><br/>接下来在JScript代码中就可以象普通JScript函数一样调用FormatValue()了。用类似的方法也可以实现VBScript代码调用JScript函数。&nbsp;<br/><br/>　　应用同样的规则，我们可以在任何脚本内调用任何用户定义函数。不过，从JScript脚本内调用一个不带参数的VBScript过程（Sub）时应略加注意，此时在JScript中应该象调用一个不带参数的JScript函数一样调用它，如用foo()调用VBScript&nbsp;Sub&nbsp;foo过程。&nbsp;<br/><br/>三、数据共享&nbsp;<br/><br/>　　在某些情形下混合运用VBScript和JScript函数是非常有用的，但在不同语言脚本之间共享数据也可能很有用。实现这种共享的方法很简单：不管使用的是什么语言，只要是在页面级声明的变量就可以任意引用。&nbsp;<br/><br/>　　对象的使用方法也相似，可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对象的属性和方法是由创建该对象实例的语言所定义的。正如上例VBScript的过程调用，当从JScript中调用一个不带参数的VBScript对象的方法时，其调用方法也遵从JScript的调用规则，反之亦然。&nbsp;<br/><br/>四、数组管理&nbsp;<br/><br/>　　数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享，但必须注意兼容方面的问题。&nbsp;<br/><br/>　　VBScript数组在JScript下可以用VBScript的符号引用，即用myArray(2)引用数组元素而不是JScript的数组元素引用符号myArray[2]。此外，还可以使用一个特殊的JScript对象——VBArray对象将VBScript数组转换为JScript数组。下面的代码从VBScript数组myVBArray创建JScript数组myJSArray：&nbsp;<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">var&nbsp;Temp&nbsp;=&nbsp;new&nbsp;VBArray(myVBArray)&nbsp;<br/>　var&nbsp;myJSArray&nbsp;<br/>　myJSArray&nbsp;=&nbsp;Temp.toArray()</div></div><br/><br/>上述代码首先创建一个临时的VBArray对象，然后使用它的toArray()方法将自己转换为JScript数组。此后就可以象普通JScript数组一样使用myJSArray，如myJSArray[1]。但应当注意的是，toArray()方法将把一个多维的VBArray转换为一维的JScript数组。&nbsp;<br/><br/>　　从VBScript中引用JScript数组更为复杂。虽然在VBScript中我们可以直接访问JScript数组相关的方法和属性，但没有直接访问JScript数组的单个元素的方法。也就是说，我们可以在VBScript脚本中读取JScript数组的长度属性，如下所示：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">x&nbsp;=&nbsp;myJSArray.length</div></div><br/><br/>但无法直接读取该数组的单个元素，下面的VBScript代码是不正确的：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">x&nbsp;=&nbsp;myJSArray(3)</div></div><br/><br/>解决该问题的一个可行的方法是执行一个转换过程，如下面的代码所示，此处假定VBScript是缺省的脚本语言：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;&nbsp;%&nbsp;<br/>　　Dim&nbsp;Temp&nbsp;<br/>　　Dim&nbsp;myVBArray&nbsp;<br/>　　Temp&nbsp;=&nbsp;myJSArray.join(&#34;,&nbsp;&#34;)&nbsp;<br/>　　myVBArray&nbsp;=&nbsp;Split(Temp,&nbsp;&#34;,&nbsp;&#34;)&nbsp;<br/>%&gt;</div></div><br/><br/>此处的JScript&nbsp;join()方法将数组myJSArray元素转换到一个以逗号为分割符的字符串，VBScript&nbsp;Split()函数将字符串转换为VBScript数组。注意这里我们是在VBScript环境下调用JScript的join方法。依照此例，我们可以通过自定义VBScript函数来模拟JScript的VBArray对象的toArray()方法以实现JScript数组到VBScript数组的转换。&nbsp;<br/><br/>用模板建立动态ASP页&nbsp;<br/><br/>　　对于模板，我想大家可能都有一些概念，在word中很多模板，设计好了大概的版面，你只要用你自己的话填充那些占位字符就好了。这儿的模板大概也就是这个意思，页面中相对稳定的部分固定下来，其他的部分根不同的情况在输入不同的内容。其实在DreamWeaver中也有模板的功能，不过那个静态的，只能手动填充内容，而这儿讲的是动态的自动的内容填充。&nbsp;<br/><br/>　　首先，我先来解释一下为什么要用到模板文件。有时候，模板能够带给你对网页功能和布局更为完整的概念。当你看到Word的模板格式之后，就知道最后版面是个什么样子的了，在这儿也是如此。例如，你可以保留ASP语句，而使用不同的模板来建立不同的页面风格。<br/><br/>　　这样，你就不用为每种不同风格的网页分别来写不同的ASP页面了，这显然可以为我们节省很多时间和精力。而且，模板文件能够让你更容易的浏览页面代码，不用担心ASP和HTML的混杂搞的你头昏脑胀。你可以只用把注意力集中在HTML上，而完全不用去管ASP了。再有就是，摸板很简单，你绝对很快就能搞懂搞定。在这篇文章中，将会用到一个数据库——一个用的很广泛的雇员表。包括雇员ID，姓名，照片，以及工作摘要和照片的注脚。下面是这个Access数据库的结构:<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">文件名&nbsp;-&nbsp;myDatabase.mdb&nbsp;<br/>表名&nbsp;-&nbsp;Employees&nbsp;<br/>ID&nbsp;<br/>自动计数(Autonumber)&nbsp;<br/>FullName&nbsp;<br/>文本&nbsp;-&nbsp;最多100个字符&nbsp;<br/>PicURL&nbsp;<br/>文本&nbsp;-&nbsp;最多255个字符&nbsp;<br/>Duties&nbsp;<br/>注释类型&nbsp;<br/>PicCaption&nbsp;<br/>文本&nbsp;-&nbsp;最多50个字符</div></div><br/><br/>一个很简单的数据库，是吧。当然你可以按要求来扩展它，那就是你自己的事了。我假设你已了解数据库的基本操作，这样我不用在这上面花太多的笔墨，其实这儿的代码都是很简单的，只要你知道一些基本的东西，就能把它看懂。建立了数据库之后，我们可以开始建立模板文件了。这个文件是每个页面的骨架。我没有用到表格，那样有些麻烦，而我很懒，而且，也不用加入,标签，因为那是要加在ASP页面中的。所以到最后，它的样子就是这样了：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Full&nbsp;Name:&nbsp;<br/>%name%&nbsp;&lt;&nbsp;br&gt;Description&nbsp;of&nbsp;duties:&nbsp;<br/><br/>%duties%&nbsp;<br/><br/>This&nbsp;picture&nbsp;was&nbsp;taken:&nbsp;%date%&nbsp;<br/><br/><br/>Employee&nbsp;ID:&nbsp;%empID%</div></div><br/><br/>就是这样了！这就是一个简单的模板。把它存为template.tmp，在后面的ASP页面中将要引用到它。要注意的是：我们可以在模板中加入各种HTML标签，你完全可以在摸版中定义好网页的结构和样式，就像实际写一个网页一样，只是要把关键的地方标出来——注意到了那些%围着的东西了吗？那就是模板的精髓了。或许你已经注意到，那些%围着的是和数据库中的字段意义对应的。看看下面的ASP代码，是如何读入模板和数据库文件，把他们揉和在一起，然后输出我们想要的HTML页面。&nbsp;<br/><br/>　　这就是所有的代码了，很简单，不是吗？它所作的只是打开模板文件，按顺序读入每一行，然后用冲数据库中读入的实际的字段值来代替模版中那些%img%，%name%标记。而且，它还把在“Duties”字段内大段文本中的回车解释成HTML的回车&nbsp;，这样就不至于打乱整个的排版格式了。怎么样？轻松搞定吧。模板在某些应用上真的是可以发挥奇效，省时省力。理论上，你还可以修改这段代码，用FileSystemObject来读写文本，这样数据就不一定要存储在数据库中了。在一些应用中，比如即时的新闻发布，这样也许更为方便一些。]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=43</link>
			<title><![CDATA[asp常用函数库]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+ASP+]]></category>
			<pubDate>Thu,27 Dec 2007 14:02:44 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=43</guid>	
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&#39;OpenDB(vdata_url)&nbsp;&nbsp;&nbsp;--------------------&nbsp;打开数据库<br/>&#39;getIp()&nbsp;&nbsp;-------------------------------&nbsp;得到真实IP<br/>&#39;getIPAdress(sip)------------------------&nbsp;查找ip对应的真实地址<br/>&#39;IP2Num(sip)&nbsp;----------------------------&nbsp;限制某段IP地址<br/>&#39;chkFrom()&nbsp;------------------------------&nbsp;防站外提交设定<br/>&#39;getsys()&nbsp;-------------------------------&nbsp;操作系统检测<br/>&#39;GetBrowser()&nbsp;---------------------------&nbsp;浏览器版本检测<br/>&#39;GetSearcher()&nbsp;--------------------------&nbsp;识别搜索引擎<br/>&#39;<br/>&#39;----------------------&nbsp;数据过滤&nbsp;↓----------------------------<br/>&#39;CheckStr(byVal&nbsp;ChkStr)&nbsp;-----------------&nbsp;检查无效字符<br/>&#39;CheckSql()&nbsp;-----------------------------&nbsp;防止SQL注入<br/><br/>&#39;UnCheckStr(Str)-------------------------&nbsp;检查非法sql命令<br/>&#39;Checkstr(Str)&nbsp;--------------------------&nbsp;ASP最新SQL防注入过滤涵数<br/><br/>&#39;HTMLEncode(reString)&nbsp;-------------------&nbsp;过滤转换HTML代码<br/>&#39;DateToStr(DateTime,ShowType)&nbsp;-----------&nbsp;日期转换函数<br/>&#39;Date2Chinese(iDate)&nbsp;--------------------&nbsp;获得ASP的中文日期字符串<br/>&#39;lenStr(str)&nbsp;----------------------------&nbsp;计算字符串长度（字节）<br/><br/>&#39;Cr&#101;ateArr(str)&nbsp;-------------------------&nbsp;生成二维数组<br/>&#39;ShowRsArr(rsArr)&nbsp;-----------------------&nbsp;用表格显示记录集getrows生成的数组的表结构<br/><br/>&#39;----------------------&nbsp;外接组件使用函数↓------------------------<br/>&#39;sendMail(to_Email,from_Email,from_Name,mail_Subject,mail_Body,mail_htmlBody)&nbsp;-----&#39;Jmail组件&nbsp;发送邮件<br/><br/>&#39;-----------------------------------------系统检测函数↓------------------------------------------<br/>&#39;IsValidUrl(url)&nbsp;------------------------&nbsp;检测网页是否有效<br/>&#39;getHTMLPage(filename)&nbsp;------------------&nbsp;获取文件内容<br/>&#39;CheckFile(FilePath)&nbsp;--------------------&nbsp;检查某一文件是否存在<br/>&#39;CheckDir(FolderPath)&nbsp;-------------------&nbsp;检查某一目录是否存在<br/>&#39;MakeNewsDir(foldername)&nbsp;----------------&nbsp;根据指定名称生成目录<br/>&#39;Cr&#101;ateHTMLPage(filename,FileData,C_mode)&nbsp;生成文件<br/><br/>&#39;CheckBadWord(byVal&nbsp;ChkStr)&nbsp;-------------&nbsp;过滤脏字<br/>&#39;###############################################################<br/><br/>Dim&nbsp;ipData_url<br/>ipData_url=&#34;./Ip.mdb&#34;<br/><br/>Response.Write(&#34;--------------客户端信息检测------------&#34;&amp;&#34;&lt;br&gt;&#34;)<br/>Response.Write(getsys()&amp;&#34;&lt;br&gt;&#34;)<br/>Response.Write(GetBrowser()&amp;&#34;&lt;br&gt;&#34;)<br/>Response.Write(GetSearcher()&amp;&#34;&lt;br&gt;&#34;)<br/>Response.Write(&#34;IP:&#34;&amp;getIp()&amp;&#34;&lt;br&gt;&#34;)<br/>Response.Write(&#34;来源:&#34;&amp;(getIPAdress(GetIp()))&amp;&#34;&lt;br&gt;&#34;)<br/>Response.Write(&#34;&lt;br&gt;&#34;)<br/><br/>Response.Write(&#34;--------------数据提交检测--------------&#34;&amp;&#34;&lt;br&gt;&#34;)<br/>if&nbsp;not&nbsp;chkFrom&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.write(&#34;请不要从站外提交内容！&#34;&amp;&#34;&lt;br&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.end<br/>else<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.write(&#34;本站提交内容！&#34;&amp;&#34;&lt;br&gt;&lt;br&gt;&#34;)<br/>End&nbsp;if<br/><br/><br/>function&nbsp;OpenDB(vdata_url)<br/>&#39;------------------------------打开数据库<br/>&#39;使用:Conn&nbsp;=&nbsp;OpenDB(&#34;data/data.mdb&#34;)<br/>&nbsp;&nbsp;Dim&nbsp;vibo_Conn<br/>&nbsp;&nbsp;Set&nbsp;vibo_Conn=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)<br/>&nbsp;&nbsp;vibo_Conn.ConnectionString=&#34;Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source=&#34;&nbsp;&amp;&nbsp;Server.MapPath(vdata_url)<br/>&nbsp;&nbsp;vibo_Conn.Open<br/>&nbsp;&nbsp;OpenDB=vibo_Conn<br/>End&nbsp;Function<br/><br/>function&nbsp;getIp()<br/>&#39;-----------------------得到真实IP<br/>userip&nbsp;=&nbsp;Request.ServerVariables(&#34;HTTP_X_FORWARDED_FOR&#34;)&nbsp;<br/>If&nbsp;userip&nbsp;=&nbsp;&#34;&#34;&nbsp;Then&nbsp;userip&nbsp;=&nbsp;Request.ServerVariables(&#34;REMOTE_ADDR&#34;)&nbsp;<br/>getIp=userip<br/>End&nbsp;function<br/><br/>Function&nbsp;getIPAdress(sip)&nbsp;<br/>&#39;---------------------查找ip对应的真实地址<br/>Dim&nbsp;iparr,iprs,country,city<br/>If&nbsp;sip=&#34;127.0.0.1&#34;&nbsp;then&nbsp;sip=&nbsp;&#34;192.168.0.1&#34;&nbsp;&nbsp;&nbsp;&nbsp;<br/>iparr=split(sip,&#34;.&#34;)<br/>sip=cint(iparr(0))*256*256*256+cint(iparr(1))*256*256+cint(iparr(2))*256+cint(iparr(3))-1&nbsp;<br/>Dim&nbsp;vibo_ipconn_STRING<br/>vibo_ipconn_STRING&nbsp;=&nbsp;&#34;Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source=&#34;&amp;Server.MapPath(ipData_url)<br/>Set&nbsp;iprs&nbsp;=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Recordset&#34;)<br/>iprs.ActiveConnection&nbsp;=&nbsp;vibo_ipconn_STRING<br/>iprs.Source&nbsp;=&nbsp;&#34;Sel&#101;ct&nbsp;Top&nbsp;1&nbsp;city,&nbsp;country&nbsp;FROM&nbsp;address&nbsp;Wh&#101;re&nbsp;ip1&nbsp;&lt;=&#34;&nbsp;&amp;&nbsp;sip&nbsp;&amp;&nbsp;&#34;&nbsp;and&nbsp;&#34;&nbsp;&amp;&nbsp;sip&nbsp;&amp;&nbsp;&#34;&lt;=ip2&#34;<br/>iprs.CursorType&nbsp;=&nbsp;0<br/>iprs.CursorLocation&nbsp;=&nbsp;2<br/>iprs.LockType&nbsp;=&nbsp;1<br/>iprs.Open()<br/><br/>If&nbsp;iprs.bof&nbsp;and&nbsp;iprs.eof&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;country=&#34;未知地区&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;city=&#34;&#34;<br/>Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;country=iprs.Fields.Item(&#34;country&#34;).Value<br/>&nbsp;&nbsp;&nbsp;&nbsp;city=iprs.Fields.Item(&#34;city&#34;).Value<br/>End&nbsp;If<br/>getIPAdress=country&amp;city&nbsp;<br/>iprs.Close()<br/>Set&nbsp;iprs&nbsp;=&nbsp;Nothing<br/>End&nbsp;Function&nbsp;<br/><br/>Function&nbsp;IP2Num(sip)<br/>&#39;--------------------限制某段IP地址<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;dim&nbsp;str1,str2,str3,str4<br/>&nbsp;&nbsp;&nbsp;&nbsp;dim&nbsp;num<br/>&nbsp;&nbsp;&nbsp;&nbsp;IP2Num=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;isnumeric(left(sip,2))&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str1=left(sip,instr(sip,&#34;.&#34;)-1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sip=mid(sip,instr(sip,&#34;.&#34;)+1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str2=left(sip,instr(sip,&#34;.&#34;)-1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sip=mid(sip,instr(sip,&#34;.&#34;)+1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str3=left(sip,instr(sip,&#34;.&#34;)-1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str4=mid(sip,instr(sip,&#34;.&#34;)+1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=cint(str1)*256*256*256+cint(str2)*256*256+cint(str3)*256+cint(str4)-1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IP2Num&nbsp;=&nbsp;num<br/>&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if<br/>end&nbsp;function<br/><br/>&#39;userIPnum&nbsp;=&nbsp;IP2Num(Request.ServerVariables(&#34;REMOTE_ADDR&#34;))<br/>&#39;if&nbsp;userIPnum&nbsp;&gt;&nbsp;IP2Num(&#34;192.168.0.0&#34;)&nbsp;and&nbsp;userIPnum&nbsp;&lt;&nbsp;IP2Num(&#34;192.168.0.255&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.write&nbsp;(&#34;&lt;center&gt;您的IP被禁止&lt;/center&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.end<br/>&#39;end&nbsp;if<br/><br/><br/>Function&nbsp;chkFrom()&nbsp;<br/>&#39;----------------------------防站外提交设定<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;server_v1,server_v2,&nbsp;server1,&nbsp;server2<br/>&nbsp;&nbsp;&nbsp;&nbsp;chkFrom=False&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;server1=Cstr(Request.ServerVariables(&#34;HTTP_REFERER&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;server2=Cstr(Request.ServerVariables(&#34;SERVER_NAME&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Mid(server1,8,len(server2))=server2&nbsp;Then&nbsp;chkFrom=True&nbsp;<br/>End&nbsp;Function<br/>&#39;if&nbsp;not&nbsp;chkFrom&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Response.write(&#34;请不要从站外提交内容！&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;Response.end<br/>&#39;End&nbsp;if<br/><br/>function&nbsp;getsys()<br/>&#39;----------------------------------操作系统检测<br/>vibo_soft=Request.ServerVariables(&#34;HTTP_USER_AGENT&#34;)<br/>if&nbsp;instr(vibo_soft,&#34;Windows&nbsp;NT&nbsp;5.0&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win&nbsp;2000&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Windows&nbsp;NT&nbsp;5.1&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win&nbsp;XP&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Windows&nbsp;NT&nbsp;5.2&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win&nbsp;2003&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;4.0&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win&nbsp;NT&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;NT&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win&nbsp;NT&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Windows&nbsp;CE&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Windows&nbsp;CE&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Windows&nbsp;9&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win&nbsp;9x&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;9x&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Windows&nbsp;ME&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;98&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Windows&nbsp;98&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Windows&nbsp;95&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Windows&nbsp;95&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Win32&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Win32&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;unix&#34;)&nbsp;o&#114;&nbsp;instr(vibo_soft,&#34;linux&#34;)&nbsp;o&#114;&nbsp;instr(vibo_soft,&#34;SunOS&#34;)&nbsp;o&#114;&nbsp;instr(vibo_soft,&#34;BSD&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;类Unix&#34;<br/>elseif&nbsp;instr(vibo_soft,&#34;Mac&#34;)&nbsp;then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Mac&#34;<br/>else<br/>&nbsp;&nbsp;&nbsp;&nbsp;msm=&#34;Other&#34;<br/>end&nbsp;if<br/>getsys=msm<br/>End&nbsp;Function<br/><br/>function&nbsp;GetBrowser()<br/>&#39;----------------------------------浏览器版本检测<br/>dim&nbsp;vibo_soft<br/>vibo_soft=Request.ServerVariables(&#34;HTTP_USER_AGENT&#34;)<br/>Browser=&#34;unknown&#34;<br/>version=&#34;unknown&#34;<br/>&#39;vibo_soft=&#34;Mozilla/4.0&nbsp;(compatible;&nbsp;MSIE&nbsp;6.0;&nbsp;Windows&nbsp;NT&nbsp;5.0;&nbsp;TencentTraveler&nbsp;;&nbsp;.NET&nbsp;CLR&nbsp;1.1.4322)&#34;&nbsp;&nbsp;&nbsp;&nbsp;<br/>If&nbsp;Left(vibo_soft,7)&nbsp;=&#34;Mozilla&#34;&nbsp;Then&nbsp;&#39;有此标识为浏览器<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vibo_soft=Split(vibo_soft,&#34;;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;InStr(vibo_soft(1),&#34;MSIE&#34;)&gt;0&nbsp;Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Browser=&#34;Microsoft&nbsp;Internet&nbsp;Explorer&nbsp;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=Trim(Left(Replace(vibo_soft(1),&#34;MSIE&#34;,&#34;&#34;),6))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf&nbsp;InStr(vibo_soft(4),&#34;Netscape&#34;)&gt;0&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Browser=&#34;Netscape&nbsp;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpstr=Split(vibo_soft(4),&#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=tmpstr(UBound(tmpstr))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf&nbsp;InStr(vibo_soft(4),&#34;rv:&#34;)&gt;0&nbsp;Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Browser=&#34;Mozilla&nbsp;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpstr=Split(vibo_soft(4),&#34;:&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=tmpstr(UBound(tmpstr))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;InStr(version,&#34;)&#34;)&nbsp;&gt;&nbsp;0&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpstr=Split(version,&#34;)&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=tmpstr(0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>ElseIf&nbsp;Left(vibo_soft,5)&nbsp;=&#34;Opera&#34;&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vibo_soft=Split(vibo_soft,&#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Browser=&#34;Mozilla&nbsp;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpstr=Split(vibo_soft(1),&#34;&nbsp;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=tmpstr(0)<br/>End&nbsp;If<br/>If&nbsp;version&lt;&gt;&#34;unknown&#34;&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;Tmpstr1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tmpstr1=Trim(Replace(version,&#34;.&#34;,&#34;&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Not&nbsp;IsNumeric(Tmpstr1)&nbsp;Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=&#34;unknown&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>End&nbsp;If<br/>GetBrowser=Browser&nbsp;&amp;&#34;&nbsp;&#34;&amp;&nbsp;version<br/>End&nbsp;function<br/><br/>function&nbsp;GetSearcher()<br/>&#39;----------------------识别搜索引擎<br/>Dim&nbsp;botlist,Searcher<br/>Dim&nbsp;vibo_soft<br/>vibo_soft=Request.ServerVariables(&#34;HTTP_USER_AGENT&#34;)<br/><br/>Botlist=&#34;Google,Isaac,SurveyBot,Baiduspider,ia_archiver,P.Arthur,FAST-WebCrawler,Java,Microsoft-ATL-Native,TurnitinBot,WebGather,Sleipnir,TencentTraveler&#34;<br/>Botlist=split(Botlist,&#34;,&#34;)<br/>&nbsp;&nbsp;For&nbsp;i=0&nbsp;to&nbsp;UBound(Botlist)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;InStr(vibo_soft,Botlist(i))&gt;0&nbsp;&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Searcher=Botlist(i)&amp;&#34;&nbsp;搜索器&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsSearch=True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;For<br/>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>&nbsp;&nbsp;Next&nbsp;<br/>If&nbsp;IsSearch&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;GetSearcher=Searcher<br/>else<br/>&nbsp;&nbsp;GetSearcher=&#34;unknown&#34;<br/>End&nbsp;if<br/>End&nbsp;function<br/><br/><br/>&#39;----------------------------------数据过滤&nbsp;↓---------------------------------------<br/>Function&nbsp;CheckSql()&nbsp;&#39;防止SQL注入<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;sql_injdata&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SQL_injdata&nbsp;=&nbsp;&#34;&#39;|and|exec|ins&#101;rt|sel&#101;ct|del&#101;te|up&#100;ate|count|*|%|chr|mid|master|truncate|char|declare&#34;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SQL_inj&nbsp;=&nbsp;split(SQL_Injdata,&#34;|&#34;)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Request.QueryString&lt;&gt;&#34;&#34;&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;Each&nbsp;SQL_Get&nbsp;In&nbsp;Request.QueryString&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;SQL_Data=0&nbsp;To&nbsp;Ubound(SQL_inj)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))&gt;0&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;&#34;&lt;Script&nbsp;Language=&#39;javascript&#39;&gt;{alert(&#39;请不要在参数中包含非法字符！&#39;);history.back(-1)}&lt;/Script&gt;&#34;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.end&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Request.Form&lt;&gt;&#34;&#34;&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;Each&nbsp;Sql_Post&nbsp;In&nbsp;Request.Form&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;SQL_Data=0&nbsp;To&nbsp;Ubound(SQL_inj)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))&gt;0&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write&nbsp;&#34;&lt;Script&nbsp;Language=&#39;javascript&#39;&gt;{alert(&#39;请不要在参数中包含非法字符！&#39;);history.back(-1)}&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Script&gt;&#34;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.end&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if<br/>End&nbsp;Function<br/><br/>Function&nbsp;CheckStr(byVal&nbsp;ChkStr)&nbsp;&#39;检查无效字符<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;Str:Str=ChkStr<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str=Trim(Str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;IsNull(Str)&nbsp;Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CheckStr&nbsp;=&nbsp;&#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Function&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;re<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;re=new&nbsp;RegExp<br/>&nbsp;&nbsp;&nbsp;&nbsp;re.IgnoreCase&nbsp;=True<br/>&nbsp;&nbsp;&nbsp;&nbsp;re.Global=True<br/>&nbsp;&nbsp;&nbsp;&nbsp;re.Pattern=&#34;(\r\n){3,}&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str=re.Replace(Str,&#34;$1$1$1&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;re=Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&#34;&#39;&#34;,&#34;&#39;&#39;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;sel&#101;ct&#34;,&nbsp;&#34;sel&#101;ct&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;join&#34;,&nbsp;&#34;join&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;union&#34;,&nbsp;&#34;union&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;wh&#101;re&#34;,&nbsp;&#34;wh&#101;re&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;ins&#101;rt&#34;,&nbsp;&#34;ins&#101;rt&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;del&#101;te&#34;,&nbsp;&#34;del&#101;te&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;up&#100;ate&#34;,&nbsp;&#34;up&#100;ate&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;like&#34;,&nbsp;&#34;like&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;dro&#112;&#34;,&nbsp;&#34;dro&#112;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;cr&#101;ate&#34;,&nbsp;&#34;cr&#101;ate&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;modify&#34;,&nbsp;&#34;modify&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;rename&#34;,&nbsp;&#34;rename&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;alt&#101;r&#34;,&nbsp;&#34;alt&#101;r&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;cast&#34;,&nbsp;&#34;cast&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;CheckStr=Str<br/>End&nbsp;Function<br/><br/>Function&nbsp;UnCheckStr(Str)&nbsp;&#39;检查非法sql命令<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;sel&#101;ct&#34;,&nbsp;&#34;sel&#101;ct&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;join&#34;,&nbsp;&#34;join&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;union&#34;,&nbsp;&#34;union&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;wh&#101;re&#34;,&nbsp;&#34;wh&#101;re&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;ins&#101;rt&#34;,&nbsp;&#34;ins&#101;rt&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;del&#101;te&#34;,&nbsp;&#34;del&#101;te&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;up&#100;ate&#34;,&nbsp;&#34;up&#100;ate&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;like&#34;,&nbsp;&#34;like&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;dro&#112;&#34;,&nbsp;&#34;dro&#112;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;cr&#101;ate&#34;,&nbsp;&#34;cr&#101;ate&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;modify&#34;,&nbsp;&#34;modify&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;rename&#34;,&nbsp;&#34;rename&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;alt&#101;r&#34;,&nbsp;&#34;alt&#101;r&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;cast&#34;,&nbsp;&#34;cast&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnCheckStr=Str<br/>End&nbsp;Function<br/><br/>Function&nbsp;Checkstr(Str)&nbsp;&#39;SQL防注入过滤涵数<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Isnull(Str)&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;CheckStr&nbsp;=&nbsp;&#34;&#34;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Function&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,Chr(0),&#34;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;&#34;&#34;&#34;,&nbsp;&#34;&#34;&#34;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&#34;&lt;&#34;,&#34;&lt;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&#34;&gt;&#34;,&#34;&gt;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;script&#34;,&nbsp;&#34;script&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;SCRIPT&#34;,&nbsp;&#34;SCRIPT&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;Script&#34;,&nbsp;&#34;Script&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;script&#34;,&nbsp;&#34;Script&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;object&#34;,&nbsp;&#34;object&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;OBJECT&#34;,&nbsp;&#34;OBJECT&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;Object&#34;,&nbsp;&#34;Object&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;object&#34;,&nbsp;&#34;Object&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;applet&#34;,&nbsp;&#34;applet&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;APPLET&#34;,&nbsp;&#34;APPLET&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;Applet&#34;,&nbsp;&#34;Applet&#34;,&nbsp;1,&nbsp;-1,&nbsp;0)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;applet&#34;,&nbsp;&#34;Applet&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;[&#34;,&nbsp;&#34;[&#34;)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;]&#34;,&nbsp;&#34;]&#34;)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;&#34;&#34;&#34;,&nbsp;&#34;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;=&#34;,&nbsp;&#34;=&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;&#39;&#34;,&nbsp;&#34;&#39;&#39;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;sel&#101;ct&#34;,&nbsp;&#34;sel&#101;ct&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;execute&#34;,&nbsp;&#34;execute&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;exec&#34;,&nbsp;&#34;exec&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;join&#34;,&nbsp;&#34;join&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;union&#34;,&nbsp;&#34;union&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;wh&#101;re&#34;,&nbsp;&#34;wh&#101;re&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;ins&#101;rt&#34;,&nbsp;&#34;ins&#101;rt&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;del&#101;te&#34;,&nbsp;&#34;del&#101;te&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;up&#100;ate&#34;,&nbsp;&#34;up&#100;ate&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;like&#34;,&nbsp;&#34;like&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;dro&#112;&#34;,&nbsp;&#34;dro&#112;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;cr&#101;ate&#34;,&nbsp;&#34;cr&#101;ate&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;rename&#34;,&nbsp;&#34;rename&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;count&#34;,&nbsp;&#34;count&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;chr&#34;,&nbsp;&#34;chr&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;mid&#34;,&nbsp;&#34;mid&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;truncate&#34;,&nbsp;&#34;truncate&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;nchar&#34;,&nbsp;&#34;nchar&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;char&#34;,&nbsp;&#34;char&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;alt&#101;r&#34;,&nbsp;&#34;alt&#101;r&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;cast&#34;,&nbsp;&#34;cast&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;exists&#34;,&nbsp;&#34;exists&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,Chr(13),&#34;&lt;br&gt;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;CheckStr&nbsp;=&nbsp;Replace(Str,&#34;&#39;&#34;,&#34;&#39;&#39;&#34;,&nbsp;1,&nbsp;-1,&nbsp;1)&nbsp;<br/>End&nbsp;Function<br/><br/>Function&nbsp;HTMLEncode(reString)&nbsp;&#39;过滤转换HTML代码<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;Str:Str=reString<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Not&nbsp;IsNull(Str)&nbsp;Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;UnCheckStr(Str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;&amp;&#34;,&nbsp;&#34;&amp;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;&gt;&#34;,&nbsp;&#34;&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;&#34;&lt;&#34;,&nbsp;&#34;&lt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(32),&nbsp;&#34;&nbsp;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(9),&nbsp;&#34;&nbsp;&nbsp;&nbsp;&nbsp;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(9),&nbsp;&#34;&nbsp;&nbsp;&nbsp;&nbsp;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(34),&#34;&#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(39),&#34;&#39;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(13),&nbsp;&#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Str&nbsp;=&nbsp;Replace(Str,&nbsp;CHR(10),&nbsp;&#34;&lt;br&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTMLEncode&nbsp;=&nbsp;Str<br/>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>End&nbsp;Function<br/><br/>Function&nbsp;DateToStr(DateTime,ShowType)&nbsp;&nbsp;&#39;日期转换函数<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;DateMonth,DateDay,DateHour,DateMinute<br/>&nbsp;&nbsp;&nbsp;&nbsp;DateMonth=Month(DateTime)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DateDay=Day(DateTime)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DateHour=Hour(DateTime)<br/>&nbsp;&nbsp;&nbsp;&nbsp;DateMinute=Minute(DateTime)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateMonth)&lt;2&nbsp;Then&nbsp;DateMonth=&#34;0&#34;&amp;DateMonth<br/>&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateDay)&lt;2&nbsp;Then&nbsp;DateDay=&#34;0&#34;&amp;DateDay<br/>&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct&nbsp;Case&nbsp;ShowType<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;&#34;Y-m-d&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=Year(DateTime)&amp;&#34;-&#34;&amp;DateMonth&amp;&#34;-&#34;&amp;DateDay<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;&#34;Y-m-d&nbsp;H:I&nbsp;A&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;DateAMPM<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;DateHour&gt;12&nbsp;Then&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateHour=DateHour-12<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateAMPM=&#34;PM&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateHour=DateHour<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateAMPM=&#34;AM&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateHour)&lt;2&nbsp;Then&nbsp;DateHour=&#34;0&#34;&amp;DateHour&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateMinute)&lt;2&nbsp;Then&nbsp;DateMinute=&#34;0&#34;&amp;DateMinute<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=Year(DateTime)&amp;&#34;-&#34;&amp;DateMonth&amp;&#34;-&#34;&amp;DateDay&amp;&#34;&nbsp;&#34;&amp;DateHour&amp;&#34;:&#34;&amp;DateMinute&amp;&#34;&nbsp;&#34;&amp;DateAMPM<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;&#34;Y-m-d&nbsp;H:I:S&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;DateSecond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateSecond=Second(DateTime)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateHour)&lt;2&nbsp;Then&nbsp;DateHour=&#34;0&#34;&amp;DateHour&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateMinute)&lt;2&nbsp;Then&nbsp;DateMinute=&#34;0&#34;&amp;DateMinute<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateSecond)&lt;2&nbsp;Then&nbsp;DateSecond=&#34;0&#34;&amp;DateSecond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=Year(DateTime)&amp;&#34;-&#34;&amp;DateMonth&amp;&#34;-&#34;&amp;DateDay&amp;&#34;&nbsp;&#34;&amp;DateHour&amp;&#34;:&#34;&amp;DateMinute&amp;&#34;:&#34;&amp;DateSecond<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;&#34;YmdHIS&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateSecond=Second(DateTime)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateHour)&lt;2&nbsp;Then&nbsp;DateHour=&#34;0&#34;&amp;DateHour&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateMinute)&lt;2&nbsp;Then&nbsp;DateMinute=&#34;0&#34;&amp;DateMinute<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateSecond)&lt;2&nbsp;Then&nbsp;DateSecond=&#34;0&#34;&amp;DateSecond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=Year(DateTime)&amp;DateMonth&amp;DateDay&amp;DateHour&amp;DateMinute&amp;DateSecond&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;&#34;ym&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=Right(Year(DateTime),2)&amp;DateMonth<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;&#34;d&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=DateDay<br/>&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateHour)&lt;2&nbsp;Then&nbsp;DateHour=&#34;0&#34;&amp;DateHour<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;Len(DateMinute)&lt;2&nbsp;Then&nbsp;DateMinute=&#34;0&#34;&amp;DateMinute<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateToStr=Year(DateTime)&amp;&#34;-&#34;&amp;DateMonth&amp;&#34;-&#34;&amp;DateDay&amp;&#34;&nbsp;&#34;&amp;DateHour&amp;&#34;:&#34;&amp;DateMinute<br/>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sel&#101;ct<br/>End&nbsp;Function<br/><br/>Function&nbsp;Date2Chinese(iDate)&nbsp;&#39;获得ASP的中文日期字符串<br/>　&nbsp;　&nbsp;Dim&nbsp;num(10)<br/>　&nbsp;　&nbsp;Dim&nbsp;iYear<br/>　&nbsp;　&nbsp;Dim&nbsp;iMonth<br/>　&nbsp;　&nbsp;Dim&nbsp;iDay<br/><br/>　&nbsp;　&nbsp;num(0)&nbsp;=&nbsp;&#34;〇&#34;<br/>　&nbsp;　&nbsp;num(1)&nbsp;=&nbsp;&#34;一&#34;<br/>　&nbsp;　&nbsp;num(2)&nbsp;=&nbsp;&#34;二&#34;<br/>　&nbsp;　&nbsp;num(3)&nbsp;=&nbsp;&#34;三&#34;<br/>　&nbsp;　&nbsp;num(4)&nbsp;=&nbsp;&#34;四&#34;<br/>　&nbsp;　&nbsp;num(5)&nbsp;=&nbsp;&#34;五&#34;<br/>　&nbsp;　&nbsp;num(6)&nbsp;=&nbsp;&#34;六&#34;<br/>　&nbsp;　&nbsp;num(7)&nbsp;=&nbsp;&#34;七&#34;<br/>　&nbsp;　&nbsp;num(8)&nbsp;=&nbsp;&#34;八&#34;<br/>　&nbsp;　&nbsp;num(9)&nbsp;=&nbsp;&#34;九&#34;<br/><br/>　&nbsp;　&nbsp;iYear&nbsp;=&nbsp;Year(iDate)<br/>　&nbsp;　&nbsp;iMonth&nbsp;=&nbsp;Month(iDate)<br/>　&nbsp;　&nbsp;iDay&nbsp;=&nbsp;Day(iDate)<br/>　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;num(iYear&nbsp;\&nbsp;1000)&nbsp;+&nbsp;num((iYear&nbsp;\&nbsp;100)&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;num((iYear\&nbsp;10)&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;num(iYear&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;&#34;年&#34;<br/>　&nbsp;　&nbsp;If&nbsp;iMonth&nbsp;&gt;=&nbsp;10&nbsp;Then<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;If&nbsp;iMonth&nbsp;=&nbsp;10&nbsp;Then<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;&#34;十&#34;&nbsp;+&nbsp;&#34;月&#34;<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;Else<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;&#34;十&#34;&nbsp;+&nbsp;num(iMonth&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;&#34;月&#34;<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;End&nbsp;If<br/>　&nbsp;　&nbsp;Else<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;num(iMonth&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;&#34;月&#34;<br/>　&nbsp;　&nbsp;End&nbsp;If<br/>　&nbsp;　&nbsp;If&nbsp;iDay&nbsp;&gt;=&nbsp;10&nbsp;Then<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;If&nbsp;iDay&nbsp;=&nbsp;10&nbsp;Then<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&#34;十&#34;&nbsp;+&nbsp;&#34;日&#34;<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;ElseIf&nbsp;iDay&nbsp;=&nbsp;20&nbsp;o&#114;&nbsp;iDay&nbsp;=&nbsp;30&nbsp;Then<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;num(iDay&nbsp;\&nbsp;10)&nbsp;+&nbsp;&#34;十&#34;&nbsp;+&nbsp;&#34;日&#34;<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;ElseIf&nbsp;iDay&nbsp;&gt;&nbsp;20&nbsp;Then<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;num(iDay&nbsp;\&nbsp;10)&nbsp;+&nbsp;&#34;十&#34;&nbsp;+num(iDay&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;&#34;日&#34;<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;Else<br/>　&nbsp;　　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;&#34;十&#34;&nbsp;+&nbsp;num(iDay&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;&#34;日&#34;<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;End&nbsp;If<br/>　&nbsp;　&nbsp;Else<br/>　&nbsp;　&nbsp;　&nbsp;　&nbsp;Date2Chinese&nbsp;=&nbsp;Date2Chinese&nbsp;+&nbsp;num(iDay&nbsp;Mod&nbsp;10)&nbsp;+&nbsp;&#34;日&#34;<br/>　&nbsp;　&nbsp;End&nbsp;If<br/>End&nbsp;Function<br/><br/><br/>Function&nbsp;lenStr(str)&#39;计算字符串长度（字节）<br/>&nbsp;&nbsp;&nbsp;&nbsp;dim&nbsp;l,t,c<br/>&nbsp;&nbsp;&nbsp;&nbsp;dim&nbsp;i<br/>&nbsp;&nbsp;&nbsp;&nbsp;l=len(str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;t=0<br/>for&nbsp;i=1&nbsp;to&nbsp;l<br/>&nbsp;&nbsp;&nbsp;&nbsp;c=asc(mid(str,i,1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;c&lt;0&nbsp;then&nbsp;c=c+65536<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;c&lt;255&nbsp;then&nbsp;t=t+1<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;c&gt;255&nbsp;then&nbsp;t=t+2<br/>next<br/>&nbsp;&nbsp;&nbsp;lenstr=t<br/>End&nbsp;Function<br/><br/>Function&nbsp;Cr&#101;ateArr(str)&nbsp;&#39;生成二维数组&nbsp;数据如：&#34;1,a1,b1,c1,d1|2,a2,b2,c2,d2|5,a3,b3,c3,d3|8,a4,b4,c4,d4&#34;<br/>dim&nbsp;arr()<br/>str=split(str,&#34;|&#34;)<br/>for&nbsp;i=0&nbsp;to&nbsp;UBound(str)<br/>&nbsp;&nbsp;&nbsp;&nbsp;arrstr=split(str(i),&#34;,&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;j=0&nbsp;to&nbsp;Ubound(arrstr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim&nbsp;Preserve&nbsp;arr(UBound(str),UBound(arrstr))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr(i,j)=arrstr(j)<br/>&nbsp;&nbsp;&nbsp;&nbsp;next<br/>next<br/>Cr&#101;ateArr=arr<br/>End&nbsp;Function<br/><br/>&#39;###############################################################&nbsp;</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=42</link>
			<title><![CDATA[ASP怎么谈到应用到类的？]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+ASP+]]></category>
			<pubDate>Thu,27 Dec 2007 13:54:10 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=42</guid>	
		<description><![CDATA[大家一般都是使用IIS的默认脚本语言VbScript作为ASP的服务器端执行语言的，在起初基本都是将该VBS脚本和HTML掺合在一起，实现着某些功能。比如需要在当前页显示最新的5条记录了，就可以这样。<br/>1，先定义数据库的连接，如：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">db_path&nbsp;=&nbsp;&#34;../database/flysoblog.mdb&#34;<br/>Set&nbsp;conn=&nbsp;Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;)<br/>connstr&nbsp;=&nbsp;&#34;Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source=&#34;&amp;Server.MapPath(db_path)<br/>conn.Open&nbsp;connstr</div></div><br/><br/>2，然后建立数据库记录集合，提取相关信息<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Set&nbsp;rs&nbsp;=&nbsp;Server.Cr&#101;ateObject&nbsp;(&#34;ADODB.Recordset&#34;)<br/>sql&nbsp;=&nbsp;&#34;Sel&#101;ct&nbsp;top&nbsp;5&nbsp;*&nbsp;from&nbsp;[news]&nbsp;o&#114;der&nbsp;by&nbsp;n_id&nbsp;desc&#34;<br/>rs.Open&nbsp;sql,conn,1,1</div></div><br/><br/>3，最后通过循环的方法将数据显示出来<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">do&nbsp;while&nbsp;not&nbsp;rs.eof<br/>response.write&nbsp;rs(&#34;n_title&#34;)<br/>rs.movenext<br/>loop<br/>&#39;还有最后的关闭和释放操作<br/>rs.close<br/>set&nbsp;rs=nothing</div></div><br/><br/>那么就是在&nbsp;response.write&nbsp;rs(&#34;n_title&#34;)&nbsp;这里，为了最终的网页设计的需要，在它的前前后后，估计还是需要加入一些其他的HTML标签元素的。于是很自然的，VBS脚本和HTML掺合了。<br/>再来看，如果说有很多页都需要显示这5条记录，那是不是每个页都要这样去设置，当然最主要的只是每个页的设计样子不同。那这就是重复。重复在那里？那里可以不要重复？<br/>1，针对数据库的连接，都直接建立了一个数据库连接文件conn.asp，内容即如上。<br/>2，那么只要是需要使用数据库的，需要建立连接的，直接包含引用该数据库连接文件，即可了事。<br/>&lt;!--#include&nbsp;file=&#34;conn.asp&#34;--&gt;<br/>那么上面是省去的什么重复？每次数据库连接的重复。这是对于通用的某些共用的代码的防重复。接着来看，如果说我要这个页面显示5条，那个页面显示6条，又该如何？很显然，这只能是对当前页中的SQL语句进行简单的修改，比如原来是&nbsp;top&nbsp;5&nbsp;的修改为&nbsp;top&nbsp;6。<br/>OK，继续看，是不是还有重复？有，除了SQL查询定义的不同，其他的都是重复。<br/>于是，继续想办法：可不可以自己来定义提取的条数？就是我想提取几条就几条，但程序只需要写一个。那么这时候，函数的就派上用场了啊。比如我定义这样的函数：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Function&nbsp;topnews(tnum)<br/>Set&nbsp;rs&nbsp;=&nbsp;Server.Cr&#101;ateObject&nbsp;(&#34;ADODB.Recordset&#34;)<br/>sql&nbsp;=&nbsp;&#34;Sel&#101;ct&nbsp;top&nbsp;&#34;&amp;tnum&amp;&#34;&nbsp;*&nbsp;from&nbsp;[news]&nbsp;o&#114;der&nbsp;by&nbsp;n_id&nbsp;desc&#34;<br/>rs.Open&nbsp;sql,conn,1,1<br/>do&nbsp;while&nbsp;not&nbsp;rs.eof<br/>response.write&nbsp;rs(&#34;n_title&#34;)<br/>rs.movenext<br/>loop<br/>rs.close<br/>set&nbsp;rs=nothing<br/>End&nbsp;Function</div></div><br/><br/>那么，就可以使用&nbsp;topnews(5)&nbsp;或者&nbsp;topnews(6)&nbsp;来完成需要了<br/>……咋一看，似乎ASP用上函数这就算最终的完成了。因为主要的程序功能做成了函数模块，需要在前台页面使用该功能时，直接调用一下，必要时修改下函数参数值就是一个完美的结局/。<br/>那么，ASP中怎么又引入了类？这类是什么？又是如何应用？<br/>在ASP的脚本语言中，VBscript里有个Class关键字，用它可来声明一个自定义类。比如<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Class&nbsp;name<br/>　　&nbsp;statements<br/>End&nbsp;Class</div></div><br/><br/>这里statements里可以声明公有或私有的成员，包括函数、成员和属性。<br/>而Javascript则是用一个函数来“声明”类，然后在该函数里通过&nbsp;this.prototype&nbsp;定义属性，this.func&nbsp;定义方法。<br/>哪个简单拣哪个。在定义了&nbsp;类也就是&nbsp;class&nbsp;的名称&nbsp;name&nbsp;后，这里面可以做些什么东西呢？<br/>第一个。MSDN文档：在&nbsp;Visual&nbsp;Basic&nbsp;6.0&nbsp;中，在创建和毁坏类模块时，类模块使用&nbsp;Initialize&nbsp;和&nbsp;Terminate&nbsp;事件来执行所有必要的操作。当在&nbsp;New&nbsp;语句之后第一次遇到对象时，会引发&nbsp;Initialize&nbsp;事件，当释放对象的最后一个引用时，会立即引发&nbsp;Terminate&nbsp;事件。但是，可在执行期间随时直接调用这些事件方法。<br/>所以经常会看到这样的例子：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Class&nbsp;cnbruce&nbsp;&#39;声明一个名为cnbruce的类<br/>Private&nbsp;cnrose<br/>Private&nbsp;Sub&nbsp;Class_Initialize<br/>&nbsp;&nbsp;&nbsp;&nbsp;cnrose=&#34;My&nbsp;Name&nbsp;is&nbsp;cnrose.&#34;<br/>End&nbsp;Sub<br/>Private&nbsp;Sub&nbsp;Class_Terminate()<br/>End&nbsp;Sub<br/>End&nbsp;Class</div></div><br/><br/>喏，这也就是一个初始化。<br/>此外，asp类中具有let和get方法。比如在&nbsp;以上代码的Class&nbsp;cnbruce&nbsp;...&nbsp;End&nbsp;Class之间加入：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Public&nbsp;Property&nbsp;get&nbsp;YName<br/>&nbsp;&nbsp;&nbsp;&nbsp;YName=cnrose<br/>End&nbsp;Property</div></div><br/><br/>即变成了：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Class&nbsp;cnbruce&nbsp;&#39;声明一个名为cnbruce的类<br/>Private&nbsp;cnrose<br/>Private&nbsp;Sub&nbsp;Class_Initialize<br/>&nbsp;&nbsp;&nbsp;&nbsp;cnrose=&#34;My&nbsp;Name&nbsp;is&nbsp;cnrose.&#34;<br/>End&nbsp;Sub<br/>Private&nbsp;Sub&nbsp;Class_Terminate()<br/>End&nbsp;Sub<br/>Public&nbsp;Property&nbsp;get&nbsp;YName<br/>&nbsp;&nbsp;&nbsp;&nbsp;YName=cnrose<br/>End&nbsp;Property<br/>End&nbsp;Class</div></div><br/><br/>那么如何将该值提取呢，比如<br/>Set&nbsp;aaa=New&nbsp;cnbruce<br/>response.write&nbsp;aaa.YName<br/>注意aaa.YName已经有些感觉了。aaa即为定义为cnbruce类的对象，最终输出显示为该类对象中的YName&nbsp;get值，其值内容为变量cnrose的值，并且该值已经被初始化，所以，最终的结果是“My&nbsp;Name&nbsp;is&nbsp;cnrose.”<br/>这是&nbsp;get&nbsp;，直接提取已经封装好的类的内部的东西，那么&nbsp;let&nbsp;呢？即是外部对类的交互访问操作。比如我现在外部定义的值应用到类中。即先定义：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">public&nbsp;property&nbsp;let&nbsp;MName(nnn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;cnrose=nnn<br/>end&nbsp;property</div></div><br/><br/>它的意思很简单，参数nnn的值将随着外部不同的值而赋到变量cnrose上。那么OK结合上的程式，即最中输出显示的内容，也就是显示的变量cnrose的内容，不是初始化的内容，而是由let&nbsp;外部应用的不定值。那如何应用let&nbsp;呢。<br/>aaa.MName=&#34;sdasdasd&#34;<br/>直接定义值就可以了。那么现在看看全部程序：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>Class&nbsp;cnbruce<br/>Private&nbsp;cnrose<br/>Private&nbsp;Sub&nbsp;Class_Initialize<br/>&nbsp;&nbsp;&nbsp;&nbsp;cnrose=&#34;My&nbsp;Name&nbsp;is&nbsp;cnrose.&#34;<br/>End&nbsp;Sub<br/>Public&nbsp;Property&nbsp;get&nbsp;YName<br/>&nbsp;&nbsp;&nbsp;&nbsp;YName=cnrose<br/>End&nbsp;Property<br/>public&nbsp;property&nbsp;let&nbsp;MName(nnn)<br/>&nbsp;&nbsp;&nbsp;&nbsp;cnrose=nnn<br/>end&nbsp;property<br/>End&nbsp;Class<br/>Set&nbsp;aaa=New&nbsp;cnbruce<br/>aaa.MName=&#34;hahahoho&#34;<br/>response.write&nbsp;aaa.YName<br/>%&gt;</div></div><br/><br/>虽然定义的是aaa.MName的值为&#34;hahahoho&#34;，但根据public&nbsp;property&nbsp;let&nbsp;MName(nnn)，其值到变量cnrose，SO在输出aaa.YName的时候，根据Public&nbsp;Property&nbsp;get&nbsp;YName，结果的值是什么也就不奇怪了。/<br/>至于功能型的程式，则在类中定义为&nbsp;函数&nbsp;Function，或者子程序&nbsp;Sub&nbsp;了。<br/>SO，总的说来，就只是功能的封装，以及在应用的时候好写好看（直接类名.方法、类名.属性-_-!），但不要指望它像Java&nbsp;或.Net那样具有面向对象的思想服务。<br/>时间有限，虎头蛇尾将就一下了。]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=41</link>
			<title><![CDATA[微软不断增强对开源编程语言PHP的支持]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+PHP+]]></category>
			<pubDate>Fri,30 Nov 2007 09:30:39 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=41</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;虽然存在着不少的批评，但PHP仍旧在Web开发中牢牢地占有着重要的一席之地。从1995年得名为个人主页工具（Personal&nbsp;Home&nbsp;Page&nbsp;Tools）开始，PHP逐渐组成，并成为了LAMP开发框架中不可或缺的重要部分。<br/><br/>　　最初，微软公司将PHP作为竞争对手，并于1996年十二月发布了与之抗衡的产品——ASP（Active&nbsp;Server&nbsp;Pages）。时至今日，这种被称为“传统ASP”的语言仍旧随着IIS一同发布，并广泛应用于很多站点中。不过与PHP不同的是，微软公司已经不再对ASP进行任何形式的后续开发，ASP也没有任何发布新版本的计划。<br/><br/>　　PHP能够流行起来的一个非常重要的原因就是其与ASP.NET或J2EE框架相比所带来的简单性。与其他平台所专注于的企业级开发、框架的规范性所不同的是，PHP是一种非常注重实效的、能够很快解决问题并满足开发者需求的语言。当然，很多人也因此批评PHP的那些不够一致、大杂烩般的特性。<br/><br/>　　无论你对PHP抱有怎样的看法，毫无疑问的是PHP仍将伴随我们很长一段时间——PHP是如此地流行，很难有什么理由能够让其快速被取代，且PHP的开发团队也在一刻不停地为其添加新的功能，这也会吸引到更多的使用者和项目。<br/><br/>　　最近，微软公司不再把PHP作为竞争对手对待，而只是心平气和地将其看作另一个产品。不过微软真正的竞争对手变成了Linux，因此公司希望能够通过加深在IIS&nbsp;7中对PHP的支持来吸引到现有的PHP开发者。在Channel&nbsp;9的Webcast中，Ryan&nbsp;Dunn介绍了在IIS中安装PHP，以及IIS&nbsp;7为PHP应用程序定制的集成管道等内容，以期让IIS中的PHP能够支持表单验证。<br/><br/>　　另一个迟到的产品是专为PHP准备的SQL&nbsp;Server数据库驱动程序。目前为止，PHP开发者最常用的数据库仍旧是MySQL。虽然微软公司的SQL&nbsp;Server&nbsp;Express与MySQL相比不相上下，也同样完全免费，不过SQL&nbsp;Server&nbsp;Express却没有为PHP提供原生的数据库驱动程序。好在微软公司意识到了这一点，并已经发布了SQL&nbsp;Server&nbsp;driver&nbsp;for&nbsp;PHP的一个预览版本。]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=40</link>
			<title><![CDATA[我的一篇关于家乡城市建设的原创帖子见报了~]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+生活+]]></category>
			<pubDate>Mon,29 Oct 2007 23:16:29 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=40</guid>	
		<description><![CDATA[晚上，有网友告知，我在东湖社区十堰论坛发表的一篇关于城市建设的帖子上报了。有点意外，二十多年来头一遭啊，发上来记念一下，呵呵~！<br/><br/>原文网址如下：<br/><a target="_blank" href="http://bbs.cnhubei.com/dispbbs.asp?BoardID=42&amp;ID=869315">http://bbs.cnhubei.com/dispbbs.asp?BoardID=42&amp;ID=869315</a><br/><br/><a target="_blank" href="http://bbs.10yan.com/dispbbs.asp?BoardID=65&amp;ID=108141">http://bbs.10yan.com/dispbbs.asp?BoardID=65&amp;ID=108141</a><br/><br/><br/>报纸截图如下：<br/><img src="http://www.wd0719.com/blog/attachments/month_0710/920071029231551.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=39</link>
			<title><![CDATA[十一国庆游之浪漫珠海~]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+摄影+]]></category>
			<pubDate>Sun,07 Oct 2007 23:51:18 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=39</guid>	
		<description><![CDATA[<img src="http://www.wd0719.com/blog/attachments/month_0710/z2007107235015.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/c2007107235024.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/o2007107235032.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/p2007107235039.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/r200710723514.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=38</link>
			<title><![CDATA[梅沙踏浪~]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+摄影+]]></category>
			<pubDate>Sun,07 Oct 2007 21:05:58 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=38</guid>	
		<description><![CDATA[<img src="http://www.wd0719.com/blog/attachments/month_0710/c200710721442.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/4200710721455.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/x20071072157.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/c200710721517.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/t2007107224929.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/o200710721526.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=37</link>
			<title><![CDATA[武当功夫~]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+摄影+]]></category>
			<pubDate>Mon,01 Oct 2007 00:49:17 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=37</guid>	
		<description><![CDATA[<img src="http://www.wd0719.com/blog/attachments/month_0710/j200710104852.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/k20071010493.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/w200710104911.jpg" border="0" alt=""/><br/><br/><img src="http://www.wd0719.com/blog/attachments/month_0710/q20071010509.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.wd0719.com/blog/default.asp?id=36</link>
			<title><![CDATA[简繁体的转换问题]]></title>
			<author>binghe3465@163.com(武当剑客)</author>
			<category><![CDATA[+网页+]]></category>
			<pubDate>Sun,30 Sep 2007 00:48:11 +0800</pubDate>
			<guid>http://www.wd0719.com/blog/default.asp?id=36</guid>	
		<description><![CDATA[不是用组件实现,而是用JS动态转换,&nbsp;你也可以下载使用&#34;<a target="_blank" href="http://www.wd0719.com/blog/attachments/month_0709/System.js">attachments/month_0709/System.js</a>&#34;,将他上传到你的站点[这个是UTF-8编码]然后在你要加的地方加如下代码&nbsp;[共有五个参数可以设定]：<br/><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.wd0719.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;a&nbsp;id=&#34;translateLink&#34;&gt;繁體&lt;/a&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&nbsp;src=&#34;your-site/System.js&#34;&gt;&lt;/script&gt;<br/>&lt;script&nbsp;type=&#34;text/javascript&#34;&gt;<br/>var&nbsp;defaultEncoding&nbsp;=&nbsp;0;&nbsp;//默认是否繁体，0-简体，1-繁体<br/>var&nbsp;translateDelay&nbsp;=&nbsp;0;&nbsp;//延迟时间,若不在&lt;/body&gt;前,&nbsp;要设定延迟翻译时间,&nbsp;如100表示100ms,默认为0<br/>var&nbsp;cookieDomain&nbsp;=&nbsp;&#34;<a href="http://your-site/" target="_blank">http://your-site/</a>&#34;;&nbsp;&nbsp;&nbsp;&nbsp;//Cookie地址,&nbsp;一定要设定,&nbsp;通常为你的网址<br/>var&nbsp;msgToTraditionalChinese&nbsp;=&nbsp;&#34;繁體&#34;;&nbsp;//默认切换为繁体时显示的中文字符<br/>var&nbsp;msgToSimplifiedChinese&nbsp;=&nbsp;&#34;简体&#34;;&nbsp;//默认切换为简体时显示的中文字符<br/>var&nbsp;translateButtonId&nbsp;=&nbsp;&#34;translateLink&#34;;&nbsp;//默认互换id<br/>translateInitilization();<br/>&lt;/Script&gt;</div></div><br/><br/>为了不影响页面下载速度,建议将&lt;script&nbsp;......&gt;&nbsp;.....&lt;/script&gt;&nbsp;放在页尾位置]]></description>
		</item>
		
</channel>
</rss>