<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[柠檬居IT技术网 - ASP/PHP]]></title>
  <subtitle type="html"><![CDATA[分享最前卫最时尚的技术！- http://www.nmju.net]]></subtitle>
  <id>http://www.nmju.net/</id>
  <link rel="alternate" type="text/html" href="http://www.nmju.net/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.nmju.net/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2008-12-12T09:17:31+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[防止JS注入式攻击]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=7" label="ASP/PHP" /> 
	  <updated>2008-12-12T09:17:31+08:00</updated>
	  <published>2008-12-12T09:17:31+08:00</published>
		  <summary type="html"><![CDATA[&lt;%&nbsp;&nbsp; <br/><br/>&#39;--------定义部份------------------&nbsp;&nbsp; <br/>Dim XH_Post,XH_Get,XH_Cookie,XH_In,XH_Inf,XH_Xh,XH_Inf2,XH_In2&nbsp;&nbsp; <br/>&#39;自定义需要过滤的字串,用 &#34;|&#34; 分隔&nbsp;&nbsp; <br/>XH_In = &#34;&#39;|;|and|exec|ins&#101;rt|sel&#101;ct|del&#101;te%20from|up&#100;ate|count|*|%|chr|mid|master|truncate|char|declare|dro&#112;%20table|from|net%20user|xp_cmdshell|/add|net%20localgroup%20administrators|Asc|char&#34;&nbsp;&nbsp; <br/>XH_In2 = &#34;&#39;|;|and|exec|ins&#101;rt|sel&#101;ct|del&#101;te%20from|up&#100;ate|count|chr|mid|master|truncate|char|declare|dro&#112;%20table|from|net%20user|xp_cmdshell|/add|net%20localgroup%20administrators|Asc|char&#34;&nbsp;&nbsp; <br/>&#39;----------------------------------&nbsp;&nbsp; <br/>%&gt;&nbsp;&nbsp; <br/><br/>&lt;%&nbsp;&nbsp; <br/>XH_Inf = split(XH_In,&#34;|&#34;)&nbsp;&nbsp; <br/>XH_Inf2 = split(XH_In2,&#34;|&#34;)&nbsp;&nbsp; <br/>&#39;--------POST部份------------------&nbsp;&nbsp; <br/>If Request.Form&lt;&gt;&#34;&#34; Then&nbsp;&nbsp; <br/>For Each XH_Post In Request.Form&nbsp;&nbsp; <br/><br/>For XH_Xh=0 To Ubound(XH_Inf)&nbsp;&nbsp; <br/>If Instr(LCase(Request.Form(XH_Post)),XH_Inf(XH_Xh))&lt;&gt;0 Then&nbsp;&nbsp; <br/>Response.Write &#34;&lt;Script Language=JavaScript&gt;alert(&#39;悟空你又胡闹了&#39;);&lt;/Script&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;非法操作！系统做了如下记录↓&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;操作ＩＰ：&#34;&amp;Request.ServerVariables(&#34;REMOTE_ADDR&#34;)&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;操作时间：&#34;&amp;Now&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;操作页面：&#34;&amp;Request.ServerVariables(&#34;URL&#34;)&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;提交方式：ＰＯＳＴ&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;提交参数：&#34;&amp;XH_Post&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;提交数据：&#34;&amp;Request.Form(XH_Post)&nbsp;&nbsp; <br/>Response.End&nbsp;&nbsp; <br/>End If&nbsp;&nbsp; <br/>Next&nbsp;&nbsp; <br/>Next&nbsp;&nbsp; <br/>End If&nbsp;&nbsp; <br/>&#39;----------------------------------&nbsp;&nbsp; <br/><br/>&#39;--------GET部份-------------------&nbsp;&nbsp; <br/>If Request.QueryString&lt;&gt;&#34;&#34; Then&nbsp;&nbsp; <br/>For Each XH_Get In Request.QueryString&nbsp;&nbsp; <br/><br/>For XH_Xh=0 To Ubound(XH_Inf)&nbsp;&nbsp; <br/>If Instr(LCase(Request.QueryString(XH_Get)),XH_Inf(XH_Xh))&lt;&gt;0 Then&nbsp;&nbsp; <br/>Response.Write &#34;&lt;Script Language=JavaScript&gt;alert(&#39;悟空你又胡闹了&#39;);&lt;/Script&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;非法操作！系统做了如下记录↓&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;操作ＩＰ：&#34;&amp;Request.ServerVariables(&#34;REMOTE_ADDR&#34;)&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;操作时间：&#34;&amp;Now&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;操作页面：&#34;&amp;Request.ServerVariables(&#34;URL&#34;)&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;提交方式：ＧＥＴ&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;提交参数：&#34;&amp;XH_Get&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp; <br/>Response.Write &#34;提交数据：&#34;&amp;Request.QueryString(XH_Get)&nbsp;&nbsp; <br/>Response.End&nbsp;&nbsp; <br/>End If&nbsp;&nbsp; <br/>Next&nbsp;&nbsp; <br/>Next&nbsp;&nbsp; <br/>End If&nbsp;&nbsp; <br/>&#39;----------------------------------&nbsp;&nbsp; <br/><br/>&#39;--------COOKIE部份-------------------&nbsp;&nbsp;<br/>If Request.Cookies&lt;&gt;&#34;&#34; Then&nbsp;&nbsp;<br/>For Each XH_Cookie In Request.Cookies&nbsp;&nbsp;<br/><br/>For XH_Xh=0 To Ubound(XH_Inf2)&nbsp;&nbsp;<br/>If Instr(LCase(Request.Cookies(XH_Cookie)),XH_Inf2(XH_Xh))&lt;&gt;0 Then&nbsp;&nbsp;<br/>Response.Write &#34;&lt;Script Language=JavaScript&gt;alert(&#39;悟空你又胡闹了&#39;);&lt;/Script&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;非法操作！系统做了如下记录↓&lt;br&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;操作ＩＰ：&#34;&amp;Request.ServerVariables(&#34;REMOTE_ADDR&#34;)&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;操作时间：&#34;&amp;Now&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;操作页面：&#34;&amp;Request.ServerVariables(&#34;URL&#34;)&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;提交方式：Cookie&lt;br&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;提交参数：&#34;&amp;XH_Cookie&amp;&#34;&lt;br&gt;&#34;&nbsp;&nbsp;<br/>Response.Write &#34;提交数据：&#34;&amp;Request.Cookies(XH_Cookie)&nbsp;&nbsp;<br/>Response.End&nbsp;&nbsp;<br/>End If&nbsp;&nbsp;<br/>Next&nbsp;&nbsp;<br/>Next&nbsp;&nbsp;<br/>End If&nbsp;&nbsp;<br/>&#39;----------------------------------&nbsp;&nbsp;<br/>%&gt;&nbsp;&nbsp;<br/><br/>如果有必要用cookie做认证的可以用偶的试验下，可以保证躲过这次的自动攻击，但手动攻击不保证能防住，有条件的还是把cookie认证改成session认证保险点&nbsp;&nbsp;<br/><br/>在给个网友飘逸发的，如果你只是用新闻系统的，不用COOKIE的，可以用这个&nbsp;&nbsp;<br/><br/>代码如下&nbsp;&nbsp;<br/>&lt;%&nbsp;&nbsp;<br/>Response.Buffer = True&nbsp;&nbsp;&#39;缓存页面&nbsp;&nbsp;<br/>&#39;防范get注入&nbsp;&nbsp;<br/>If Request.QueryString &lt;&gt; &#34;&#34;&nbsp;&nbsp;Then StopInjection(Request.QueryString)&nbsp;&nbsp;<br/>&#39;防范post注入&nbsp;&nbsp;<br/>If Request.Form &lt;&gt; &#34;&#34;&nbsp;&nbsp;Then StopInjection(Request.Form)&nbsp;&nbsp;<br/>&#39;防范cookies注入&nbsp;&nbsp;<br/>If Request.Cookies &lt;&gt; &#34;&#34;&nbsp;&nbsp;Then StopInjection(Request.Cookies)&nbsp;&nbsp;<br/><br/>&#39;正则子函数&nbsp;&nbsp;<br/>Function StopInjection(Values)&nbsp;&nbsp;<br/>Dim regEx&nbsp;&nbsp;<br/>Set regEx = New RegExp&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;regEx.IgnoreCase = True&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;regEx.Global = True&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;regEx.Pattern = &#34;&#39;|;|#|([\s\b+()]+([email=sel&#101;ct%7Cup&#100;ate%7Cins&#101;rt%7Cdel&#101;te%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calt&#101;r%7Cdro&#112;%7Ccr&#101;ate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]sel&#101;ct|up&#100;ate|ins&#101;rt|del&#101;te|declare|@|exec|dbcc|alt&#101;r|dro&#112;|cr&#101;ate|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b[/email]+]*)&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sItem, sValue&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;For Each sItem In Values&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sValue = Values(sItem)&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If regEx.Test(sValue) Then&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write &#34;&lt;Script Language=javascript&gt;alert(&#39;非法注入！你的行为已被记录！！&#39;);history.back(-1);&lt;/Script&gt;&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.End&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set regEx = Nothing&nbsp;&nbsp;<br/>End function&nbsp;&nbsp;<br/>%&gt;&nbsp;&nbsp;<br/><br/><br/>把代码存为newsql.asp,在conn.asp里include一下就OK了。&nbsp;&nbsp;<br/><br/>写做还是要规范啊。&nbsp;&nbsp;<br/><br/>另外BS下那个nuclear3.com的家伙。捞钱不是这么捞的。&nbsp;&nbsp;<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=123" /> 
	  <id>http://www.nmju.net/default.asp?id=123</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[两则ASP数字运算验证码]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=7" label="ASP/PHP" /> 
	  <updated>2008-10-27T16:18:19+08:00</updated>
	  <published>2008-10-27T16:18:19+08:00</published>
		  <summary type="html"><![CDATA[<p>&lt;%<br />
Function getcode() <br />
Dim CodeIndex<br />
CodeIndex=0<br />
Dim QuesionNum<br />
QuesionNum=100 <br />
Dim CountType<br />
CountType=3 <br />
Dim Num1<br />
Dim Num2<br />
Dim Dis_Num<br />
Dim Sum<br />
Randomize<br />
Num1 = Int(QuesionNum * Rnd)<br />
Num2 = Int(QuesionNum * Rnd)<br />
CodeIndex = Int(CountType * Rnd)<br />
If CodeIndex = 0 then<br />
Dis_Num = &quot;=&quot; &amp; Num1 &amp; &quot;+&quot; &amp; Num2<br />
Sum = Num1 + Num2<br />
End If<br />
If CodeIndex = 1 then<br />
Dis_Num = &quot;=&quot; &amp; Num1 &amp; &quot;-&quot; &amp; Num2<br />
Sum = Num1 - Num2<br />
End If<br />
If CodeIndex = 2 then<br />
Dis_Num = &quot;=&quot; &amp; Num1 &amp; &quot;*&quot; &amp; Num2<br />
Sum = Num1 * Num2<br />
End If<br />
Session(&quot;GetCode&quot;) = Sum<br />
getcode = &quot;&lt;span style=&quot;&quot;margin-right:40px;&quot;&quot;&gt;&quot; &amp; Dis_Num &amp; &quot;&lt;/span&gt;&quot;<br />
End Function</p>
<p>%&gt;</p>
<h3 style="color: red"><br />
-----上面为文本的，下面为图片的，要保存到GETCODE.ASP文件中去----</h3>
<p><br />
&lt;<a href="http://www.nmju.net/mailto:%@CodePage=&quot;65001&quot;%">%@CodePage=&quot;65001&quot;%</a>&gt; <br />
&lt;% <br />
Call Com_CreatValidCode(&quot;GetCode&quot;)</p>
<p>Sub Com_CreatValidCode(pSN) <br />
&nbsp;&nbsp;&nbsp; ' 禁止缓存 <br />
&nbsp;&nbsp;&nbsp; Response.Expires = -9999&nbsp; <br />
&nbsp;&nbsp;&nbsp; Response.AddHeader &quot;Pragma&quot;,&quot;no-cache&quot; <br />
&nbsp;&nbsp;&nbsp; Response.AddHeader &quot;cache-ctrol&quot;,&quot;no-cache&quot; <br />
&nbsp;&nbsp;&nbsp; 'Response.ContentType = &quot;Image/BMP&quot;</p>
<p>&nbsp;&nbsp;&nbsp; Randomize</p>
<p>&nbsp;&nbsp;&nbsp; Dim i, ii, iii</p>
<p>&nbsp;&nbsp;&nbsp; Const cOdds = 4 ' 杂点出现的机率 <br />
&nbsp;&nbsp;&nbsp; Const cAmount = 13 ' 文字数量 <br />
&nbsp;&nbsp;&nbsp; Const cCode = &quot;0123456789+=?&quot;</p>
<p>&nbsp;&nbsp;&nbsp; ' 颜色的数据(字符，背景) <br />
&nbsp;&nbsp;&nbsp; Dim vColorData(1),vColorRandom(10) <br />
&nbsp;&nbsp;&nbsp; 'vColorData(0) = ChrB(Int(Rnd*155)+100) &amp; ChrB(Int(Rnd*155)+100) &amp; ChrB(Int(Rnd*155)+100) ' 蓝0，绿0，红0（黑色） <br />
&nbsp;&nbsp;&nbsp; vColorRandom(0)=ChrB(150) &amp; ChrB(0) &amp; ChrB(0) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(1)=ChrB(0) &amp; ChrB(150) &amp; ChrB(0) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(2)=ChrB(0) &amp; ChrB(0) &amp; ChrB(150) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(3)=ChrB(0) &amp; ChrB(50) &amp; ChrB(150) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(4)=ChrB(150) &amp; ChrB(50) &amp; ChrB(0) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(5)=ChrB(150) &amp; ChrB(0) &amp; ChrB(150) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(6)=ChrB(150) &amp; ChrB(100) &amp; ChrB(10) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(7)=ChrB(150) &amp; ChrB(40) &amp; ChrB(120) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(8)=ChrB(150) &amp; ChrB(0) &amp; ChrB(250) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(9)=ChrB(100) &amp; ChrB(100) &amp; ChrB(100) <br />
&nbsp;&nbsp;&nbsp; vColorRandom(10)=ChrB(50) &amp; ChrB(50) &amp; ChrB(50) <br />
&nbsp;&nbsp;&nbsp; vColorData(0) = vColorRandom(0) <br />
&nbsp;&nbsp;&nbsp; vColorData(1) = ChrB(250) &amp; ChrB(250) &amp; ChrB(255) '背景色 蓝250，绿236，红211（浅蓝色） <br />
&nbsp;&nbsp;&nbsp; ' 随机产生字符 <br />
&nbsp;&nbsp;&nbsp; Dim vCode(6),vCodes,vCodeColors(6) <br />
&nbsp;&nbsp;&nbsp; For i = 0 To 6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vCodeColors(i)=vColorRandom(Int(Rnd * 10)) <br />
&nbsp;&nbsp;&nbsp; Next <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; vCode(0) = Int(Rnd*8)+1 <br />
&nbsp;&nbsp;&nbsp; vCode(1) = Int(Rnd*9) <br />
&nbsp;&nbsp;&nbsp; vCode(2) = 10 <br />
&nbsp;&nbsp;&nbsp; vCode(3) = Int(Rnd*8)+1 <br />
&nbsp;&nbsp;&nbsp; vCode(4) = Int(Rnd*9) <br />
&nbsp;&nbsp;&nbsp; vCode(5) = 11 <br />
&nbsp;&nbsp;&nbsp; vCode(6) = 12 <br />
&nbsp;&nbsp;&nbsp; Session(pSN) = vCode(0)*10+vCode(1)+vCode(3)*10+vCode(4) '记录入Session <br />
&nbsp;&nbsp;&nbsp; ' 字符的数据 <br />
&nbsp;&nbsp;&nbsp; Dim vNumberData(12) <br />
&nbsp;&nbsp;&nbsp; vNumberData(0) = &quot;1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(1) = &quot;1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(2) = &quot;1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(3) = &quot;1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(4) = &quot;1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(5) = &quot;1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(6) = &quot;1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(7) = &quot;1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(8) = &quot;1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(9) = &quot;1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(10) = &quot;1111111111111101111111110111111111011111100000001111110111111111011111111101111111110111111111111111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(11) = &quot;1111111111111111111111111111111000000001111111111111111111111000000001111111111111111111111111111111&quot; <br />
&nbsp;&nbsp;&nbsp; vNumberData(12) = &quot;1110000111110011001111011110111111111011111111001111111001111111001111111111111111110011111111001111&quot; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; ' 输出图像文件头 <br />
&nbsp;&nbsp;&nbsp; Response.BinaryWrite ChrB(66) &amp; ChrB(77) &amp; ChrB(166) &amp; ChrB(8) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp;_ <br />
&nbsp;&nbsp;&nbsp; ChrB(0) &amp; ChrB(0) &amp; ChrB(54) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(40) &amp; ChrB(0) &amp;_ <br />
&nbsp;&nbsp;&nbsp; ChrB(0) &amp; ChrB(0) &amp; ChrB(72) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(10) &amp; ChrB(0) &amp;_ <br />
&nbsp;&nbsp;&nbsp; ChrB(0) &amp; ChrB(0) &amp; ChrB(1) &amp; ChrB(0)</p>
<p>&nbsp;&nbsp;&nbsp; ' 输出图像信息头 <br />
&nbsp;&nbsp;&nbsp; Response.BinaryWrite ChrB(24) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(112) &amp; ChrB(8) &amp;_ <br />
&nbsp;&nbsp;&nbsp; ChrB(0) &amp; ChrB(0) &amp; ChrB(18) &amp; ChrB(11) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(18) &amp; ChrB(11) &amp;_ <br />
&nbsp;&nbsp;&nbsp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp;_ <br />
&nbsp;&nbsp;&nbsp; ChrB(0) &amp; ChrB(0) <br />
&nbsp;&nbsp;&nbsp; For i = 9 To 0 Step -1 ' 历经所有行 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For ii = 0 To 6 ' 历经所有字 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For iii = 1 To 10 ' 历经所有像素 <br />
&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vColorData(0)=vCodeColors(ii) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Rnd * 99 + 1 &lt; cOdds Then ' 随机生成杂点 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.BinaryWrite vColorData(0) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 10 + iii, 1)) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next <br />
&nbsp;&nbsp;&nbsp; Response.BinaryWrite vColorData(1) &amp; vColorData(1) <br />
&nbsp;&nbsp;&nbsp; Next <br />
End Sub</p>
<p>%&gt;&nbsp; <br />
&nbsp;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=108" /> 
	  <id>http://www.nmju.net/default.asp?id=108</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP内置对象Request的ServerVariables集合列表]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=7" label="ASP/PHP" /> 
	  <updated>2008-09-18T12:27:21+08:00</updated>
	  <published>2008-09-18T12:27:21+08:00</published>
		  <summary type="html"><![CDATA[ASP内置对象Request的ServerVariables集合列表<br />Request.ServerVariables(&quot;Url&quot;) <br />返回服务器地址<br /><br />Request.ServerVariables(&quot;Path_Info&quot;) <br />客户端提供的路径信息<br /><br />Request.ServerVariables(&quot;Appl_Physical_Path&quot;) <br />与应用程序元数据库路径相应的物理路径<br /><br />Request.ServerVariables(&quot;Path_Translated&quot;) <br />通过由虚拟至物理的映射后得到的路径<br /><br />Request.ServerVariables(&quot;Script_Name&quot;) <br />执行脚本的名称<br /><br />Request.ServerVariables(&quot;Query_String&quot;) <br />查询字符串内容<br /><br />Request.ServerVariables(&quot;Http_Referer&quot;) <br />请求的字符串内容<br /><br />Request.ServerVariables(&quot;Server_Port&quot;) <br />接受请求的服务器端口号<br /><br />Request.ServerVariables(&quot;Remote_Addr&quot;) <br />发出请求的远程主机的IP地址<br /><br />Request.ServerVariables(&quot;Remote_Host&quot;) <br />发出请求的远程主机名称<br /><br />Request.ServerVariables(&quot;Local_Addr&quot;) <br />返回接受请求的服务器地址<br /><br />Request.ServerVariables(&quot;Http_Host&quot;) <br />返回服务器地址<br /><br />Request.ServerVariables(&quot;Server_Name&quot;) <br />服务器的主机名、DNS地址或IP地址<br /><br />Request.ServerVariables(&quot;Request_Method&quot;) <br />提出请求的方法比如GET、HEAD、POST等等<br /><br />Request.ServerVariables(&quot;Server_Port_Secure&quot;)<br />如果接受请求的服务器端口为安全端口时，则为1，否则为0<br /><br />Request.ServerVariables(&quot;Server_Protocol&quot;)<br />服务器使用的协议的名称和版本<br /><br />Request.ServerVariables(&quot;Server_Software&quot;)<br />应答请求并运行网关的服务器软件的名称和版本<br /><br />Request.ServerVariables(&quot;All_Http&quot;)<br />客户端发送的所有HTTP标头，前缀HTTP_<br /><br />Request.ServerVariables(&quot;All_Raw&quot;)<br />客户端发送的所有HTTP标头,其结果和客户端发送时一样，没有前缀HTTP_<br /><br />Request.ServerVariables(&quot;Appl_MD_Path&quot;)<br />应用程序的元数据库路径<br /><br />Request.ServerVariables(&quot;Content_Length&quot;)<br />客户端发出内容的长度<br /><br />Request.ServerVariables(&quot;Https&quot;)<br />如果请求穿过安全通道（SSL），则返回ON如果请求来自非安全通道，则返回OFF<br /><br />Request.ServerVariables(&quot;Instance_ID&quot;)<br />IIS实例的ID号<br /><br />Request.ServerVariables(&quot;Instance_Meta_Path&quot;)<br />响应请求的IIS实例的元数据库路径<br /><br />Request.ServerVariables(&quot;Http_Accept_Encoding&quot;)<br />返回内容如：gzip,deflate<br /><br />Request.ServerVariables(&quot;Http_Accept_Language&quot;)<br />返回内容如：en-us<br /><br />Request.ServerVariables(&quot;Http_Connection&quot;)<br />返回内容：Keep-Alive<br /><br />Request.ServerVariables(&quot;Http_Cookie&quot;)<br /><br />Request.ServerVariables(&quot;Http_User_Agent&quot;)<br />返回内容：Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)<br /><br />Request.ServerVariables(&quot;Https_Keysize&quot;)<br />安全套接字层连接关键字的位数，如128<br /><br />Request.ServerVariables(&quot;Https_Secretkeysize&quot;)<br /><br />服务器验证私人关键字的位数如1024<br /><br />Request.ServerVariables(&quot;Https_Server_Issuer&quot;)<br />服务器证书的发行者字段<br /><br />Request.ServerVariables(&quot;Https_Server_Subject&quot;)<br />服务器证书的主题字段<br /><br />Request.ServerVariables(&quot;Auth_Password&quot;)<br />当使用基本验证模式时，客户在密码对话框中输入的密码<br /><br />Request.ServerVariables(&quot;Auth_Type&quot;)<br />是用户访问受保护的脚本时，服务器用於检验用户的验证方法<br /><br />Request.ServerVariables(&quot;Auth_User&quot;)<br />代证的用户名<br /><br />Request.ServerVariables(&quot;Cert_Cookie&quot;)<br />唯一的客户证书ID号<br /><br />Request.ServerVariables(&quot;Cert_Flag&quot;)<br />客户证书标志，如有客户端证书，则bit0为0如果客户端证书验证无效，bit1被设置为1<br /><br />Request.ServerVariables(&quot;Cert_Issuer&quot;)<br />用户证书中的发行者字段<br /><br />Request.ServerVariables(&quot;Cert_Keysize&quot;)<br />安全套接字层连接关键字的位数，如128<br /><br />Request.ServerVariables(&quot;Cert_Secretkeysize&quot;)<br />服务器验证私人关键字的位数如1024<br /><br />Request.ServerVariables(&quot;Cert_Serialnumber&quot;)<br />客户证书的序列号字段<br /><br />Request.ServerVariables(&quot;Cert_Server_Issuer&quot;)<br />服务器证书的发行者字段<br /><br />Request.ServerVariables(&quot;Cert_Server_Subject&quot;)<br />服务器证书的主题字段<br /><br />Request.ServerVariables(&quot;Cert_Subject&quot;)<br />客户端证书的主题字段<br /><br />Request.ServerVariables(&quot;Content_Type&quot;)<br />客户发送的form内容或HTTPPUT的数据类型<br />]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=97" /> 
	  <id>http://www.nmju.net/default.asp?id=97</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[两个高效的ASP分页函数（统计记录数，分页提取记录）]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=7" label="ASP/PHP" /> 
	  <updated>2008-09-12T13:47:19+08:00</updated>
	  <published>2008-09-12T13:47:19+08:00</published>
		  <summary type="html"><![CDATA[<p>&lt;%<br />'&nbsp;&nbsp;&nbsp; /*智能返回分页SQL语句*/<br />'&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />'&nbsp;&nbsp;&nbsp; /// 功能:智能返回分页SQL语句<br />'&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;primaryKey&quot;&gt;主键（不能为空）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;queryFields&quot;&gt;提取字段（不能为空）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;tableName&quot;&gt;表（理论上允许多表）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;condition&quot;&gt;条件（可以空）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;OrderBy&quot;&gt;排序，格式：字段名+&quot;&quot;+ASC（可以空）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;pageSize&quot;&gt;分页数（不能为空）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;pageIndex&quot;&gt;当前页，起始为：1（不能为空）&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;&lt;/returns&gt;<br />Public Function GetPageListSql( primaryKey,&nbsp; queryFields,&nbsp; tableName,&nbsp; condition,&nbsp; orderBy,&nbsp; pageSize,&nbsp; pageIndex)</p>
<p>Dim strTmp,SqlSelect,SqlPrimaryKeySelect,strOrderBy,strWhere,strTop,pageindexsize<br />&nbsp;strTmp=&quot;&quot;<br />'//---strTmp用于返回的SQL语句<br />&nbsp;SqlSelect = &quot;&quot;<br />&nbsp;SqlPrimaryKeySelect = &quot;&quot;<br />&nbsp;strOrderBy = &quot;&quot;<br />&nbsp;strWhere = &quot; where 1=1 &quot;<br />&nbsp;strTop = &quot;&quot;<br />&nbsp;pageindexsize = 0</p>
<p>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //0：分页数量<br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //1:提取字段<br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //2:表<br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //3:条件<br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //4:主键不存在的记录<br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //5:排序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlSelect = &quot; select top {0} {1} from {2} {3} {4} {5}&quot;<br />&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //0:主键<br />&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //1:TOP数量,为分页数*(排序号-1)<br />&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //2:表<br />&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //3:条件<br />&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //4:排序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlPrimaryKeySelect = &quot; and {0} not in (select {1} {0} from {2} {3} {4}) &quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if orderBy &lt;&gt; &quot;&quot; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strOrderBy = &quot; order by &quot;&amp;orderBy<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br />&nbsp;&nbsp;&nbsp;&nbsp; if condition &lt;&gt; &quot;&quot; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strWhere =strWhere&amp;&quot; and &quot;&amp;condition<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageindexsize = (pageIndex - 1) * pageSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if cint(pageindexsize) &gt; 0 then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strTop = &quot; top &quot; &amp; pageindexsize</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlPrimaryKeySelect = Replace(Replace(Replace(Replace(Replace(SqlPrimaryKeySelect,&quot;{0}&quot;, primaryKey),&quot;{1}&quot;, strTop),&quot;{2}&quot;, tableName),&quot;{3}&quot;, strWhere),&quot;{4}&quot;, strOrderBy)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strTmp = Replace(Replace(Replace(Replace(Replace(Replace(SqlSelect,&quot;{0}&quot;, pageSize),&quot;{1}&quot;, queryFields),&quot;{2}&quot;, tableName),&quot;{3}&quot;, strWhere),&quot;{4}&quot;, SqlPrimaryKeySelect),&quot;{5}&quot;, strOrderBy)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strTmp = Replace(Replace(Replace(Replace(Replace(Replace(SqlSelect,&quot;{0}&quot;, pageSize),&quot;{1}&quot;, queryFields),&quot;{2}&quot;, tableName),&quot;{3}&quot;, strWhere),&quot;{4}&quot;, &quot;&quot;),&quot;{5}&quot;, strOrderBy)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetPageListSql= strTmp</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />End Function </p>
<p>'&nbsp;&nbsp;&nbsp; /*分页查询数据记录总数获取*/<br />'&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />'&nbsp;&nbsp;&nbsp; ///功能: 分页查询数据记录总数获取<br />'&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;ptbName&quot;&gt;----要显示的表或多个表的连接&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;pID&quot;&gt;----主表的主键&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;pstrCondition&quot;&gt;----查询条件,不需where&lt;/param&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />'&nbsp;&nbsp;&nbsp; /// &lt;param name=&quot;pDist&quot;&gt;----是否添加查询字段的 DISTINCT 默认0不添加/1添加&lt;/param&gt;<br />'&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;&lt;/returns&gt;<br />Public Function GetPageListCounts( pID,&nbsp; ptbName,&nbsp; pstrCondition,&nbsp; pDist)</p>
<p>'&nbsp; //---存放取得查询结果总数的查询语句&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //---对含有DISTINCT的查询进行SQL构造<br />'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //---对含有DISTINCT的总数查询进行SQL构造<br />Dim strTmp,SqlSelect,SqlCounts<br />&nbsp; strTmp = &quot;&quot;<br />&nbsp; SqlSelect = &quot;&quot;<br />&nbsp; SqlCounts = &quot;&quot;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if CInt(pDist) = 0 then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlSelect = &quot;Select &quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCounts = &quot;COUNT(*)&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlSelect = &quot;Select DISTINCT &quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCounts = &quot;COUNT(DISTINCT &quot; &amp; pID&amp; &quot;)&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End if<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if pstrCondition =&quot;&quot; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strTmp = SqlSelect &amp; &quot; &quot;&amp; SqlCounts &amp; &quot; FROM &quot; &amp; ptbName &amp; &quot;&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strTmp = SqlSelect &amp; &quot; &quot; &amp; SqlCounts &amp; &quot; FROM &quot;&amp; ptbName&amp; &quot; Where (1=1) and &quot; &amp; pstrCondition<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetPageListCounts= strTmp</p>
<p>End Function </p>
<p>&nbsp;</p>
<p>%&gt;</p>
<p>&nbsp;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=95" /> 
	  <id>http://www.nmju.net/default.asp?id=95</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[十款ASP的CMS系统]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=7" label="ASP/PHP" /> 
	  <updated>2008-05-20T19:00:26+08:00</updated>
	  <published>2008-05-20T19:00:26+08:00</published>
		  <summary type="html"><![CDATA[第一名：动易 <a title="http://www.powereasy.net/" href="http://www.powereasy.net/" target="_blank">http://www.powereasy.net/</a><br />动易无疑是ASPCMS系统中的老大哥了，国内著名的站长综合网站&ldquo;网页吧&rdquo;采用的也是这套系统，这套国产AspCMS是一套非常强大的且人性话系统，一路走来，动易不断完善，而且也不断加强功能，包括个人版，学校版，政府版，企业版，后台包括的功能，信息发布，类别管理，权限控制，信息采集，而且跟第三方的程序，比如论坛，商城， blog可以完美结合，基本上可以满足一个中大型网站的要求，但Asp和Access的的局限性，还有本身功能Dll的限制，使得免费版差不多成鸡肋。这套系统比较适合非专业人士使用，在使用操作方面做的非常人性话，而如果说想自己修改或者二次开发的话就有点免为其难了。<br />人气指数：★★★★★ 人性化指数：★★★★★ 适宜二次开发指数：★★<br />适宜人群：不需要对网站程序修改者，适宜网站类型：各类网站<br /><br />第二名：乔客 <a title="http://www.joekoe.com/" href="http://www.joekoe.com/" target="_blank">http://www.joekoe.com/</a><br />乔客从最早的整站系统，到V系列，再到CMS1.0/1.2/2.0/3.0，一路走来经历不少波折，从早期的大红大紫到被动易的迎头赶上如今似乎一直处于压抑状态，3.0的使用者了了无几，远不如1.2受欢迎，但饿死的骆驼比马大，这位ASPCMS界中元老级别的系统在不断的探索着CMS新的出路，其系统最大的特点是整合了各类的程序模块，有自带论坛，博客圈，影视频道，音乐频道，下载频道，新闻频道等等，非常适合需要多种模块而不想整合的人使用。其4.0版本也将在一片期待声中发布，新版本的开源特性是最大的期待。<br />人气指数：★★★★ 人性化指数：★★★★ 适宜二次开发指数：★★★<br />适宜人群：不需要对网站程序做较大改动者，适宜网站类型：各类网站<br /><br />第三名：风讯 <a title="http://www.foosun.cn/" href="http://www.foosun.cn/" target="_blank">http://www.foosun.cn/</a><br />风讯的系统功能强大，自由度高，是现在人气比较高的系统之一，可以根据自己的想法做出一个网页从而建立一个有自我风格的网站，更新速度快，一直有新的版本出现，现在又开放采集、下载、投稿、图片整站管理系统，第三方整合等功能，开源是它最大特点，希望保持。然后缺点就是后台人性化差了一点，上手有点难度，而且连一套默认的模板都没有，因为自由度太高了，让一些新手更难上手，其最新的4.0版本在个方面都有多提高，也是一款非常值得关注的CMS系统。<br />人气指数：★★★★ 人性化指数：★★★ 适宜二次开发指数：★★★<br />适宜人群：对HTML代码比较了解者，适宜网站类型：咨询类，下载类等<br /><br />第四名：TSYS <a title="http://www.tsyschina.com/" href="http://www.tsyschina.com/" target="_blank">http://www.tsyschina.com/</a><br />非常遗憾的是从2.0beta版本发布后，作者就一下子人间蒸发了，但这并不影响这款优秀的网站内容管理系统所带给大家的惊喜，其独特的资源特性可以让你很方便的管理网站内的信息，方便信息在显示时候的重新整合，目前，由TSYS的爱好者已经发布了诸多的TSYS系统修改版，非常值得一用。<br />人气指数：★★★ 人性化指数：★★★ 适宜二次开发指数：★★★★<br />适宜人群：对HTML代码熟悉者，适宜网站类型：咨询类等<br /><br />第五名：新云 <a title="http://www.newasp.cn/" href="http://www.newasp.cn/" target="_blank">http://www.newasp.cn/</a><br />新云最初做的是下载站，后来转为多模块的系统，最近发现有不少的网站都在使用。由文章、下载、商城、留言、用户管理五大功能模块和广告、公告、连接、统计、采集、模板管理、数据库管理等多个通用模块组成，而且功能确实有一些值得称道的地方，不过又是DLL的，免费版有不少的限制，但对一个简单基本的网站来说，功能够用了。<br />人气指数：★★★ 人性化指数：★★★★ 适宜二次开发指数：★★<br />适宜人群：不需要对网站程序做较大改动者，适宜网站类型：各类网站<br /><br />第六名：科汛 <a title="http://www.kesion.com/" href="http://www.kesion.com/" target="_blank">http://www.kesion.com/</a><br />科汛是一套新出的网站系统，其功能非常强大，目前主流网站的功能在其系统内均能实现，具有强大的标签(JS)管理功能，个性化的标签(JS)参数配置功能，做一个个性的大站不再是梦想。网站整体开源，具有文章模块，图片模块，下载模块，动漫模块，音乐模块，会员模块，采集模块等等，功能非常不错。但其网站的整体概念脱离不了动易风讯的影响，不过就冲着科汛的诸多好用的功能，这款CMS也是非常值得关注的。<br />人气指数：★★★ 人性化指数：★★★★★ 适宜二次开发指数：★★★<br />适宜人群：不需要对网站程序做较大改动者，适宜网站类型：各类网站<br /><br />第七名：创力 <a title="http://www.aspoo.com/" href="http://www.aspoo.com/" target="_blank">http://www.aspoo.com/</a><br />创力是一套无任何文件加密，不需要注册组件，不需要绑定域名，经过完善设计、精心打造的一个适用于各种服务器环境的安全、稳定、快速、强大、高效、易用、优秀的网站建设解决方案。系统功能齐全，集成文章、下载、图片、影视、商城、留言、用户等大模块，并可无限制N个与文章、下载、图片等模块相同的的模块，每个模块下更可无限栏目分类，加上Rss订阅、公告、广告、统计、关键字、友情链接、JS代码、站点地图&hellip;&hellip;等等，与科汛一下，在网站的概念上没有创新，笔者认为应该属于同类CMS。<br />人气指数：★★★ 人性化指数：★★★★ 适宜二次开发指数：★★<br />适宜人群：不需要对网站程序做较大改动者，适宜网站类型：各类网站<br /><br />第八名：JTBC <a title="http://www.jetiben.com/" href="http://www.jetiben.com/" target="_blank">http://www.jetiben.com/</a><br />JTBC也是一套新出的网站系统，值得关注的是其与其他CMS系统在概念上几乎完全不同，是一套可对现有模块进行扩充与克隆的网站系统，采用了UTF-8编码，是目前ASPCMS界中唯一一款真正意义上做到代码与程序全脱离的程序，采用了XML的散存储技术来存储各类信息，而且在代码与程序脱离的技术上，又加人了语言与代码脱离，语言与程序脱离的两两脱离关系，基于这种特性，JTBC就具有了非常强大的可扩充性和可二次开发性，JTBC可能对于未上手的人来说是一套很头大的系统，但对于熟悉的人而言使用起来非常有效率。<br />人气指数：★★ 人性化指数：★★★ 适宜二次开发指数：★★★★★<br />适宜人群：对HTML代码非常熟悉者，适宜网站类型：各类网站<br /><br />第九名：KINGCMS <a title="http://www.kingcms.net/" href="http://www.kingcms.net/" target="_blank">http://www.kingcms.net/</a><br />KingCMS 3.0 是一款小巧、高效、人性化的CMS系统，生成HTML是整个系统最大的特点，文章与论坛都可以生成，大大的减少了对服务器的压力，基于xml名字空间样式的标签，调用简单，调用样式随意自如，在网站的概念上，可能与TSYS有相似之处，但在很多方面可能是有过之而无不及，是一款非常适合对HTML代码以及网站的概念已经比较清楚的用户。<br />人气指数：★★ 人性化指数：★★★★ 适宜二次开发指数：★★★★<br />适宜人群：对HTML代码熟悉者，适宜网站类型：咨询类等<br /><br />第十名：Feitec <a title="http://www.feitec.com/" href="http://www.feitec.com/" target="_blank">http://www.feitec.com/</a><br />Feitec CMS 以其&ldquo;上手容易、建站迅速、功能强大、个性设置&rdquo;等特色吸引了不少中小型网站客户，获得了认可，凭借者多年来对于网站系统的认识，积累了不好有用的，人性化的网站设置方案。非常适合中小型网站使用，皮肤社定等诸多方面做的都很人性化与只能化，比较合适网站的初级使用者学习使用。<br />人气指数：★★ 人性化指数：★★★★ 适宜二次开发指数：★★★<br />适宜人群：不需要对网站程序做较大改动者，适宜网站类型：各类网站]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=74" /> 
	  <id>http://www.nmju.net/default.asp?id=74</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[rs.open sql,conn,1,1全接触]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.nmju.net/</uri>
		 <email>luckcf@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.nmju.net/default.asp?cateID=7" label="ASP/PHP" /> 
	  <updated>2008-04-03T09:43:40+08:00</updated>
	  <published>2008-04-03T09:43:40+08:00</published>
		  <summary type="html"><![CDATA[<p>RS.OPEN SQL,CONN,A,B</p>
<p>A:</p>
<p>ADOPENFORWARDONLY(=0) <br />只读,且当前数据记录只能向下移动</p>
<p>ADOPENKEYSET(=1) <br />只读,当前数据记录可自由移动</p>
<p>ADOPENDYNAMIC(=2) <br />可读写,当前数据记录可自由移动</p>
<p>ADOPENSTATIC(=3) <br />可读写,当前数据记录可自由移动,可看到新增记录</p>
<p>B:</p>
<p>ADLOCKREADONLY(=1) <br />缺省锁定类型，记录集是只读的，不能修改记录</p>
<p>ADLOCKPESSIMISTIC(=2) <br />悲观锁定，当修改记录时，数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始，则立即锁住记录。</p>
<p>ADLOCKOPTIMISTIC(=3) <br />乐观锁定 ，直到用Update方法提交更新记录时才锁定记录。</p>
<p>ADLOCKBATCHOPTIMISTIC(=4) <br />批量乐观锁定，允许修改多个记录，只有调用UpdateBatch方法后才锁定记录。</p>
<p>当不需要改动任何记录时，应该使用只读的记录集，这样提供者不用做任何检测。<br />对于一般的使用，乐观的锁定可能是最好的选择，因为记录只被锁定一小段时间，<br />数据在这段时间被更新。这减少了资源的使用。</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.nmju.net/article.asp?id=10" /> 
	  <id>http://www.nmju.net/default.asp?id=10</id>
  </entry>	
		
</feed>
