<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[白河子工作室-ASP成绩查询系统、在线报名系统 - 应用开发]]></title>
<link>http://www.2369.net/blog/</link>
<description><![CDATA[让生活和工作简单起来，是快乐的源泉！]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[12631176@qq.com(王永闯)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>白河子工作室-ASP成绩查询系统、在线报名系统</title>
	<url>http://www.2369.net/blog/images/logos.gif</url>
	<link>http://www.2369.net/blog/</link>
	<description>白河子工作室-ASP成绩查询系统、在线报名系统</description>
</image>

			<item>
			<link>http://www.2369.net/blog/article.asp?id=539</link>
			<title><![CDATA[asp乱码的有效解决办法]]></title>
			<author>12631176@qq.com(admin)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Sat,17 Jun 2017 19:34:45 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=539</guid>
		<description><![CDATA[今天在用utf-8编码用在新的网站上，不想问题还真多，所以找了些文章，帖子，看了看，等下有用的就贴下面了。<br/>今天，我开始把 CODEPAGE=&#34;936&#34; 改成 CODEPAGE=&#34;65001&#34;<br/>把charset=gb2312改成 charset=utf-8<br/>可是还是乱码，只要是脚本用的地方还是乱码，现在终于找到问题了，就是当脚本输出时候，要以utf-8编码输出。<br/>就是要加一句&lt;% Response.Charset = &#34;utf-8&#34; %&gt;<br/><br/>①首先当然是页面本身用utf-8编码，在DW新建页时默认编码定为“Unicode(UTF-8)”<br/>&lt;%@LANGUAGE=&#34;VBscri&#112;t&#34; CODEPAGE=&#34;65001&#34; %&gt;<br/>&#39; ②CODEPAGE=&#34;65001&#34; 告诉服务器页面使用UTF-8编码的<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34;&gt;<br/>&#39; ③charset=utf-8告诉浏览器页面使用UTF-8编码的<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;% Response.Charset = &#34;utf-8&#34; %&gt;<br/>&#39; ④服务器输出编码为utf-8<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/>晕，事情还没有结束<br/>刚开心，问题出来了，刷新后又变成乱码，或者浏览其他的gb2312的页面回来又乱码了。值得又去google了一下，呵呵，还是找到答案了<br/><br/>看看下面的文字，就知道了，所有在后来我加了这个，程序顶端<br/>&lt;%Session.CodePage=65001%&gt;<br/><br/>&lt;%@ codepage=936%&gt;简体中文<br/>&lt;%@ codepage=950%&gt;繁体中文<br/>&lt;%@ codepage=65001%&gt;UTF-8<br/><br/>codepage指定了IIS按什么编码读取传递过来的串串（表单提交，地址栏传递等）。<br/>出乱码的原因也就是网站要整合的时候模块编码不一样引起的。<br/>不要转换任何模块网页的编码该utf-8的还是utf-8，该Gb22312的还是Gb2312<br/><br/>将GB2312模块的conn.asp文件中加入了以下这段代码<br/>&lt;%@LANGUAGE=&#34;VBscri&#112;t&#34; CODEPAGE=&#34;936&#34;%&gt;<br/>&lt;%Session.CodePage=936%&gt;<br/>一切OK!<br/><br/>同样在在Utf-8模块的包文件（如conn.asp，但是要注意conn.asp必须是在第一行调用）最前面加上<br/>&lt;%@LANGUAGE=&#34;VBscri&#112;t&#34; CODEPAGE=&#34;65001&#34;%&gt;<br/>&lt;%Session.CodePage=65001%&gt;<br/><br/><br/><br/><br/><br/><br/><br/><br/>这几天写东西时总是遇到乱码，郁闷，以前从来没研究过编码，只是拿过语句直接用！下午经过研究后我得出以下结论！<br/><br/>首先，选择编码：你必须按照你页面的内容选择编码，不过建议前台后台都使用utf-8编码，方法是在conn.asp中加入：<br/><br/>引用&lt;%@ CODEPAGE=65001 %&gt;<br/>&lt;% Response.CodePage=65001%&gt;<br/>&lt;% Response.Charset=&#34;UTF-8&#34; %&gt;<br/>就可以解决乱码隐患，或者在每个页面一开始加入：<br/>&lt;META HTTP-EQUIV=&#34;Content-Type&#34; CONTENT=&#34;text/html; charset=utf-8&#34; /&gt;<br/>如果有小的页面，直接ASP服务端声明&lt;%Response.Charset=&#34;utf-8&#34;%&gt;，这样基本可以解决乱码问题！<br/><br/>其次，如果某个页面不用utf-8编码，直接加上：&lt;%Response.Charset=&#34;GB2312&#34;%&gt;<br/><br/>还有个问题，就是某个页面是utf-8编码，而另外一个页面是GB2312编码，如何实现跳转而没有乱码。方法是：<br/>给GB2312页面设置：Session.CodePage=936；或者直接用response.redirect实现跳转.<br/><br/>另外，基本常识：<br/>&lt;%@ codepage=936%&gt;简体中文<br/>&lt;%@ codepage=950%&gt;繁体中文<br/>&lt;%@ codepage=65001%&gt;UTF-8<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=519</link>
			<title><![CDATA[多个图标集于一张背景图片在网页上显示指定区域 ]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Mon,28 Nov 2011 19:19:58 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=519</guid>
		<description><![CDATA[多个图标集于一张背景图片在网页上显示指定区域<br/><br/>&nbsp;&nbsp;<br/><br/><br/>早就发现了。。很多大一点的门户里面用的一些背景图都是一个页面只有一张背景图。。所有要用的图标全都放到一张图里面。开始想应该是用位置来控制的，但自己在做网页的时候位置太难调了一直没去实现。。今天在网上找了下，总算找到了篇写这个的文章<br/><br/> <br/><br/>文章一：<br/><br/>CSS Sprites技术不新鲜，早在2005年 CSS Zengarden 的园主 Dave Shea就在ALA发表对该技术的详细阐述。原先只在CSS玩家之间作为一种制作方法流传，后来出来个14 Rules for Faster-Loading Web Sites, 技术人员之间竞相传阅，其中第一条规则Make Fewer HTTP Requests就提到CSS Sprites。于是这个小妖精就火了起来，甚至出现了在线生成工具，势不可挡也。近来国内很多blog都提到CSS Sprites，最著名的例子莫过于 <a href="http://www.google.co.kr/" target="_blank" rel="external">http://www.google.co.kr/</a> 下方的那几个动画。最新发布的YUI中，也是使用到CSS Sprites，几乎都有的CSS装饰图都被一个40×2000的图包办。社交大站Facebook最近也使用了一个22×1150的图片承担了所有icon. 一时间，CSS Sprites无处不在。<br/><br/>原理<br/><br/>我们知道，自CSS革命以降，HTML倾向于语义化，在一般情况下不再在标记里写装饰性的内容而是把呈现的任务交给了CSS。GUI是缤纷多彩的，少不了各种漂亮的图来装点。新时代的生产方式是，在HTML布满各种各样的钩子（hook），然后交由CSS来处理。在需要用到图片的时候，现阶段是通过CSS属性<br/><br/>background-image<br/><br/>组合<br/><br/>background-repeat<br/><br/>, <br/><br/>background-position<br/><br/>等来实现（题外话：为何我提现阶段，因为未来浏览器若支持<br/><br/>content<br/><br/>则又新增另外的实现方法）。我们的主角是，你一定猜到了，就是<br/><br/>background-position<br/><br/>。通过调整<br/><br/>background-position<br/><br/>的数值，背景图片就能以不同的面貌出现在你眼前。其实图片整体面貌没有变，由于图片位置的改变，你看到只该看到的而已。就好比手表上的日期，你今天看到是21，明天看到是22，是因为它的position往上跳了一格。所以你也大概了解到，CSS Sprites一般只能使用到固定大小的盒子（box）里，这样才能够遮挡住不应该看到的部分。<br/><br/>我们使用YUI的sprite.png举个例子，假如我们有这么一段代码，<br/><br/>max<br/><br/>代表最大化，<br/><br/>min<br/><br/>代表最小化，我们需要给它们配上相应的漂亮图片（这样我们的网站才能够吸引人，才可以卖钱，才可以到佛罗里达晒太阳:D）：<br/><br/>最大化<br/><br/>最小化<br/><br/>这两个<br/><br/>class<br/><br/>都使用同一个图片：<br/><br/>.min, .max { width:16px; height:16px; background-image:url(<a href="http://developer.yahoo.com/yui/build/assets/skins/sam/sprite.png" target="_blank" rel="external">http://developer.yahoo.com/yui/build/assets/skins/sam/sprite.png</a>); background-repeat: no-repeat; text-indent:-999em; }<br/><br/>效果如下：<br/><br/>最大化<br/><br/>最小化<br/><br/>我们看到一团灰，没错，因为我们还没有指定<br/><br/>background-position<br/><br/>，默认为 <br/><br/>0 0<br/><br/>，可以看下sprite.png, 处于这个位置正是灰块。好了，我们要找到代表最大化的加号和代表最小化的减号的位置找出来。经过测量，最大化按钮位于Y轴的350px处，最小化按钮位于Y轴400px处。想一想我们如何才能让它们能够显示出来呢，明显，要向上提升sprite.png，得到代码如下：<br/><br/>.max { background-position: 0 -350px; } .min { background-position: 0 -400px; }<br/><br/>耶，我们成功了：<br/><br/>最大化<br/><br/>最小化<br/><br/>（注意：为了举例的方便，本例子直接在HTML内置样式，切勿在实践中的非特殊情况使用这种方式）。<br/><br/>优点<br/><br/>我们从前面了解到，CSS Sprites为什么突然跑火，跟能够提升网站性能有关。显而易见，这是它的巨大优点之一。普通制作方式下的大量图片，现在合并成一个图片，大大减少了HTTP的连接数。HTTP连接数对网站的加载性能有重要影响。<br/><br/>缺点<br/><br/>至于可维护性，这是一般双刃剑。可能有人喜欢，有人不喜欢，因为每次的图片改动都得往这个图片删除或添加内容，显得稍微繁琐。而且算图片的位置（尤其是这种上千px的图）也是一件颇为不爽的事情。当然，在性能的口号下，这些都是可以克服的。<br/><br/>由于图片的位置需要固定为某个绝对数值，这就失去了诸如<br/><br/>center<br/><br/>之类的灵活性。<br/><br/>前面我们也提到了，必须限制盒子的大小才能使用CSS Sprites，否则可能会出现出现干扰图片的情况。这就是说，在一些需要非单向的平铺背景和需要网页缩放的情况下，CSS Sprites并不合适。YUI的解决方式是，加大图片之间的距离，这样可以保持有限度的缩放。<br/><br/>总结<br/><br/>性能压倒一切。CSS Sprites是值得推广的一种技术。尤其适宜用于FIR，比如固定大小的icon替换。为保持兼容性，图片中的各个部分保持一定的距离是一种不错的做法。<br/><br/> <br/><br/>文章二：<br/><br/>本文是我的一点研究心得，跟大家分享一下。不过我也是新人，所以，说得不对的地方，一定请大家谅解。<br/><br/>　　现在的网站，内容在采集工具的帮助下，实在是不成问题了，那么什么让看到网站的人留下那？或者很多人回答漂亮？其实我个人的感觉是速度。<br/><br/>　　很多人说，要速度，一定要div＋css，其实也不全都如此。个人感觉，速度跟很多因素都有关系，比如全站图片，代码优化、css太长，也会导致速度很慢。有点跑题了。<br/><br/>　　平时我写css代码，一般来说，一个大站点，我都会写几个css来调用。比如首页可能会调用2－3个css。其中有通用部分，也有不通用的部分，这样会让css读取效率提高。本地测试，css文件代码超过1000行，定义class或者id数量超过400个的一个css打开载入页面时间是2－3个css代码不超过500行的css文件速度的2倍左右。所以，通常我会用几个css来让网站调用。<br/><br/>　　又跑题了。<br/><br/>　　下面说下如何让一个背景图片全站通用。以yahoo.com为例子（注意，是英文的yahoo，不是中文的）。英文yahoo的编写代码不太规范，但是很多大胆的尝试都不错。<br/><br/>　　仔细分析他们的代码，全站背景图片其实就是2个，1个是1象素700长的，另外一个是4象素4300长度的。grd-4px.gif跟grd-1px.gif（因为高度太长，我就不在这里贴出来了）。全站通用一个背景图片，是提高速度的很大因素。这一个背景，可能是不同的位置不同的颜色样子，合成的一个但是可以在不同的位置调用。<br/><br/>　　以动易来说，如果要仿yahoo的页面非常容易。通用css可以这样分类：<br/><br/>　　1、标题背景<br/><br/>　　2、css表格通用背景<br/><br/>　　3、内容背景<br/><br/>　　4、站内外搜索背景<br/><br/>　　那么，如何定义呢？使用以下CSS定义即可：<br/><br/>&nbsp;&nbsp;background-image:url(/Lectures/UploadFiles_3793/200612/20061210101340854.gif); <br/><br/>&nbsp;&nbsp;background-repeat:repeat-x;<br/><br/>&nbsp;&nbsp;background-position:0 -530px;<br/> <br/><br/><br/>　　注意最后一个定义，这个是通用一个背景图片的关键，就是调用背景图片的不同位置作为背景……<br/><br/>　　比如：定义“background-position:0 -530px;”，调用这个背景图片530px高度部分作为背景，从最左边开始铺垫。<br/><br/>附：背景(Backgrounds)的属性： <br/><br/>background-color:#f00;<br/><br/>background-image:url(background.gif);<br/><br/>background-repeat:no-repeat;<br/><br/>background-attachment:fixed;<br/><br/>background-position:0 0;<br/><br/>可以缩写为一句：background:#f00 url(background.gif) no-repeat fixed 0 0;<br/><br/>语法是background:color image repeat attachment position;<br/><br/>您可以省略其中一个或多个属性值，如果省略，该属性值将用浏览器默认值，默认值为：<br/><br/>color: transparent<br/><br/>image: none<br/><br/>repeat: repeat<br/><br/>attachment: scroll<br/><br/>position: 0% 0%<br/> <br/><br/><br/>　　这就是yahoo页面上面最与众不同的地方，纵观国内门户网站、网易、qq新郎搜狐都没有如此大胆的尝试。yahoo的页面代码很负责，并且通用了一个css，还有部分css定义是放在页面上面的，不知道是为了防止 css 偷学还是其他含义。的确，全部分析下来很难，因为同一个.ht的定义，居然分了8个部分才定义完所有属性。css里面几部分，页面里面居然还有……<br/><br/>　　yahoo跟msn的英文页面是类似的，msn的英文页面还好一些，大家也可以分析一下看看。但是yahoo的英文页面，如果真的学会了，相信对大家理解css以及div的感觉以及水平，会有很大的提高。<br/><br/>　　我真的是个新手，接触divcss 时间才3个月。。接触动易2个月而已。<br/><br/>－－－－－－－－－－－－－－－－－－－－－－－－－－<br/><br/>　　简约、洁净，似乎是目前门户站点开始流行的一种页面风格，不同的蓝色铺垫出来的，yahoo这个页面，是可以在动易仿制出来的。页面解析速度满快。图片我发到交流板块去了，有兴趣您可以去看看。<br/><br/>　　看了很多大家的帖子，常常不知道问题解决答案了就开始问，可是看看问的问题，实在很难让别人回答你，不是太难，而是实在太简单。这里很多高手相信不是喜欢作普及教师的，因此，很多时候不如常常自学一下，然后多多搜索一下吧……<br/><br/>　　每个人都不是笨笨的。分享给大家我学div css的一些心得，希望对大家有所帮助。<br/><br/>－－－－－－－－－－－－－－－－－－－－－－－－－－<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=518</link>
			<title><![CDATA[无组件上传漏洞的修补方法]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Tue,08 Nov 2011 10:55:24 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=518</guid>
		<description><![CDATA[sub upload_0()set upload=new UpFile_Class ”建立上传对象<br/>upload.GetDate (int(Forum_Setting(56))*1024) ‘取得上传数据,不限大小<br/>iCount=0<br/><br/>if upload.err &gt; 0 then<br/>sel&#101;ct case upload.err<br/>case 1<br/>Response.Write “请先选择你要上传的文件　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]”<br/>case 2<br/>Response.Write “图片大小超过了限制 “&amp;Forum_Setting(56)&amp;”K　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]”<br/>end sel&#101;ct<br/>exit sub<br/>else<br/>formPath=upload.form(“filepath”)<br/>”在目录后加(/)<br/>if right(formPath,1)&lt;&gt;”/” then formPath=formPath&amp;”/”<br/><br/>for each formName in upload.file ”列出所有上传了的文件<br/>set file=upload.file(formName) ”生成一个文件对象<br/>if file.filesize&lt;100 then<br/>response.write “请先选择你要上传的图片　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]”<br/>response.end<br/>end if<br/><br/>fileExt=lcase(file.FileExt)<br/>if CheckFileExt(fileEXT)=false then<br/>response.write “文件格式不正确　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]”<br/>response.end<br/>end if<br/><br/>randomize<br/>ranNum=int(90000*rnd)+10000<br/>filename=formPath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;”.”&amp;fileExt<br/>‘测试文件字符是否非法<br/><br/>Dim R_Char,R_i<br/>for R_i=1 to Len(filename)<br/>R_Char=ASC(MID(filename,R_i,1))<br/>if R_Char=0 then<br/>response.write “做点有意义的事情好不好，黑客是研究技术的，不是破坏的”<br/>response.end<br/>end if<br/>Next<br/><br/>if file.FileSize&gt;0 then ”如果 FileSize &gt; 0 说明有文件数据<br/>file.SaveToFile Server.mappath(filename) ”保存文件<br/>‘ response.write file.FilePath&amp;file.FileName&amp;” (“&amp;file.FileSize&amp;”) =&gt; “&amp;formPath&amp;File.FileName&amp;” 成功!&lt;br&gt;”<br/>response.write “&lt;script&gt;parent.document.forms[0].myface.value=’”&amp;FileName&amp;”‘&lt;/script&gt;”<br/>iCount=iCount+1<br/>end if<br/>set file=nothing<br/>next<br/>set upload=nothing<br/>session(“upface”)=”done”<br/>Htmend iCount&amp;” 个文件上传结束!”<br/><br/>end ifend sub<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=517</link>
			<title><![CDATA[一个常见经典的上传程序漏洞的修补过程]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Tue,08 Nov 2011 10:29:11 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=517</guid>
		<description><![CDATA[<br/>&nbsp;&nbsp;本来以为经过国内这些大牛的血洗，上传漏洞应该变成了传说，但是我还是能经常遇到好多人向我请教，找我帮忙修补上传漏洞，以前JESSICA发我一个上传程序，找我帮忙修补，后来又有N多人也拿着同样的程序来找我求助，而这些程序呢，几乎写法是一模一样的，可能是有些程序员对上传程序不太熟悉，直接把别人的程序拿过来用了吧，所以别人程序中的漏洞原样给照搬过来了。下面我们来看看这段经典的漏洞代码是怎么样写的，又是怎么样引起漏洞的。<br/><br/>upfile.asp<br/><br/>&lt;!--#include file=&#34;Inc/config.asp&#34;--&gt;<br/>&lt;!--#include file=&#34;Inc/upload.asp&#34;--&gt;<br/>&lt;%<br/>Server.ScriptTimeOut = 1800<br/>const upload_type=0&nbsp;&nbsp; &#39;上传方法：0=无惧无组件上传类，1=FSO上传 2=lyfupload，3=aspupload，4=chinaaspupload<br/><br/>dim upload,file,formName,SavePath,filename,fileExt<br/>dim upNum<br/>dim EnableUpload<br/>dim Forumupload<br/>dim ranNum<br/>dim uploadfiletype<br/>dim msg,founderr<br/>msg=&#34;&#34;<br/>founderr=false<br/>EnableUpload=false<br/>SavePath = SaveUpFilesPath&nbsp;&nbsp; &#39;存放上传文件的目录<br/>if right(SavePath,1)&lt;&gt;&#34;/&#34; then SavePath=SavePath&amp;&#34;/&#34; &#39;在目录后加(/)<br/>%&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;%<br/>if EnableUploadFile=&#34;No&#34; then<br/> response.write &#34;系统未开放文件上传功能&#34;<br/>else<br/> &#39;if session(&#34;name&#34;)=&#34;&#34; then<br/> &#39; response.Write(&#34;请登录后再使用本功能！&#34;)<br/> &#39;else<br/>&nbsp;&nbsp;sel&#101;ct case upload_type<br/>&nbsp;&nbsp; case 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;call upload_0()&nbsp;&nbsp;&#39;使用化境无组件上传类<br/>&nbsp;&nbsp; case else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.write &#34;本系统未开放插件功能&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.end<br/>&nbsp;&nbsp;end sel&#101;ct<br/> &#39;end if<br/>end if<br/>%&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/>&lt;%<br/>sub upload_0()&nbsp;&nbsp;&nbsp;&nbsp;&#39;使用化境无组件上传类<br/> set upload=new upload_file&nbsp;&nbsp;&nbsp;&nbsp;&#39;建立上传对象<br/> for each formName in upload.file &#39;列出所有上传了的文件<br/>&nbsp;&nbsp;set file=upload.file(formName)&nbsp;&nbsp;&#39;生成一个文件对象<br/>&nbsp;&nbsp;if file.filesize&lt;100 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msg=&#34;请先选择你要上传的文件！&#34;<br/>&nbsp;&nbsp; founderr=true<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;if file.filesize&gt;(MaxFileSize*1024) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msg=&#34;文件大小超过了限制，最大只能上传&#34; &amp; CStr(MaxFileSize) &amp; &#34;K的文件！&#34;<br/>&nbsp;&nbsp; founderr=true<br/>&nbsp;&nbsp;end if<br/><br/>&nbsp;&nbsp;fileExt=lcase(file.FileExt)<br/>&nbsp;&nbsp;Forumupload=split(UpFileType,&#34;|&#34;)<br/>&nbsp;&nbsp;for i=0 to ubound(Forumupload)<br/>&nbsp;&nbsp; if fileEXT=trim(Forumupload(i)) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;EnableUpload=true<br/>&nbsp;&nbsp;&nbsp;&nbsp;exit for<br/>&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;next<br/>&nbsp;&nbsp;if fileEXT=&#34;asp&#34; o&#114; fileEXT=&#34;asa&#34; o&#114; fileEXT=&#34;aspx&#34; then<br/>&nbsp;&nbsp; EnableUpload=false<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;if EnableUpload=false then<br/>&nbsp;&nbsp; msg=&#34;这种文件类型不允许上传！\n\n只允许上传这几种文件类型：&#34; &amp; UpFileType<br/>&nbsp;&nbsp; founderr=true<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;strJS=&#34;&lt;SCRIPT language=javascript&gt;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;if founderr&lt;&gt;true then<br/>&nbsp;&nbsp; randomize<br/>&nbsp;&nbsp; ranNum=int(900*rnd)+100<br/>&nbsp;&nbsp; filename=SavePath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;&#34;.&#34;&amp;fileExt<br/>&nbsp;&nbsp; file.SaveToFile Server.mappath(FileName)&nbsp;&nbsp; &#39;保存文件<br/><br/>&nbsp;&nbsp; msg=&#34;上传文件成功！&#34;<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.HtmlEdit.focus();&#34; &amp; vbcrlf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;var range = parent.HtmlEdit.document.sel&#101;ction.cr&#101;ateRange();&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; FileType=right(fileExt,3)<br/>&nbsp;&nbsp; sel&#101;ct case FileType<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case &#34;jpg&#34;,&#34;gif&#34;,&#34;png&#34;,&#34;bmp&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;range.pasteHTML(&#39;&lt;img src=&#34; &amp; filename &amp; &#34;&gt;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp;case &#34;swf&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;range.pasteHTML(&#39;&lt;object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;param name=movie value=&#34; &amp; FileName &amp; &#34;&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;param name=quality value=high&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;embed src=&#34; &amp; FileName &amp; &#34; quality=high pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;/embed&gt;&lt;/object&gt;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp;case else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;range.text=&#39;[upload=&#34; &amp; FileType &amp; &#34;]&#34; &amp; FileName &amp; &#34;[/upload]&#39;;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp; end sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.DefaultPicUrl.value=&#39;&#34; &amp; FileName &amp; &#34;&#39;;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.DefaultPicList.options[parent.parent.form1.DefaultPicList.length] = new Option(&#39;&#34; &amp; filename &amp; &#34;&#39;,&#39;&#34; &amp; filename &amp; &#34;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.DefaultPicList.sel&#101;ctedIndex+=1;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;if(parent.parent.form1.UploadFiles.value==&#39;&#39;){&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.UploadFiles.value+=&#39;&#34; &amp; filename &amp; &#34;&#39;;}&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;else{&#34; &amp; vbcrlf &amp; &#34;parent.parent.form1.UploadFiles.value+=&#39;|&#39;+&#39;&#34; &amp; filename &amp; &#34;&#39;;}&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;strJS=strJS &amp; &#34;alert(&#39;&#34; &amp; msg &amp; &#34;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp;strJS=strJS &amp; &#34;history.go(-1);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;strJS=strJS &amp; &#34;parent.HtmlEdit.focus();&#34; &amp; vbcrlf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;strJS=strJS &amp; &#34;&lt;/script&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.write strJS<br/>&nbsp;&nbsp;set file=nothing<br/> next<br/> set upload=nothing<br/>end sub<br/>%&gt;<br/><br/> <br/><br/><br/>Inc/config.asp<br/><br/>以下是引用片段：<br/>&lt;%<br/>Const MaxPerPage_Default=10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;首页每页文章数<br/>Const MaxPerPage_Search=10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;文章搜索页每页文章数<br/>Const MaxBigClassNumPerLine=10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;每行显示文章大类数<br/>Const MaxSmallClassNumPerLine=10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;每行显示文章小类数<br/>Const ShowSmallClassType_Default=&#34;Menu&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;首页的子栏目显示样式<br/>Const ShowSmallClassType_Search=&#34;Tree&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;文章搜索页的子栏目显示样式<br/>Const ShowSmallClassType_Article=&#34;Top&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;文章内容页的子栏目显示样式<br/>Const ShowSmallClassType_Other=&#34;Menu&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;其他页面的子栏目显示样式<br/>Const ShowContentByPage=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;文章内容是否分页显示<br/>Const MaxPerPage_Content=200000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;每页显示大约字符数<br/>Const ShowRunTime=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;是否显示页面执行时间<br/>Const EnableArticleCheck=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;是否启用文章审核功能<br/>Const EnableUploadFile=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;是否开放文件上传<br/>Const EnableLinkReg=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;是否开放友情链接申请<br/>Const PopAnnounce=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;是否弹出公告窗口<br/>Const HitsOfHot=500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;热门文章点击数<br/>Const MailObject=&#34;Jmail&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;邮件发送组件<br/>Const MaxFileSize=3000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;上传文件大小限制<br/>Const SaveUpFilesPath=&#34;UploadFiles&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;存放上传文件的目录<br/>Const UpFileType=&#34;gif|jpg&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;允许的上传文件类型<br/>Const DelUpFiles=&#34;Yes&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;删除文章时是否同时删除文章中的上传文件<br/>%&gt; <br/><br/><br/>include file=&#34;Inc/upload.asp<br/><br/>以下是引用片段：<br/>&lt;%<br/>&#39;----------------------------------------------------------------------<br/>&#39;转发时请保留此声明信息,这段声明不并会影响你的速度!<br/>&#39;*******************&nbsp;&nbsp;&nbsp;&nbsp;无组件上传类&nbsp;&nbsp; ********************************<br/>&#39;修改者:梁无惧<br/>&#39;电子邮件:yjlrb@21cn.com<br/>&#39;网站:<a href="http://www.25cn.com" target="_blank" rel="external">http://www.25cn.com</a><br/>&#39;原作者:稻香老农<br/>&#39;原作者网站:<a href="http://www.5xsoft.com" target="_blank" rel="external">http://www.5xsoft.com</a><br/>&#39;声明:此上传类是在化境编程界发布的无组件上传类的基础上修改的.<br/>&#39;在与化境编程界无组件上传类相比,速度快了将近50倍,当上传4M大小的文件时<br/>&#39;服务器只需要10秒就可以处理完,是目前最快的无组件上传程序,当前版本为0.96<br/>&#39;源代码公开,免费使用,对于商业用途,请与作者联系<br/>&#39;文件属性：例如上传文件为c:\myfile\doc.txt<br/>&#39;FileName&nbsp;&nbsp;&nbsp;&nbsp;文件名&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符串&nbsp;&nbsp;&nbsp;&nbsp;&#34;doc.txt&#34;<br/>&#39;FileSize&nbsp;&nbsp;&nbsp;&nbsp;文件大小&nbsp;&nbsp;&nbsp;&nbsp; 数值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1210<br/>&#39;FileType&nbsp;&nbsp;&nbsp;&nbsp;文件类型&nbsp;&nbsp;&nbsp;&nbsp; 字符串&nbsp;&nbsp;&nbsp;&nbsp;&#34;text/plain&#34;<br/>&#39;FileExt&nbsp;&nbsp;&nbsp;&nbsp; 文件扩展名&nbsp;&nbsp; 字符串&nbsp;&nbsp;&nbsp;&nbsp;&#34;txt&#34;<br/>&#39;FilePath&nbsp;&nbsp;&nbsp;&nbsp;文件原路径&nbsp;&nbsp; 字符串&nbsp;&nbsp;&nbsp;&nbsp;&#34;c:\myfile&#34;<br/>&#39;使用时注意事项:<br/>&#39;由于Scripting.Dictionary区分大小写,所以在网页及ASP页的项目名都要相同的大小<br/>&#39;写,如果人习惯用大写或小写,为了防止出错的话,可以把<br/>&#39;sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)<br/>&#39;改为<br/>&#39;(小写者)sFormName = LCase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))<br/>&#39;(大写者)sFormName = UCase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))<br/>&#39;**********************************************************************<br/>&#39;----------------------------------------------------------------------<br/>dim oUpFileStream<br/><br/>Class upload_file<br/>&nbsp;&nbsp;<br/>dim Form,File,Version<br/>&nbsp;&nbsp;<br/>Private Sub Class_Initialize <br/>&nbsp;&nbsp; &#39;定义变量<br/>&nbsp;&nbsp;dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo<br/>&nbsp;&nbsp;dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName<br/>&nbsp;&nbsp;dim iFindStart,iFindEnd<br/>&nbsp;&nbsp;dim iFormStart,iFormEnd,sFormName<br/>&nbsp;&nbsp; &#39;代码开始<br/>&nbsp;&nbsp;Version=&#34;无组件上传类 Version 0.96&#34;<br/>&nbsp;&nbsp;set Form = Server.Cr&#101;ateObject(&#34;Scripting.Dictionary&#34;)<br/>&nbsp;&nbsp;set File = Server.Cr&#101;ateObject(&#34;Scripting.Dictionary&#34;)<br/>&nbsp;&nbsp;if Request.TotalBytes &lt; 1 then Exit Sub<br/>&nbsp;&nbsp;set tStream = Server.Cr&#101;ateObject(&#34;adodb.stream&#34;)<br/>&nbsp;&nbsp;set oUpFileStream = Server.Cr&#101;ateObject(&#34;adodb.stream&#34;)<br/>&nbsp;&nbsp;oUpFileStream.Type = 1<br/>&nbsp;&nbsp;oUpFileStream.Mode = 3<br/>&nbsp;&nbsp;oUpFileStream.Open <br/>&nbsp;&nbsp;oUpFileStream.Write Request.BinaryRead(Request.TotalBytes)<br/>&nbsp;&nbsp;oUpFileStream.Position=0<br/>&nbsp;&nbsp;RequestBinDate = oUpFileStream.Read <br/>&nbsp;&nbsp;iFormEnd = oUpFileStream.Size<br/>&nbsp;&nbsp;bCrLf = chrB(13) &amp; chrB(10)<br/>&nbsp;&nbsp;&#39;取得每个项目之间的分隔符<br/>&nbsp;&nbsp;sStart = MidB(RequestBinDate,1, InStrB(1,RequestBinDate,bCrLf)-1)<br/>&nbsp;&nbsp;iStart = LenB (sStart)<br/>&nbsp;&nbsp;iFormStart = iStart+2<br/>&nbsp;&nbsp;&#39;分解项目<br/>&nbsp;&nbsp;Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;iInfoEnd = InStrB(iFormStart,RequestBinDate,bCrLf &amp; bCrLf)+3<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Mode = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.Position = iFormStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Position = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Type = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Charset =&#34;gb2312&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sInfo = tStream.ReadText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;取得表单项目名称<br/>&nbsp;&nbsp;&nbsp;&nbsp;iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart)-1<br/>&nbsp;&nbsp;&nbsp;&nbsp;iFindStart = InStr(22,sInfo,&#34;name=&#34;&#34;&#34;,1)+6<br/>&nbsp;&nbsp;&nbsp;&nbsp;iFindEnd = InStr(iFindStart,sInfo,&#34;&#34;&#34;&#34;,1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;如果是文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;if InStr (45,sInfo,&#34;filename=&#34;&#34;&#34;,1) &gt; 0 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set oFileInfo= new FileInfo<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;取得文件属性<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iFindStart = InStr(iFindEnd,sInfo,&#34;filename=&#34;&#34;&#34;,1)+10<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iFindEnd = InStr(iFindStart,sInfo,&#34;&#34;&#34;&#34;,1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FileName = GetFileName(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FilePath = GetFilePath(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FileExt = GetFileExt(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iFindStart = InStr(iFindEnd,sInfo,&#34;Content-Type: &#34;,1)+14<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iFindEnd = InStr(iFindStart,sInfo,vbCr)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FileStart = iInfoEnd<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FileSize = iFormStart -iInfoEnd -2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oFileInfo.FormName = sFormName<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.add sFormName,oFileInfo<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;如果是表单项目<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Mode = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.Position = iInfoEnd <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Position = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Type = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tStream.Charset = &#34;gb2312&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sFormvalue = tStream.ReadText <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.Add sFormName,sFormvalue<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;tStream.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;iFormStart = iFormStart+iStart+2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;如果到文件尾了就退出<br/>&nbsp;&nbsp;&nbsp;&nbsp;loop until (iFormStart+2) = iFormEnd <br/>&nbsp;&nbsp;RequestBinDate=&#34;&#34;<br/>&nbsp;&nbsp;set tStream = nothing<br/>End Sub<br/><br/>Private Sub Class_Terminate&nbsp;&nbsp;<br/>&nbsp;&nbsp;&#39;清除变量及对像<br/>&nbsp;&nbsp;if not Request.TotalBytes&lt;1 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;set oUpFileStream =nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;Form.RemoveAll<br/>&nbsp;&nbsp;File.RemoveAll<br/>&nbsp;&nbsp;set Form=nothing<br/>&nbsp;&nbsp;set File=nothing<br/>End Sub<br/>&nbsp;&nbsp; <br/> &#39;取得文件路径<br/>Private function GetFilePath(FullPath)<br/>&nbsp;&nbsp;If FullPath &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetFilePath = left(FullPath,InStrRev(FullPath, &#34;\&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetFilePath = &#34;&#34;<br/>&nbsp;&nbsp;End If<br/>End function<br/> <br/>&#39;取得文件名<br/>Private function GetFileName(FullPath)<br/>&nbsp;&nbsp;If FullPath &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetFileName = mid(FullPath,InStrRev(FullPath, &#34;\&#34;)+1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetFileName = &#34;&#34;<br/>&nbsp;&nbsp;End If<br/>End function<br/><br/>&#39;取得扩展名<br/>Private function GetFileExt(FullPath)<br/>&nbsp;&nbsp;If FullPath &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetFileExt = mid(FullPath,InStrRev(FullPath, &#34;.&#34;)+1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetFileExt = &#34;&#34;<br/>&nbsp;&nbsp;End If<br/>End function<br/><br/>End Class<br/><br/>&#39;文件属性类<br/>Class FileInfo<br/>&nbsp;&nbsp;dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt<br/>&nbsp;&nbsp;Private Sub Class_Initialize <br/>&nbsp;&nbsp;&nbsp;&nbsp;FileName = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;FilePath = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileSize = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileStart= 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;FormName = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileType = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileExt = &#34;&#34;<br/>&nbsp;&nbsp;End Sub<br/>&nbsp;&nbsp;<br/>&#39;保存文件方法<br/> Public function SaveToFile(FullPath)<br/>&nbsp;&nbsp;&nbsp;&nbsp;dim oFileStream,ErrorChar,i<br/>&nbsp;&nbsp;&nbsp;&nbsp;SaveToFile=1<br/>&nbsp;&nbsp;&nbsp;&nbsp;if trim(fullpath)=&#34;&#34; o&#114; right(fullpath,1)=&#34;/&#34; then exit function<br/>&nbsp;&nbsp;&nbsp;&nbsp;set oFileStream=Cr&#101;ateObject(&#34;Adodb.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;oFileStream.Type=1<br/>&nbsp;&nbsp;&nbsp;&nbsp;oFileStream.Mode=3<br/>&nbsp;&nbsp;&nbsp;&nbsp;oFileStream.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.position=FileStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;oUpFileStream.copyto oFileStream,FileSize<br/>&nbsp;&nbsp;&nbsp;&nbsp;oFileStream.SaveToFile FullPath,2<br/>&nbsp;&nbsp;&nbsp;&nbsp;oFileStream.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;set oFileStream=nothing <br/>&nbsp;&nbsp;&nbsp;&nbsp;SaveToFile=0<br/>&nbsp;&nbsp;end function<br/>End Class<br/>%&gt;<br/> <br/><br/><br/>漏洞利用方法<br/><br/>以下是引用片段：<br/>&lt;form action=http://www.qhwins.com/upfile.asp method=post name=form1 enctype=multipart/form-data&gt;<br/>&lt;form name=&#34;form&#34; method=&#34;post&#34; action=&#34;Adm_UpFile.asp&#34; enctype=&#34;multipart/form-data&#34;&gt;<br/>&nbsp;&nbsp;&lt;td valign=&#34;middle&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#34;file&#34; name=&#34;file1&#34; size=&#34;40&#34;&gt;&lt;br /&gt;&lt;br /&gt;<br/>&nbsp;&nbsp;&amp;nbsp;&lt;/a&gt; &lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td valign=&#34;middle&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#34;file&#34; name=&#34;file2&#34; size=&#34;40&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;nbsp;&lt;input type=&#34;submit&#34; name=&#34;Submit&#34; value=&#34;上传&#34;&gt;&lt;/a&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br/> &lt;/form&gt;<br/>&lt;form&gt; <br/><br/><br/>本来要详解一下漏洞产生的原因，结果没有时间，我直接给出修补后的代码吧，有兴趣的人加我QQ，没有兴趣的人直接拿去用吧。<br/><br/>upfile.asp<br/><br/><br/>&lt;!--#include file=&#34;Inc/config.asp&#34;--&gt;<br/>&lt;!--#include file=&#34;Inc/upload.asp&#34;--&gt;<br/>&lt;%<br/>&#39;孤行一鬼修改上传漏洞 西宁威势电子信息服务有限公司提供技术支持 <a href="http://www.qhwins.com" target="_blank" rel="external">http://www.qhwins.com</a><br/>Server.ScriptTimeOut = 1800<br/>const upload_type=0&nbsp;&nbsp; &#39;上传方法：0=无惧无组件上传类，1=FSO上传 2=lyfupload，3=aspupload，4=chinaaspupload<br/><br/>dim upload,file,formName,SavePath,filename,fileExt<br/>dim upNum<br/>dim EnableUpload<br/>dim Forumupload<br/>dim ranNum<br/>dim uploadfiletype<br/>dim msg,founderr<br/>msg=&#34;&#34;<br/>founderr=false<br/>EnableUpload=false<br/>SavePath = SaveUpFilesPath&nbsp;&nbsp; &#39;存放上传文件的目录<br/>if right(SavePath,1)&lt;&gt;&#34;/&#34; then SavePath=SavePath&amp;&#34;/&#34; &#39;在目录后加(/)<br/>%&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;%<br/>if EnableUploadFile=&#34;No&#34; then<br/> response.write &#34;系统未开放文件上传功能&#34;<br/>else<br/> &#39;if session(&#34;name&#34;)=&#34;&#34; then<br/> &#39; response.Write(&#34;请登录后再使用本功能！&#34;)<br/> &#39;else<br/>&nbsp;&nbsp;sel&#101;ct case upload_type<br/>&nbsp;&nbsp; case 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;call upload_0()&nbsp;&nbsp;&#39;使用化境无组件上传类<br/>&nbsp;&nbsp; case else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.write &#34;本系统未开放插件功能&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.end<br/>&nbsp;&nbsp;end sel&#101;ct<br/> &#39;end if<br/>end if<br/>%&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/>&lt;%<br/>sub upload_0()&nbsp;&nbsp;&nbsp;&nbsp;&#39;使用化境无组件上传类<br/> set upload=new upload_file&nbsp;&nbsp;&nbsp;&nbsp;&#39;建立上传对象<br/> for each formName in upload.file &#39;列出所有上传了的文件<br/>&nbsp;&nbsp;set file=upload.file(formName)&nbsp;&nbsp;&#39;生成一个文件对象<br/>&nbsp;&nbsp;if file.filesize&lt;100 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msg=&#34;请先选择你要上传的文件！&#34;<br/>&nbsp;&nbsp; founderr=true<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;if file.filesize&gt;(MaxFileSize*1024) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;msg=&#34;文件大小超过了限制，最大只能上传&#34; &amp; CStr(MaxFileSize) &amp; &#34;K的文件！&#34;<br/>&nbsp;&nbsp; founderr=true<br/>&nbsp;&nbsp;end if<br/><br/>&nbsp;&nbsp;fileExt=lcase(file.FileExt)<br/>&nbsp;&nbsp;Forumupload=split(UpFileType,&#34;|&#34;)<br/><br/>&nbsp;&nbsp;for i=0 to ubound(Forumupload)<br/>&nbsp;&nbsp; if fileEXT=trim(Forumupload(i)) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;EnableUpload=true<br/>&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp;EnableUpload=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;exit for<br/>&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;next<br/><br/>&nbsp;&nbsp;if fileEXT=&#34;asp&#34; o&#114; fileEXT=&#34;asa&#34; o&#114; fileEXT=&#34;aspx&#34; then<br/>&nbsp;&nbsp; EnableUpload=false<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;if EnableUpload=false then<br/>&nbsp;&nbsp; msg=&#34;这种文件类型不允许上传！\n\n孤行一鬼修补此上传漏洞（<a href="http://www.qhwins.com" target="_blank" rel="external">http://www.qhwins.com</a>），只允许上传这几种文件类型：&#34; &amp; UpFileType<br/>&nbsp;&nbsp; founderr=true<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;strJS=&#34;&lt;SCRIPT language=javascript&gt;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;if founderr&lt;&gt;true then<br/>&nbsp;&nbsp; randomize<br/>&nbsp;&nbsp; ranNum=int(900*rnd)+100<br/>&nbsp;&nbsp; filename=SavePath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;&#34;.&#34;&amp;fileExt<br/>&nbsp;&nbsp; file.SaveToFile Server.mappath(FileName)&nbsp;&nbsp; &#39;保存文件<br/><br/>&nbsp;&nbsp; msg=&#34;上传文件成功！&#34;<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.HtmlEdit.focus();&#34; &amp; vbcrlf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;var range = parent.HtmlEdit.document.sel&#101;ction.cr&#101;ateRange();&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; FileType=right(fileExt,3)<br/>&nbsp;&nbsp; sel&#101;ct case FileType<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case &#34;jpg&#34;,&#34;gif&#34;,&#34;png&#34;,&#34;bmp&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;range.pasteHTML(&#39;&lt;img src=&#34; &amp; filename &amp; &#34;&gt;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp;case &#34;swf&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;range.pasteHTML(&#39;&lt;object classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;param name=movie value=&#34; &amp; FileName &amp; &#34;&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;param name=quality value=high&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;embed src=&#34; &amp; FileName &amp; &#34; quality=high pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;&lt;/embed&gt;&lt;/object&gt;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp;case else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;range.text=&#39;[upload=&#34; &amp; FileType &amp; &#34;]&#34; &amp; FileName &amp; &#34;[/upload]&#39;;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp; end sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.DefaultPicUrl.value=&#39;&#34; &amp; FileName &amp; &#34;&#39;;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.DefaultPicList.options[parent.parent.form1.DefaultPicList.length] = new Option(&#39;&#34; &amp; filename &amp; &#34;&#39;,&#39;&#34; &amp; filename &amp; &#34;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.DefaultPicList.sel&#101;ctedIndex+=1;&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;if(parent.parent.form1.UploadFiles.value==&#39;&#39;){&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;parent.parent.form1.UploadFiles.value+=&#39;&#34; &amp; filename &amp; &#34;&#39;;}&#34; &amp; vbcrlf<br/>&nbsp;&nbsp; strJS=strJS &amp; &#34;else{&#34; &amp; vbcrlf &amp; &#34;parent.parent.form1.UploadFiles.value+=&#39;|&#39;+&#39;&#34; &amp; filename &amp; &#34;&#39;;}&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;strJS=strJS &amp; &#34;alert(&#39;&#34; &amp; msg &amp; &#34;&#39;);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;&nbsp;&nbsp;strJS=strJS &amp; &#34;history.go(-1);&#34; &amp; vbcrlf<br/>&nbsp;&nbsp;strJS=strJS &amp; &#34;parent.HtmlEdit.focus();&#34; &amp; vbcrlf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;strJS=strJS &amp; &#34;&lt;/script&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;response.write strJS<br/>&nbsp;&nbsp;set file=nothing<br/> next<br/> set upload=nothing<br/>end sub<br/>%&gt;<br/><br/><br/> <br/> <br/><br/><br/>后记：以下这段是我看到网友“痛斥装B”的评论后添加的，呵呵，由于本人忒懒 ，上面的文章中没有分析漏洞产生原因，直接给出了漏洞修补结果，结果让牛人们骂我，并“痛斥我装B”，本着向大牛们学习的态度，我再唠叨几句吧<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上面的这段代码是网友发给我的，好像是某网站管理系统中的上传程序的页面，用的人挺多的，回下面评论中的“痛斥装B”兄弟的话，我粗略看完此源代码，漏洞在于逻辑漏洞，只要第一轮FOR循环中条件为真就跳出循环，让后面的文件格式不做检查，所以才让黑客有机可乘，所以我们可以同时提交多个文件进行上传，让第一个文件合法，促使条件为真，而后面的文件换成我们的木马，我们再看看作者对上传文件后辍名的过滤，程序上传允许的后辍名都写在CONFIG。ASP中的这一行<br/><br/>Const UpFileType=&#34;gif|jpg&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;允许的上传文件类型<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;程序作者用白名单对文件后辍名进行过滤，这也是一种比较保险的方法，尽管作者这样判断了，但似乎还对自己的代码很不放心，所以在后面代码中又写了一堆代码判断用户提交的是不是ASP之类的后辍名文件，如果是的话就停止上传，其实这段代码完全是没用的垃圾代码，有了第一个白名单过滤就足够了，其实作者后面写的一大堆的后辍名过滤可以很EASY的躲过，比如上传个SHELL.ASP+空格的后辍，这样很容易躺过了后辍名的判断，轻易上传木马。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;程序最后，在保存文件的时候，文件名所有的变量都是系统自动生成的，filename=SavePath&amp;year(now)&amp;month(now)&amp;day(now)&amp;hour(now)&amp;minute(now)&amp;second(now)&amp;ranNum&amp;&#34;.&#34;&amp;fileExt<br/>其中SavePath为写在页面中的变量，不可能让用户提交来欺骗，其它也是取自系统函数和随机数，更不可能欺骗，你要再说大漏洞躺在那边的话，只能是 fileExt 来欺骗，这个是上传类自动获取的，具体上传类的取文件后辍名的代码我没有检查过，因为用的人很多，我相信另有牛人检查过吧，我也懒得去检查，难道你说的是这里有漏洞？如果“痛斥装B”兄弟再次路过，恳请加我QQ，指点一二，我感激不尽！<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=507</link>
			<title><![CDATA[父页面用window.open()打开子页面，子页面向父页面input域回传值]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Thu,26 May 2011 10:34:10 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=507</guid>
		<description><![CDATA[test.htm<br/><br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;&gt;<br/>&lt;title&gt;无标题文档&lt;/title&gt;<br/>&lt;/head&gt;<br/><br/>&lt;body&gt;<br/>&lt;input name=uname&gt;<br/>&lt;input type=button onclick=window.open(&#34;a.htm&#34;) value=选择&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/> <br/><br/>------------------------------------------------------------------------------------------<br/><br/>a.html<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;&gt;<br/>&lt;title&gt;无标题文档&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;script&gt;<br/>function setvalue(v){<br/>window.opener.document.all.uname.value=v//该值可改为由数据库获得<br/>//window.opener.document.getElementById(&#34;test&#34;).innerHTML=&#34;由数据库获得&#34;<br/>opener=null;<br/>self.close();<br/>}<br/><br/>&lt;/script&gt;<br/>&lt;body&gt;<br/>&lt;sel&#101;ct name=user&gt;<br/>&lt;option value=人员1&gt;人员1&lt;/option&gt;<br/>&lt;option value=人员2&gt;人员2&lt;/option&gt;<br/>&lt;option value=人员3&gt;人员3&lt;/option&gt;<br/>&lt;/sel&#101;ct&gt;<br/>&lt;input onclick=setvalue(user.value) type=button&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=506</link>
			<title><![CDATA[javascript：使sel&#101;ct下拉框也可以输入文本]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Wed,25 May 2011 19:07:09 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=506</guid>
		<description><![CDATA[&lt;!--Part code come from :<a href="http://us.f901.mail.yahoo.com/ym/Compose?YY=123456--" target="_blank" rel="external">http://us.f901.mail.yahoo.com/ym/Compose?YY=123456--</a>&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;&gt;<br/>&lt;title&gt;Editable listbox&lt;/title&gt;<br/><br/>&lt;style&gt;<br/><br/>/* Common elements */<br/>body{font:small/1.2em arial,helvetica,clean,sans-serif;font:x-small;}<br/>table{font-size:inherit;font:x-small;}<br/><br/><br/>/* Options Templates */<br/>.ac_menu{border:1px solid #3162A6;background-color:#F6F6F6;cursor:default;overflow:hidden;-moz-box-sizing:border-box;<br/> height:e&#173;xpression((this.scrollHeight&gt;210)?&#34;210px&#34;:&#34;auto&#34;)}<br/>.ac_menuitem{width:100%;color:#141414;padding:2px;cursor:pointer;cursor:hand;}<br/>.ac_menuitem_sel&#101;cted{background-color:#D6DEEC;width:100%;color:#141414;padding:2px;cursor:pointer;cursor:hand;}<br/><br/>/* JK */<br/>.minHeightTextarea{<br/> height:e&#173;xpression((this.scrollHeight&gt;150)?&#34;150px&#34;:(this.scrollHeight+5)+&#34;px&#34;);<br/> overflow : auto;<br/>}<br/><br/>&lt;/style&gt;<br/><br/><br/>&lt;script language=javascript&gt;<br/>var tofieldListArray=[&#34;深圳&#34;,&#34;bbb&#34;,&#34;ccc&#34;,&#34;ddd&#34;];<br/>var ccfieldListArray=tofieldListArray;<br/>&lt;/script&gt; <br/> <br/>&lt;script language=javascript&gt;<br/><br/> var AC_TAB = 9;&nbsp;&nbsp; // make the sel&#101;ction<br/> var AC_ENTER = 13;&nbsp;&nbsp; // make the sel&#101;ction<br/> var AC_UP_ARROW = 38;&nbsp;&nbsp;&nbsp;&nbsp;// move the dro&#112; down list sel&#101;ction up by one<br/> var AC_DOWN_ARROW = 40;&nbsp;&nbsp;// move the dro&#112; down list sel&#101;ction down by one<br/><br/> var theListDiv;<br/> var theComboxObj;<br/><br/> onload=OnLoad<br/> function OnLoad()<br/> {<br/>&nbsp;&nbsp;&nbsp;&nbsp; setTimeout(&#34;Initialize()&#34;, 100);<br/> }<br/><br/> function Initialize()<br/> {<br/>&nbsp;&nbsp; AddListDivFun(document.all.tofield);<br/>&nbsp;&nbsp; AddListDivFun(document.all.ccfield);&nbsp;&nbsp;&nbsp;&nbsp;<br/> }<br/> <br/> function AddListDivFun(obj)<br/> {<br/>&nbsp;&nbsp;var theListArray=eval(obj.id+&#34;ListArray&#34;);<br/>&nbsp;&nbsp;var tempStr=&#39;&lt;DIV style=&#34;position:relative;visibility:hidden&#34;&gt;&#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&#39;&lt;DIV class=ac_menu id=&#34;&#39;+obj.id+&#39;ListDiv&#34; style=&#34;FONT-SIZE: 0.9em; Z-INDEX: 1; visibility:hidden; POSITION: absolute;OVERFLOW-Y:auto; WIDTH:&#39;+obj.offsetWidth+&#39;; &#34; &#39;<br/>&nbsp;&nbsp;&nbsp;&nbsp;+&#39;onmouseover=&#34;mouseOverListDivFun(event)&#34; onmouseout=&#34;mouseOutListDivFun(event);&#34; onmousedown=&#34;mouseDownListDivFun(event);&#34;&gt;&#39;;<br/>&nbsp;&nbsp;for(var i=0;i&lt;theListArray.length;i++)<br/>&nbsp;&nbsp; tempStr+=&#39;&lt;DIV class=ac_menuitem&nbsp;&nbsp;value=&#39;+i+&#39; textValue=&#34;&#39;+htmlEncode(theListArray[i])+&#39;&#34;&gt;&#39;+htmlEncode(theListArray[i])+&#39;&lt;/DIV&gt;&#39;;<br/>&nbsp;&nbsp;tempStr+=&#34;&lt;/DIV&gt;&lt;/DIV&gt;&#34;;<br/>&nbsp;&nbsp;obj.ins&#101;rtAdjacentHTML(&#34;afterEnd&#34;,tempStr);<br/>&nbsp;&nbsp;theListDiv=eval(obj.id+&#34;ListDiv&#34;);<br/>&nbsp;&nbsp;obj.onfocus=AC_OnFocus;<br/>&nbsp;&nbsp;obj.onblur=AC_OnBlur;<br/>&nbsp;&nbsp;obj.onpropertychange=AC_OnPropertyChange;<br/>&nbsp;&nbsp;obj.onkeydown=AC_OnKeyDown;<br/>&nbsp;&nbsp;obj.autoComplete=&#34;off&#34;;<br/> }<br/> <br/> function AC_OnFocus(obj)<br/> {<br/>&nbsp;&nbsp;if(obj==null) obj=event.srcElement;<br/>&nbsp;&nbsp;theListDiv=eval(obj.id+&#34;ListDiv&#34;);<br/>&nbsp;&nbsp;theComboxObj=obj;<br/>&nbsp;&nbsp;theListDiv.style.visibility=&#34;visible&#34;;<br/>&nbsp;&nbsp;adjustListDivScroll();<br/> }<br/> <br/> function AC_OnBlur(obj)<br/> {<br/>&nbsp;&nbsp;if(obj==null) obj=event.srcElement;<br/>&nbsp;&nbsp;if(theListDiv.contains(document.activeElement)) obj.focus();<br/>&nbsp;&nbsp;else theListDiv.style.visibility=&#34;hidden&#34;;<br/> }<br/> <br/> function AC_OnPropertyChange(obj)<br/> {<br/>&nbsp;&nbsp;if(theListDiv==null) return ;<br/>&nbsp;&nbsp;if(obj==null) obj=event.srcElement;<br/>&nbsp;&nbsp;theListDiv.sel&#101;ctedIndex=-1;<br/>&nbsp;&nbsp;var theFirstVisibleIndex=-1;<br/>&nbsp;&nbsp;var objValue=obj.value;<br/>&nbsp;&nbsp;for(var i=0;i&lt;theListDiv.children.length;i++)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; if(theListDiv.children[i].textValue.indexOf(objValue)==0)<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(theFirstVisibleIndex==-1) theFirstVisibleIndex=i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;theListDiv.children[i].className=&#34;ac_menuitem&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;theListDiv.children[i].style.display=&#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;theListDiv.children[i].innerHTML=&#34;&lt;b&gt;&#34;+htmlEncode(objValue)+&#34;&lt;/b&gt;&#34;+htmlEncode(theListDiv.children[i].textValue.substr(objValue.length));<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp; else <br/>&nbsp;&nbsp;&nbsp;&nbsp;theListDiv.children[i].style.display=&#34;none&#34;;<br/>&nbsp;&nbsp; if(theListDiv.sel&#101;ctedIndex==-1 &amp;&amp; theListDiv.children[i].textValue==objValue) theListDiv.sel&#101;ctedIndex=i;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;if(theListDiv.sel&#101;ctedIndex==-1 &amp;&amp; theFirstVisibleIndex!=-1) <br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; theListDiv.sel&#101;ctedIndex=theFirstVisibleIndex;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;if(theListDiv.sel&#101;ctedIndex!=-1) theListDiv.children[theListDiv.sel&#101;ctedIndex].className=&#34;ac_menuitem_sel&#101;cted&#34;;<br/>&nbsp;&nbsp;adjustListDivScroll();<br/> }<br/> <br/> function AC_OnKeyDown(obj)<br/> {<br/>&nbsp;&nbsp;if(theListDiv==null) return ;<br/>&nbsp;&nbsp;if(obj==null) obj=event.srcElement;<br/>&nbsp;&nbsp;var keyCode=event.keyCode;<br/>&nbsp;&nbsp;if(keyCode==AC_ENTER) keyCode=event.keyCode=AC_TAB;<br/>&nbsp;&nbsp;if(keyCode==AC_TAB &amp;&amp; theListDiv.sel&#101;ctedIndex!=-1) <br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; obj.value=theListDiv.children[theListDiv.sel&#101;ctedIndex].textValue;<br/>&nbsp;&nbsp; return ;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;if(keyCode==AC_UP_ARROW &amp;&amp; theListDiv.sel&#101;ctedIndex!=-1)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; for(var i=theListDiv.sel&#101;ctedIndex-1;i&gt;-1;i--)<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(theListDiv.children[i].style.display!=&#34;none&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp; theListDiv.children[theListDiv.sel&#101;ctedIndex].className=&#34;ac_menuitem&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; theListDiv.sel&#101;ctedIndex=i;<br/>&nbsp;&nbsp;&nbsp;&nbsp; theListDiv.children[theListDiv.sel&#101;ctedIndex].className=&#34;ac_menuitem_sel&#101;cted&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; adjustListDivScroll();<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;}<br/> <br/>&nbsp;&nbsp;if(keyCode==AC_DOWN_ARROW &amp;&amp; theListDiv.sel&#101;ctedIndex!=-1)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; for(var i=theListDiv.sel&#101;ctedIndex*1+1;i&lt;theListDiv.children.length;i++)<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(theListDiv.children[i].style.display!=&#34;none&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp; theListDiv.children[theListDiv.sel&#101;ctedIndex].className=&#34;ac_menuitem&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; theListDiv.sel&#101;ctedIndex=i;<br/>&nbsp;&nbsp;&nbsp;&nbsp; theListDiv.children[theListDiv.sel&#101;ctedIndex].className=&#34;ac_menuitem_sel&#101;cted&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp; adjustListDivScroll();<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp; return;<br/>&nbsp;&nbsp;}<br/> <br/> }<br/> <br/> function htmlEncode(str)<br/> {<br/>&nbsp;&nbsp;if(str==null) return &#34;&#34;;<br/>&nbsp;&nbsp;str=str.replace(/&lt;/ig,&#34;&amp;lt;&#34;)<br/>&nbsp;&nbsp;str=str.replace(/&gt;/ig,&#34;&amp;gt;&#34;);<br/>&nbsp;&nbsp;str=str.replace(/&#34;/ig,&#34;&amp;quot;&#34;);<br/>&nbsp;&nbsp;return str;<br/> }<br/> <br/> function mouseOverListDivFun(event)<br/> {<br/>&nbsp;&nbsp;if(event.toElement!=theListDiv) event.toElement.style.backgroundColor=&#34;#E6E6E6&#34;;<br/> }<br/> <br/> function mouseOutListDivFun(event)<br/> {<br/>&nbsp;&nbsp;if(event.fromElement!=theListDiv) event.fromElement.style.backgroundColor=&#34;&#34;;<br/> }<br/> <br/> function mouseDownListDivFun(event)<br/> {<br/>&nbsp;&nbsp;var sel&#101;ctedStr=&#34;&#34;;<br/>&nbsp;&nbsp;if(event.srcElement==theListDiv) return;<br/>&nbsp;&nbsp;else if(event.srcElement.tagName==&#34;B&#34;) sel&#101;ctedStr=event.srcElement.parentElement.textValue ;<br/>&nbsp;&nbsp;else sel&#101;ctedStr=event.srcElement.textValue;<br/>&nbsp;&nbsp;theComboxObj.value=sel&#101;ctedStr;<br/>&nbsp;&nbsp;theComboxObj.blur();<br/> }<br/> function adjustListDivScroll()<br/> {<br/>&nbsp;&nbsp;if ( theListDiv==null || theListDiv.sel&#101;ctedIndex==-1 ) return ;<br/>&nbsp;&nbsp;var i=theListDiv.sel&#101;ctedIndex;<br/>&nbsp;&nbsp;if((theListDiv.children[i].offsetTop&lt;theListDiv.scrollTop)||(theListDiv.children[i].offsetTop&gt;theListDiv.scrollTop+200))<br/>&nbsp;&nbsp; theListDiv.scrollTop=theListDiv.children[i].offsetTop-95;<br/> }<br/> <br/>&lt;/script&gt;<br/><br/> <br/>&lt;/head&gt; <br/>&lt;body &gt;<br/> <br/><br/>&nbsp;&nbsp;<br/>&lt;form name=&#34;Compose&#34; id=&#34;Compose&#34; method=post action=&#34;2.jsp&#34;&gt;<br/><br/>&nbsp;&nbsp;&lt;table cellpadding=4 cellspacing=0 border=0 width=&#34;100%&#34;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td &gt;Mail To:&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td style=&#34;padding-top:0px;&#34; &gt; &lt;textarea name=&#34;To&#34; class=&#34;minHeightTextarea&#34; style=&#34;width:300&#34; tabindex=&#34;1&#34; id=&#34;tofield&#34; <br/>rows=&#34;1&#34;&nbsp;&nbsp;title=&#34;textarea&#34; cols=&#34;20&#34;&gt;&lt;/textarea&gt; &lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td &gt;Mail Cc:&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td style=&#34;padding-top:0px;&#34; &gt; &lt;input name=&#34;Cc&#34; style=&#34;width:300&#34; tabindex=&#34;1&#34; id=&#34;ccfield&#34; value=&#34;&#34; title=&#34;input&#34;&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td colspan=&#34;2&#34; &gt;&lt;input type=&#34;submit&#34; name=&#34;Submit&#34; value=&#34;Submit&#34;&gt;&lt;/td&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br/>&nbsp;&nbsp;&lt;/table&gt;<br/>&lt;/form&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;&nbsp;&nbsp;<br/><br/><br/>－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br/>对于从数据库调下拉列表内容的方法，只需替换<br/>var tofieldListArray=[&lt;%<br/>&nbsp;&nbsp; UserAuthInte uAInte = new UserAuthInte();<br/>&nbsp;&nbsp; List funcList = uAInte.getAllFuncModels();<br/>&nbsp;&nbsp; Iterator ite = funcList.iterator();<br/>&nbsp;&nbsp; while (ite.hasNext() ) {<br/>&nbsp;&nbsp; FuncModel funcM = (FuncModel) ite.next();<br/>&nbsp;&nbsp; out.println(&#34;\&#34;&#34;+funcM.getFunctionName()+&#34;\&#34;,&#34;);<br/>&nbsp;&nbsp;}%&gt;];<br/>var ccfieldListArray=tofieldListArray;<br/>&lt;/script&gt; <br/><br/><br/>对于接受该下拉列表值，可用<br/> String tofield = new String(request.getParameter(&#34;To&#34;).getBytes(&#34;ISO8859_1&#34;),&#34;GBK&#34;);<br/>用name而不是ID。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=505</link>
			<title><![CDATA[javascript数组去除重复数据]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Wed,25 May 2011 18:45:08 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=505</guid>
		<description><![CDATA[Array.prototype.uniq = function() {&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var temp = {}, len = this.length;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var i=0; i&lt;len; i++)&nbsp;&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(typeof temp[this[i]] == &#34;undefined&#34;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[this[i]] = 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.length = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var i in temp) {&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this[len++] = i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return this;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=504</link>
			<title><![CDATA[javascript实现下拉列表框模糊查询 ]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Wed,25 May 2011 18:40:36 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=504</guid>
		<description><![CDATA[var strGB=&#34;啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄&#34;;<br/><br/>var qswhSpell=[&#34;a&#34;,0,&#34;ai&#34;,2,&#34;an&#34;,15,&#34;ang&#34;,24,&#34;ao&#34;,27,&#34;ba&#34;,36,&#34;bai&#34;,54,&#34;ban&#34;,62,&#34;bang&#34;,77,&#34;bao&#34;,89,&#34;bei&#34;,106,&#34;ben&#34;,121,&#34;beng&#34;,125,&#34;bi&#34;,131,&#34;bian&#34;,155,&#34;biao&#34;,167,&#34;bie&#34;,171,&#34;bin&#34;,175,&#34;bing&#34;,181,&#34;bo&#34;,190,&#34;bu&#34;,211,&#34;ca&#34;,220,&#34;cai&#34;,221,&#34;can&#34;,232,&#34;cang&#34;,239,&#34;cao&#34;,244,&#34;ce&#34;,249,&#34;ceng&#34;,254,&#34;cha&#34;,256,&#34;chai&#34;,267,&#34;chan&#34;,270,&#34;chang&#34;,280,&#34;chao&#34;,293,&#34;che&#34;,302,&#34;chen&#34;,308,&#34;cheng&#34;,318,&#34;chi&#34;,333,&#34;chong&#34;,349,&#34;chou&#34;,354,&#34;chu&#34;,366,&#34;chuai&#34;,382,&#34;chuan&#34;,383,&#34;chuang&#34;,390,&#34;chui&#34;,396,&#34;chun&#34;,401,&#34;chuo&#34;,408,&#34;ci&#34;,410,&#34;cong&#34;,422,&#34;cou&#34;,428,&#34;cu&#34;,429,&#34;cuan&#34;,433,&#34;cui&#34;,436,&#34;cun&#34;,444,&#34;cuo&#34;,447,&#34;da&#34;,453,&#34;dai&#34;,459,&#34;dan&#34;,471,&#34;dang&#34;,486,&#34;dao&#34;,491,&#34;de&#34;,503,&#34;deng&#34;,506,&#34;di&#34;,513,&#34;dian&#34;,532,&#34;diao&#34;,548,&#34;die&#34;,557,&#34;ding&#34;,564,&#34;diu&#34;,573,&#34;dong&#34;,574,&#34;dou&#34;,584,&#34;du&#34;,591,&#34;duan&#34;,606,&#34;dui&#34;,612,&#34;dun&#34;,616,&#34;duo&#34;,625,&#34;e&#34;,637,&#34;en&#34;,650,&#34;er&#34;,651,&#34;fa&#34;,659,&#34;fan&#34;,667,&#34;fang&#34;,684,&#34;fei&#34;,695,&#34;fen&#34;,707,&#34;feng&#34;,722,&#34;fo&#34;,737,&#34;fou&#34;,738,&#34;fu&#34;,739,&#34;ga&#34;,784,&#34;gai&#34;,786,&#34;gan&#34;,792,&#34;gang&#34;,803,&#34;gao&#34;,812,&#34;ge&#34;,822,&#34;gei&#34;,839,&#34;gen&#34;,840,&#34;geng&#34;,842,&#34;gong&#34;,849,&#34;gou&#34;,864,&#34;gu&#34;,873,&#34;gua&#34;,891,&#34;guai&#34;,897,&#34;guan&#34;,900,&#34;guang&#34;,911,&#34;gui&#34;,914,&#34;gun&#34;,930,&#34;guo&#34;,933,&#34;ha&#34;,939,&#34;hai&#34;,940,&#34;han&#34;,947,&#34;hang&#34;,966,&#34;hao&#34;,969,&#34;he&#34;,978,&#34;hei&#34;,996,&#34;hen&#34;,998,&#34;heng&#34;,1002,&#34;hong&#34;,1007,&#34;hou&#34;,1016,&#34;hu&#34;,1023,&#34;hua&#34;,1041,&#34;huai&#34;,1050,&#34;huan&#34;,1055,&#34;huang&#34;,1069,&#34;hui&#34;,1083,&#34;hun&#34;,1104,&#34;huo&#34;,1110,&#34;ji&#34;,1120,&#34;jia&#34;,1173,&#34;jian&#34;,1190,&#34;jiang&#34;,1230,&#34;jiao&#34;,1243,&#34;jie&#34;,1271,&#34;jin&#34;,1298,&#34;jing&#34;,1318,&#34;jiong&#34;,1343,&#34;jiu&#34;,1345,&#34;ju&#34;,1362,&#34;juan&#34;,1387,&#34;jue&#34;,1394,&#34;jun&#34;,1404,&#34;ka&#34;,1415,&#34;kai&#34;,1419,&#34;kan&#34;,1424,&#34;kang&#34;,1430,&#34;kao&#34;,1437,&#34;ke&#34;,1441,&#34;ken&#34;,1456,&#34;keng&#34;,1460,&#34;kong&#34;,1462,&#34;kou&#34;,1466,&#34;ku&#34;,1470,&#34;kua&#34;,1477,&#34;kuai&#34;,1482,&#34;kuan&#34;,1486,&#34;kuang&#34;,1488,&#34;kui&#34;,1496,&#34;kun&#34;,1507,&#34;kuo&#34;,1511,&#34;la&#34;,1515,&#34;lai&#34;,1522,&#34;lan&#34;,1525,&#34;lang&#34;,1540,&#34;lao&#34;,1547,&#34;le&#34;,1556,&#34;lei&#34;,1558,&#34;leng&#34;,1569,&#34;li&#34;,1572,&#34;lia&#34;,1606,&#34;lian&#34;,1607,&#34;liang&#34;,1621,&#34;liao&#34;,1632,&#34;lie&#34;,1645,&#34;lin&#34;,1650,&#34;ling&#34;,1662,&#34;liu&#34;,1676,&#34;long&#34;,1687,&#34;lou&#34;,1696,&#34;lu&#34;,1702,&#34;lv&#34;,1722,&#34;luan&#34;,1736,&#34;lue&#34;,1742,&#34;lun&#34;,1744,&#34;luo&#34;,1751,&#34;ma&#34;,1763,&#34;mai&#34;,1772,&#34;man&#34;,1778,&#34;mang&#34;,1787,&#34;mao&#34;,1793,&#34;me&#34;,1805,&#34;mei&#34;,1806,&#34;men&#34;,1822,&#34;meng&#34;,1825,&#34;mi&#34;,1833,&#34;mian&#34;,1847,&#34;miao&#34;,1856,&#34;mie&#34;,1864,&#34;min&#34;,1866,&#34;ming&#34;,1872,&#34;miu&#34;,1878,&#34;mo&#34;,1879,&#34;mou&#34;,1896,&#34;mu&#34;,1899,&#34;na&#34;,1914,&#34;nai&#34;,1921,&#34;nan&#34;,1926,&#34;nang&#34;,1929,&#34;nao&#34;,1930,&#34;ne&#34;,1935,&#34;nei&#34;,1936,&#34;nen&#34;,1938,&#34;neng&#34;,1939,&#34;ni&#34;,1940,&#34;nian&#34;,1951,&#34;niang&#34;,1958,&#34;niao&#34;,1960,&#34;nie&#34;,1962,&#34;nin&#34;,1969,&#34;ning&#34;,1970,&#34;niu&#34;,1976,&#34;nong&#34;,1980,&#34;nu&#34;,1984,&#34;nv&#34;,1987,&#34;nuan&#34;,1988,&#34;nue&#34;,1989,&#34;nuo&#34;,1991,&#34;o&#34;,1995,&#34;ou&#34;,1996,&#34;pa&#34;,2003,&#34;pai&#34;,2009,&#34;pan&#34;,2015,&#34;pang&#34;,2023,&#34;pao&#34;,2028,&#34;pei&#34;,2035,&#34;pen&#34;,2044,&#34;peng&#34;,2046,&#34;pi&#34;,2060,&#34;pian&#34;,2077,&#34;piao&#34;,2081,&#34;pie&#34;,2085,&#34;pin&#34;,2087,&#34;ping&#34;,2092,&#34;po&#34;,2101,&#34;pu&#34;,2110,&#34;qi&#34;,2125,&#34;qia&#34;,2161,&#34;qian&#34;,2164,&#34;qiang&#34;,2186,&#34;qiao&#34;,2194,&#34;qie&#34;,2209,&#34;qin&#34;,2214,&#34;qing&#34;,2225,&#34;qiong&#34;,2238,&#34;qiu&#34;,2240,&#34;qu&#34;,2248,&#34;quan&#34;,2261,&#34;que&#34;,2272,&#34;qun&#34;,2280,&#34;ran&#34;,2282,&#34;rang&#34;,2286,&#34;rao&#34;,2291,&#34;re&#34;,2294,&#34;ren&#34;,2296,&#34;reng&#34;,2306,&#34;ri&#34;,2308,&#34;rong&#34;,2309,&#34;rou&#34;,2319,&#34;ru&#34;,2322,&#34;ruan&#34;,2332,&#34;rui&#34;,2334,&#34;run&#34;,2337,&#34;ruo&#34;,2339,&#34;sa&#34;,2341,&#34;sai&#34;,2344,&#34;san&#34;,2348,&#34;sang&#34;,2352,&#34;sao&#34;,2355,&#34;se&#34;,2359,&#34;sen&#34;,2362,&#34;seng&#34;,2363,&#34;sha&#34;,2364,&#34;shai&#34;,2373,&#34;shan&#34;,2375,&#34;shang&#34;,2391,&#34;shao&#34;,2399,&#34;she&#34;,2410,&#34;shen&#34;,2422,&#34;sheng&#34;,2438,&#34;shi&#34;,2449,&#34;shou&#34;,2496,&#34;shu&#34;,2506,&#34;shua&#34;,2539,&#34;shuai&#34;,2541,&#34;shuan&#34;,2545,&#34;shuang&#34;,2547,&#34;shui&#34;,2550,&#34;shun&#34;,2554,&#34;shuo&#34;,2558,&#34;si&#34;,2562,&#34;song&#34;,2578,&#34;sou&#34;,2586,&#34;su&#34;,2589,&#34;suan&#34;,2602,&#34;sui&#34;,2605,&#34;sun&#34;,2616,&#34;suo&#34;,2619,&#34;ta&#34;,2627,&#34;tai&#34;,2636,&#34;tan&#34;,2645,&#34;tang&#34;,2663,&#34;tao&#34;,2676,&#34;te&#34;,2687,&#34;teng&#34;,2688,&#34;ti&#34;,2692,&#34;tian&#34;,2707,&#34;tiao&#34;,2715,&#34;tie&#34;,2720,&#34;ting&#34;,2723,&#34;tong&#34;,2733,&#34;tou&#34;,2746,&#34;tu&#34;,2750,&#34;tuan&#34;,2761,&#34;tui&#34;,2763,&#34;tun&#34;,2769,&#34;tuo&#34;,2772,&#34;wa&#34;,2783,&#34;wai&#34;,2790,&#34;wan&#34;,2792,&#34;wang&#34;,2809,&#34;wei&#34;,2819,&#34;wen&#34;,2852,&#34;weng&#34;,2862,&#34;wo&#34;,2865,&#34;wu&#34;,2874,&#34;xi&#34;,2903,&#34;xia&#34;,2938,&#34;xian&#34;,2951,&#34;xiang&#34;,2977,&#34;xiao&#34;,2997,&#34;xie&#34;,3015,&#34;xin&#34;,3036,&#34;xing&#34;,3046,&#34;xiong&#34;,3061,&#34;xiu&#34;,3068,&#34;xu&#34;,3077,&#34;xuan&#34;,3096,&#34;xue&#34;,3106,&#34;xun&#34;,3112,&#34;ya&#34;,3126,&#34;yan&#34;,3142,&#34;yang&#34;,3175,&#34;yao&#34;,3192,&#34;ye&#34;,3207,&#34;yi&#34;,3222,&#34;yin&#34;,3275,&#34;ying&#34;,3291,&#34;yo&#34;,3309,&#34;yong&#34;,3310,&#34;you&#34;,3325,&#34;yu&#34;,3346,&#34;yuan&#34;,3390,&#34;yue&#34;,3410,&#34;yun&#34;,3420,&#34;za&#34;,3432,&#34;zai&#34;,3435,&#34;zan&#34;,3442,&#34;zang&#34;,3446,&#34;zao&#34;,3449,&#34;ze&#34;,3463,&#34;zei&#34;,3467,&#34;zen&#34;,3468,&#34;zeng&#34;,3469,&#34;zha&#34;,3473,&#34;zhai&#34;,3487,&#34;zhan&#34;,3493,&#34;zhang&#34;,3510,&#34;zhao&#34;,3525,&#34;zhe&#34;,3535,&#34;zhen&#34;,3545,&#34;zheng&#34;,3561,&#34;zhi&#34;,3576,&#34;zhong&#34;,3619,&#34;zhou&#34;,3630,&#34;zhu&#34;,3644,&#34;zhua&#34;,3670,&#34;zhuai&#34;,3672,&#34;zhuan&#34;,3673,&#34;zhuang&#34;,3679,&#34;zhui&#34;,3686,&#34;zhun&#34;,3692,&#34;zhuo&#34;,3694,&#34;zi&#34;,3705,&#34;zong&#34;,3720,&#34;zou&#34;,3727,&#34;zu&#34;,3731,&#34;zuan&#34;,3739,&#34;zui&#34;,3741,&#34;zun&#34;,3745,&#34;zuo&#34;,3747];<br/><br/>function UrlEncode(str){<br/> /*********qiushuiwuhen(2002-9-16)********/<br/> var i,c,p,q,ret=&#34;&#34;,strSpecial=&#34;!\&#34;#$%&amp;&#39;()*+,/:;&lt;=&gt;?@[\]^`{|}~%&#34;;<br/> for(i=0;i&lt;str.length;i++){<br/>&nbsp;&nbsp;if(str.charCodeAt(i)&gt;=0x4e00){<br/>&nbsp;&nbsp; var p=strGB.indexOf(str.charAt(i));<br/>&nbsp;&nbsp; if(p&gt;=0){<br/>&nbsp;&nbsp;&nbsp;&nbsp;q=p%94;<br/>&nbsp;&nbsp;&nbsp;&nbsp;p=(p-q)/94;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ret+=(&#34;%&#34;+(0xB0+p).toString(16)+&#34;%&#34;+(0xA1+q).toString(16)).toUpperCase();<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;else{<br/>&nbsp;&nbsp; c=str.charAt(i);<br/>&nbsp;&nbsp; if(c==&#34; &#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;ret+=&#34;+&#34;;<br/>&nbsp;&nbsp; else if(strSpecial.indexOf(c)!=-1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;ret+=&#34;%&#34;+str.charCodeAt(i).toString(16);<br/>&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp;ret+=c;<br/>&nbsp;&nbsp;}<br/> }<br/> return ret;<br/>}<br/><br/>function getSpell(str,sp){<br/> /*********qiushuiwuhen(2002-9-16)********/<br/> var i,c,t,p,ret=&#34;&#34;;<br/> if(sp==null)sp=&#34;&#34;;<br/> for(i=0;i&lt;str.length;i++){<br/>&nbsp;&nbsp;if(str.charCodeAt(i)&gt;=0x4e00){<br/>&nbsp;&nbsp; p=strGB.indexOf(str.charAt(i));<br/>&nbsp;&nbsp; if(p&gt;-1&amp;&amp;p&lt;3755){<br/>&nbsp;&nbsp;&nbsp;&nbsp;for(t=qswhSpell.length-1;t&gt;0;t=t-2)if(qswhSpell[t]&lt;=p)break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(t&gt;0)ret+=qswhSpell[t-1]+sp;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;}<br/> }<br/> return ret.substr(0,ret.length-sp.length);<br/>}<br/><br/>var sel=&#34;&#34;,timer=null;<br/>function spellList(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with(window.event){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with(srcElement){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(keyCode&lt;48)return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(keyCode&gt;95)keyCode-=48<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sel+=String.fromCharCode(keyCode);//统计键盘输入<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.status=sel;<br/>&nbsp;&nbsp;&nbsp;&nbsp; var cm=[],xm=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;length;i++){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!options[i].sp){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tmp=&#34;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var arr = [];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var k=0;k&lt;options[i].text.length;k++){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(options[i].text.charCodeAt(k)&gt;128){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr.push(getSpell(options[i].text.charAt(k)));//汉字处理<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr.push(options[i].text.charAt(k));//字母数字处理<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var j=0;j&lt;arr.length;j++)tmp+=arr[j].substr(0,1).toUpperCase();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options[i].sp=tmp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(options[i].sp.indexOf(String.fromCharCode(keyCode))==0){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cm[xm]=i;//统计在菜单中出现的所有的列表行<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xm++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp; if (cm.length !=0)<br/>&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(midstr(sel)==1)//两次输入一样处理<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp; var osi= options.sel&#101;ctedIndex;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var jg=getarr(cm,osi);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (jg[0] !=0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (jg[0] == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sel&#101;ctedIndex=jg[1];//跳转下一个<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (jg[0] == 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sel&#101;ctedIndex=cm[0];//如果当前是最后一个。则跳转到第一个<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ctedIndex=cm[0];//第一次输入时处理<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnValue=false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearTimeout(timer)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timer=setTimeout(&#34;sel=&#39;&#39;&#34;,1000);//超时时间<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>}/*by 果果 QQ823267*/<br/>function midstr(tempstr){//判断连续输入同样字符<br/>&nbsp;&nbsp;&nbsp;&nbsp;var x=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (tempstr.length&gt;1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (tempstr.substr(tempstr.length-1,1)==tempstr.substr(tempstr.length-2,1) )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{return 0;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else{return 0;}<br/>}<br/>function getarr(am,xc){//匹配当前坐标在原有内，发回1--下一个2最后一个，注意ret【2】跳转下一个的坐标<br/>var ret=[];<br/> <br/>&nbsp;&nbsp;for (c=0; c&lt;am.length;c++ )<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; if (am[c]==xc)<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp; if (xc == am[am.length-1]){<br/>&nbsp;&nbsp;&nbsp;&nbsp;ret[0]=2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ret[1]=xc;//这个只可以不返回<br/>&nbsp;&nbsp;&nbsp;&nbsp;return ret;<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp; else{<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; ret[0]=1;<br/>&nbsp;&nbsp;&nbsp;&nbsp; ret[1]=am[c+1];<br/>&nbsp;&nbsp;&nbsp;&nbsp; return ret;<br/>&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;}<br/>return 0;<br/>}/*by 果果 QQ823267*/<br/><br/>将上面的代码复制，然后保存文件为qswhGB2312.js&nbsp;&nbsp;在有下拉列表框的地方引入该文件，给需要实现模糊查询的下拉列表框增加事件onkeydown=spellList()即可<br/><br/><br/><br/>本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/pushihao/archive/2009/07/21/4362582.aspx" target="_blank" rel="external">http://blog.csdn.net/pushihao/archive/2009/07/21/4362582.aspx</a>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=501</link>
			<title><![CDATA[asp中实现二级级联列表 ]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Tue,10 May 2011 14:20:21 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=501</guid>
		<description><![CDATA[&lt;!--<br/>asp中实现二级级联列表<br/>这里有两个表，CompanyBigClass(BigClassID,BigClassName)和<br/><br/>CompanySmallClass(SmallClassID,SmallClassName,BigClassName)，程序思路是<br/><br/>这样的：从服务器端获取所有的CompanyBigClass和CompanySmallClass信息，客<br/><br/>户端将通过这些信息来初始化两个下拉列表，一级列表直接用大类信息初始化，<br/><br/>二级列表的初始化是在一级列表的onChange事件中完成的，在这之前必须保证有<br/><br/>一个保存了SmallClassName，BigClassName和SmallClassID的数组，这样就可以<br/><br/>在onChange事件的事件处理函数中比较一级列表中传来的列表项的值来刷新二级<br/><br/>列表的列表项<br/>--&gt;<br/>&lt;% <br/>dim count <br/>sqlCompanySmallClass = &#34;sel&#101;ct * from CompanySmallClass&#34; <br/>set rsCompanySmallClass = server.cr&#101;ateobject(&#34;adodb.recordset&#34;) <br/>rsCompanySmallClass.open sqlCompanySmallClass,conn,1,3 <br/>%&gt; <br/>&lt;script language = &#34;JavaScript&#34;&gt; <br/>var onecount; <br/>onecount=0; <br/>subcat = new Array(); <br/>&lt;% <br/>count = 0 <br/>do while not rsCompanySmallClass.eof <br/>%&gt; <br/>subcat[&lt;%=count%&gt;] = new Array(&#34;&lt;%= trim(rsCompanySmallClass<br/><br/>(&#34;SmallClassName&#34;))%&gt;&#34;,&#34;&lt;%= trim(rsCompanySmallClass(&#34;BigClassName&#34;))%<br/><br/>&gt;&#34;,&#34;&lt;%= trim(rsCompanySmallClass(&#34;SmallClassID&#34;))%&gt;&#34;); <br/>&lt;% <br/>count = count + 1 <br/>rsCompanySmallClass.movenext <br/>loop <br/>rsCompanySmallClass.close <br/>set rsCompanySmallClass=nothing <br/>%&gt; <br/>onecount=&lt;%=count%&gt;; <br/>function changelocation(zoneid) <br/>{ <br/>document.UserReg.region.length = 0; <br/>var zoneid=zoneid; <br/>var i; <br/>for (i=0;i &lt; onecount; i++) <br/>{ <br/>if (subcat[i][1] == zoneid) <br/>{ <br/>document.UserReg.region.options[document.UserReg.region.length] = new <br/><br/>Option(subcat[i][0], subcat[i][2]); <br/>} <br/>} <br/>} <br/>&lt;/script&gt;&nbsp;&nbsp;<br/>&lt;sel&#101;ct name=&#34;zone&#34; size=&#34;1&#34; id=&#34;zone&#34; onChange=&#34;changelocation<br/><br/>(document.UserReg.zone.options<br/><br/>[document.UserReg.zone.sel&#101;ctedIndex].text)&#34;&gt; <br/>&lt;option value=0 sel&#101;cted &gt;选择大类&lt;/option&gt; <br/>&lt;% <br/>sqlCompanyBigClass = &#34;sel&#101;ct * from CompanyBigClass&#34; <br/>set rsCompanyBigClass = server.cr&#101;ateobject(&#34;adodb.recordset&#34;) <br/>rsCompanyBigClass.open sqlCompanyBigClass,conn,1,3 <br/>%&gt; <br/>&lt;%while not rsCompanyBigClass.eof%&gt; <br/>&lt;option value=&#34;&lt;%=rsCompanyBigClass(&#34;BigClassID&#34;)%&gt;&#34;&gt;&lt;%<br/><br/>=rsCompanyBigClass(&#34;BigClassName&#34;)%&gt;&lt;/option&gt; <br/>&lt;%rsCompanyBigClass.movenext <br/>wend <br/>rsCompanyBigClass.close <br/>set rsCompanyBigClass = nothing <br/>%&gt; <br/>&lt;/sel&#101;ct&gt; <br/>&lt;sel&#101;ct name=&#34;region&#34; size=&#34;1&#34; id=&#34;region&#34; &gt; <br/>&lt;option value=0 sel&#101;cted &gt;选择小类&lt;/option&gt; <br/>&lt;/sel&#101;ct&gt; <br/><br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.2369.net/blog/article.asp?id=499</link>
			<title><![CDATA[ASP编程基础知识（二）]]></title>
			<author>12631176@qq.com(wang)</author>
			<category><![CDATA[应用开发]]></category>
			<pubDate>Wed,04 May 2011 14:46:48 +0800</pubDate>
			<guid>http://www.2369.net/blog/default.asp?id=499</guid>
		<description><![CDATA[10、利用Application对象作计数器的语法 <br/><br/>在网页的头部加入 <br/>Application.Lock <br/>Application(&#34;counter&#34;) = Application(&#34;counter&#34;) + 1 <br/>Application.UnLock <br/>在需要显示计数内容的网页的地方，加入下面的语句 <br/>response.write Application(&#34;counter&#34;) <br/><br/>11、利用Session对象保护后台管理页面admin.asp，防止未登陆用户进入 <br/><br/><br/>第一步、在网站后台网页需要权限保护的所有网页的头部加入下面的代码, <br/>&nbsp;&nbsp; if session(&#34;admin&#34;)&lt;&gt;&#34;ok&#34; then <br/>&nbsp;&nbsp; response.redirect&#34;login.asp&#34; <br/>&nbsp;&nbsp; response.end <br/>&nbsp;&nbsp; end if <br/><br/>第二步、在网站后台登陆页的检测表单发来的用户名和密码验证部分标准写法 <br/>AdmName=Request.Form(&#34;Name&#34;) <br/>AdmPass=Request.Form(&#34;Pass&#34;) <br/>Set Rs=Server.Cr&#101;ateObject(&#34;ADODB.RecordSet&#34;) <br/>SqlStr=&#34;Sel&#101;ct * from Admin wh&#101;re name=’&#34;&amp;AdmName&amp;&#34;’ and pass=’&#34;&amp;AdmPass&amp;&#34;’&#34; <br/>Rs.Open SqlStr,conn,1,3 <br/><br/>if Rs.EOF AND RS.BOF then <br/>Response.Redirect(&#34;login.asp&#34;) <br/>response.end <br/>else <br/>session(&#34;admin&#34;)=&#34;ok&#34; <br/>Response.Redirect(&#34;admin.asp&#34;) <br/>response.end <br/>end if <br/><br/>12、分页代码 <br/>sql = &#34;sel&#101;ct……………………省略了你的从表中取出所有数据的sql语句写法 <br/>Set rs=Server.Cr&#101;ateobject(&#34;ADODB.RECORDSET&#34;) <br/>rs.Open sql, conn, 1, 1 <br/>if not rs.eof then <br/>&nbsp;&nbsp;&nbsp;&nbsp;pages = 30 ‘定义每页显示的记录数 <br/>&nbsp;&nbsp;&nbsp;&nbsp;rs.pageSize = pages ‘定义每页显示的记录数 <br/>&nbsp;&nbsp;&nbsp;&nbsp;allPages = rs.pageCount ‘计算一共能分多少页 <br/>&nbsp;&nbsp;&nbsp;&nbsp;page = Request.QueryString(&#34;page&#34;)’通过浏览器传递的页数 <br/>&nbsp;&nbsp;&nbsp;&nbsp;‘if语句属于基本的排错处理 <br/>&nbsp;&nbsp;&nbsp;&nbsp;if isEmpty(page) o&#114; Cint(page) &lt; 1 then <br/>page = 1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;elseif Cint(page) &gt; allPages then <br/>page = allPages <br/>&nbsp;&nbsp;&nbsp;&nbsp;end if <br/>&nbsp;&nbsp;&nbsp;&nbsp;rs.AbsolutePage = page <br/>&nbsp;&nbsp;&nbsp;&nbsp;Do while not rs.eof and pages &gt; 0 <br/>‘这里输出你要的内容……………… <br/>&nbsp;&nbsp;&nbsp;&nbsp; pages = pages – 1 <br/>&nbsp;&nbsp;&nbsp;&nbsp;rs.MoveNext <br/>&nbsp;&nbsp;&nbsp;&nbsp;Loop <br/>else <br/>Response.Write(&#34;数据库暂无内容！&#34;) <br/>End if <br/>rs.Close <br/>Set rs = Nothing <br/>‘分页页码连接和跳转页码程序 <br/>&lt;form Action=&#34;&#34; Method=&#34;GET&#34;&gt; <br/>&lt;% <br/>If Page &lt;&gt; 1 Then <br/>&nbsp;&nbsp; Response.Write &#34;&lt;A HREF=?Page=1&gt;第一页&lt;/A&gt;” <br/>&nbsp;&nbsp; Response.Write &#34;&lt;A HREF=?Page=&#34; &amp; (Page-1) &amp; &#34;&gt;上一页&lt;/A&gt;“ <br/>End If <br/>If Page &lt;&gt; allPages Then <br/>&nbsp;&nbsp; Response.Write &#34;&lt;A HREF=?Page=&#34; &amp; (Page+1) &amp; &#34;&gt;下一页&lt;/A&gt;&#34; <br/>&nbsp;&nbsp; Response.Write &#34;&lt;A HREF=?Page=&#34; &amp; allPages &amp; &#34;&gt;最后一页&lt;/A&gt;&#34; <br/>End If <br/>%&gt; <br/>输入页数：&lt;input TYPE=&#34;TEXT&#34; Name=&#34;Page&#34; SIZE=&#34;3&#34;&gt; 页数:&lt;font COLOR=&#34;Red&#34;&gt;&lt;%=Page%&gt;/&lt;%=allPages %&gt;&lt;/font&gt; <br/>&lt;/form&gt; <br/>13、分行列显示图片和产品名称的代码（4列x3行=12个） <br/>&lt;% <br/>Set Rs=Server.Cr&#101;ateObject(&#34;ADODB.RecordSet&#34;) <br/>SqlStr=&#34;sel&#101;ct top 12 * from myproduct&#34; <br/>Rs.Open SqlStr,conn,1,1 <br/>i=1 <br/>%&gt; <br/>&lt;table width=&#34;90%&#34;&nbsp;&nbsp; border=&#34;1&#34; cellspacing=&#34;0&#34; sellpadding=&#34;0&#34;&gt; <br/>&lt;tr&gt; <br/>&lt;%&nbsp;&nbsp;<br/>do&nbsp;&nbsp; while not rs.eof <br/>%&gt; <br/>&lt;td align=&#34;center&#34;&gt; <br/>&lt;img src=&#34;&lt;%=rs(&#34;imgurl&#34;)%&gt;&#34; width=&#34;52&#34; height=&#34;120&#34;&gt;&lt;br&gt; <br/>&lt;%=rs(&#34;productname&#34;)%&gt; <br/>&lt;/td&gt; <br/>&lt;% if i mod 4=0 then response.write&#34;&lt;/tr&gt;&lt;tr&gt;&#34; <br/>i=i+1 <br/>rs.movenext <br/>loop <br/>rs.close <br/>%&gt; <br/>&nbsp;&nbsp; &lt;/tr&gt; <br/>&lt;/table&gt; <br/><br/>十四、ASP数据库连接之ACCESS-SQLSERVER <br/>&lt;% <br/>IsSqlData=0&nbsp;&nbsp;&nbsp;&nbsp;‘定义数据库类别，0为Access数据库，1为SQL数据库 <br/>If IsSqlData=0 Then <br/>Access数据库 <br/>datapath =&#34;data/&#34;&nbsp;&nbsp;&nbsp;&nbsp;数据库目录的相对路径 <br/>datafile =&#34;data.mdb&#34;&nbsp;&nbsp;&nbsp;&nbsp;数据库的文件名 <br/>c&amp;Server.MapPath(&#34;&#34;&amp;datapath&amp;&#34;&#34;&amp;datafile&amp;&#34;&#34;) <br/>C&amp;server.mappath(&#34;&#34;&amp;datapath&amp;&#34;&#34;&amp;datafile&amp;&#34;&#34;)&amp;&#34;;DRIVER={Microsoft Access Driver (*.mdb)};&#34; <br/>Else <br/>SQL数据库 <br/>SqlLocalName =&#34;(local)&#34;&nbsp;&nbsp;&nbsp;&nbsp; 连接IP&nbsp;&nbsp; [ 本地用 (local) 外地用IP ] <br/>SqlUsername =&#34;sa&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户名 <br/>SqlPassword =&#34;1&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户密码 <br/>SqlDatabaseName=&#34;data&#34;&nbsp;&nbsp;&nbsp;&nbsp;数据库名 <br/>C &amp; SqlUsername &amp; &#34;; Password=&#34; &amp; SqlPassword &amp; &#34;; Initial Catalog = &#34; &amp; SqlDatabaseName &amp; &#34;; Data Source=&#34; &amp; SqlLocalName &amp; &#34;;&#34; <br/>END IF <br/>On Error Resume Next <br/>Set conn=Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;) <br/>conn.open ConnStr <br/>If Err Then <br/>err.Clear <br/>Set Conn = Nothing <br/>Response.Write &#34;数据库连接出错，请检查连接字串。&#34; <br/>Response.End <br/>End If <br/>%&gt; <br/><br/>&lt;!– 判断网址是否合格并处理 –&gt; <br/>&lt;% <br/>url=trim(request.form(&#34;url&#34;)) <br/>if left(url,7)&lt;&gt;&#34;<a href="http://" target="_blank" rel="external">http://</a>&#34; then <br/>url=&#34;<a href="http://" target="_blank" rel="external">http://</a>&#34;&amp;url <br/>end if <br/>%&gt; <br/><br/>&lt;!– 显示时间为几月几日并处理 –&gt; <br/>&lt;% <br/>y=Month(date()) <br/>r=Day(date()) <br/>if len(y)=1 then y=&#34;0&#34; &amp; y <br/>if len(r)=1 then r=&#34;0&#34; &amp; r <br/>Response.Write&nbsp;&nbsp; y &amp; &#34;月&#34; &amp; r &amp; &#34;日&#34; <br/>%&gt; <br/><br/>&lt;!– 限制某些IP访问网站 –&gt; <br/>&lt;% <br/>url_str=Request.ServerVariables(&#34;REMOTE_ADDR&#34;) <br/>url=split(url_str,&#34;.&#34;) <br/>if url(0)=127 and url(1)=0 and url(2)=0 and url(3)&gt;0 and url(3)&lt;256 then <br/>else <br/>response.Write(url_str) <br/>end if <br/>%&gt; <br/><br/>&lt;!– 设置文章显示格式 –&gt; <br/>&lt;% <br/>function HTMLEncode(fString) <br/>if not isnull(fString) then <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = replace(fString, &#34;&gt;&#34;, &#34;&gt;&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = replace(fString, &#34;&lt;&#34;, &#34;&lt;&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(32), &#34; &#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(9), &#34; &#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(34), &#34;&#34;&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(39), &#34;’&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(13), &#34;&#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(10) &amp; CHR(10), &#34;&lt;/P&gt;&lt;P&gt; &#34;) <br/>&nbsp;&nbsp;&nbsp;&nbsp; fString = Replace(fString, CHR(10), &#34;&lt;BR&gt; &#34;) <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; HTMLEncode = fString <br/>end if <br/>end function <br/>%&gt; <br/><br/>1. ASP与Access数据库连接： <br/>&lt;% <br/>dim conn,mdbfile <br/>mdbfile=server.mappath(&#34;数据库名称.mdb&#34;) <br/>set conn=server.cr&#101;ateobject(&#34;adodb.connection&#34;) <br/>conn.open &#34;driver={microsoft access driver <br/>(*.mdb)};uid=admin;pwd=数据库密码;dbq=&#34;&amp;mdbfile <br/>%&gt; <br/>2. ASP与SQL数据库连接： <br/>&lt;% <br/>dim conn <br/>set conn=server.cr&#101;ateobject(&#34;ADODB.connection&#34;) <br/>con.open &#34;PROVIDER=SQLOLEDB;DATA <br/>SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 <br/>%&gt; <br/><br/>建立记录集对象： <br/><br/>set rs=server.cr&#101;ateobject(&#34;adodb.recordset&#34;) <br/>rs.open SQL语句,conn,3,2 <br/><br/>3. SQL常用命令使用方法： <br/>(1) 数据记录筛选： <br/>sql=&#34;sel&#101;ct * from 数据表 wh&#101;re 字段名=字段值 o&#114;der by 字段名 [desc]&#34; <br/>sql=&#34;sel&#101;ct * from 数据表 wh&#101;re 字段名 like ‘%字段值%’ o&#114;der by 字段名 [desc]&#34; <br/>sql=&#34;sel&#101;ct top 10 * from 数据表 wh&#101;re 字段名 o&#114;der by 字段名 [desc]&#34; <br/>sql=&#34;sel&#101;ct * from 数据表 wh&#101;re 字段名 in (‘值1′,’值2′,’值3′)&#34; <br/>sql=&#34;sel&#101;ct * from 数据表 wh&#101;re 字段名 between 值1 and 值2&#34; <br/><br/>(2) 更新数据记录： <br/>sql=&#34;up&#100;ate 数据表 set 字段名=字段值 wh&#101;re 条件表达式&#34; <br/>sql=&#34;up&#100;ate 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n wh&#101;re 条件表达式&#34; <br/><br/>(3) 删除数据记录： <br/>sql=&#34;del&#101;te from 数据表 wh&#101;re 条件表达式&#34; <br/>sql=&#34;del&#101;te from 数据表&#34; (将数据表所有记录删除) <br/><br/>(4) 添加数据记录： <br/>sql=&#34;ins&#101;rt into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)&#34; <br/>sql=&#34;ins&#101;rt into 目标数据表 sel&#101;ct * from 源数据表&#34; (把源数据表的记录添加到目标数据表) <br/><br/>(5) 数据记录统计函数： <br/>AVG(字段名) 得出一个表格栏平均值 <br/>COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 <br/>MAX(字段名) 取得一个表格栏最大的值 <br/>MIN(字段名) 取得一个表格栏最小的值 <br/>SUM(字段名) 把数据栏的值相加 <br/>引用以上函数的方法： <br/>sql=&#34;sel&#101;ct sum(字段名) as 别名 from 数据表 wh&#101;re 条件表达式&#34; <br/>set rs=conn.excute(sql) <br/>用 rs(&#34;别名&#34;) 获取统的计值，其它函数运用同上。 <br/><br/>(6) 数据表的建立和删除： <br/>Cr&#101;ate TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) <br/><br/>]]></description>
		</item>
		
</channel>
</rss>
