<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[飞鸟的天空 - PHP资料]]></title>
<link>http://www.cmuch.com/</link>
<description><![CDATA[What you are you do not see,What you see is your shadow.]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[cn_vipus@yahoo.com.cn(cn_vipus)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>飞鸟的天空</title>
	<url>http://www.cmuch.com/images/logos.gif</url>
	<link>http://www.cmuch.com/</link>
	<description>飞鸟的天空</description>
</image>

			<item>
			<link>http://www.cmuch.com/article.asp?id=219</link>
			<title><![CDATA[php禁止页面缓存的函数]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Sun,27 Apr 2008 20:47:46 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=219</guid>
		<description><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>function nocache_headers() {&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; @ header(&#39;Expires: Thu, 01 Jan 1970 00:00:01 GMT&#39;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; @ header(&#39;Last-Modified: &#39; . gmdate(&#39;D, d M Y H:i:s&#39;) . &#39; GMT&#39;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; @ header(&#39;Cache-Control: no-cache, must-revalidate, max-age=0&#39;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; @ header(&#39;Pragma: no-cache&#39;);&nbsp;&nbsp;<br/>}&nbsp;&nbsp;<br/>nocache_headers(); <br/></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=216</link>
			<title><![CDATA[可多次使用的仿126邮箱选项卡的源码]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Mon,14 Apr 2008 00:02:21 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=216</guid>
		<description><![CDATA[<span style="font-size:11pt"><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &gt; <br/>&lt;!-- <br/>引用时保留下原创作者喽,尊重任何一位原创作者,促进中国互联网进程 <br/>Editor:weasle <br/><a href="http://www.hxcgw.com" target="_blank" rel="external">http://www.hxcgw.com</a> <br/>Email:weasle@163.com <br/>QQ:112011531 <br/>--&gt; <br/>&lt;html xmlns=&#34;<a href="http://www.w3.org/1999/xhtml" target="_blank" rel="external">http://www.w3.org/1999/xhtml</a>&#34;&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;简洁Tab&lt;/title&gt; <br/>&lt;style type=&#34;text/css&#34;&gt; <br/>&lt;!-- <br/>body,div,ul,li{ <br/> padding:0; <br/> text-align:center; <br/>} <br/>body{ <br/> font:12px &#34;宋体&#34;; <br/> text-align:center; <br/>} <br/>a:link{ <br/> color:#00F; <br/> text-decoration:none; <br/>} <br/>a:visited { <br/> color: #00F; <br/> text-decoration:none; <br/>} <br/>a:hover { <br/> color: #c00; <br/> text-decoration:underline; <br/>} <br/>ul{ list-style:none;} <br/>/*选项卡1*/ <br/>#Tab1{ <br/>width:460px; <br/>margin:0px; <br/>padding:0px; <br/>margin:0 auto;} <br/>/*选项卡2*/ <br/>#Tab2{ <br/>width:576px; <br/>margin:0px; <br/>padding:0px; <br/>margin:0 auto;} <br/>/*菜单class*/ <br/>.Menubox { <br/>width:100%; <br/>background:url(/upload/20071003220848703.gif); <br/>height:28px; <br/>line-height:28px; <br/>} <br/>.Menubox ul{ <br/>margin:0px; <br/>padding:0px; <br/>} <br/>.Menubox li{ <br/> float:left; <br/> display:block; <br/> cursor:pointer; <br/> width:114px; <br/> text-align:center; <br/> color:#949694; <br/> font-weight:bold; <br/> } <br/>.Menubox li.hover{ <br/> padding:0px; <br/> background:#fff; <br/> width:116px; <br/> border-left:1px solid #A8C29F; <br/> border-top:1px solid #A8C29F; <br/> border-right:1px solid #A8C29F; <br/>background:url(/upload/20071003220848927.gif); <br/> color:#739242; <br/> font-weight:bold; <br/> height:27px; <br/>line-height:27px; <br/>} <br/>.Contentbox{ <br/> clear:both; <br/> margin-top:0px; <br/> border:1px solid #A8C29F; <br/> border-top:none; <br/> height:181px; <br/> text-align:center; <br/> padding-top:8px; <br/>} <br/>--&gt; <br/>&lt;/style&gt; <br/>&lt;script&gt; <br/>&lt;!-- <br/>/*第一种形式 第二种形式 更换显示样式*/ <br/>function setTab(name,cursel,n){ <br/> for(i=1;i&lt;=n;i++){ <br/>&nbsp;&nbsp;var menu=document.getElementById(name+i); <br/>&nbsp;&nbsp;var con=document.getElementById(&#34;con_&#34;+name+&#34;_&#34;+i); <br/>&nbsp;&nbsp;menu.className=i==cursel?&#34;hover&#34;:&#34;&#34;; <br/>&nbsp;&nbsp;con.style.display=i==cursel?&#34;block&#34;:&#34;none&#34;; <br/> } <br/>} <br/>//--&gt; <br/>&lt;/script&gt; <br/>&lt;/head&gt; <br/>&lt;body&gt; <br/><br/><br/> <br/>&lt;div id=&#34;Tab1&#34;&gt; <br/>&lt;div class=&#34;Menubox&#34;&gt; <br/>&lt;ul&gt; <br/>&nbsp;&nbsp; &lt;li id=&#34;one1&#34; onclick=&#34;setTab(&#39;one&#39;,1,4)&#34; &gt;新闻1&lt;/li&gt; <br/>&nbsp;&nbsp; &lt;li id=&#34;one2&#34; onclick=&#34;setTab(&#39;one&#39;,2,4)&#34; &gt;新闻2&lt;/li&gt; <br/>&nbsp;&nbsp; &lt;li id=&#34;one3&#34; onclick=&#34;setTab(&#39;one&#39;,3,4)&#34;&gt;新闻3&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; &lt;li id=&#34;one4&#34; onclick=&#34;setTab(&#39;one&#39;,4,4)&#34;&gt;新闻4&lt;/li&gt; <br/>&lt;/ul&gt; <br/>&lt;/div&gt; <br/> &lt;div class=&#34;Contentbox&#34;&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_one_1&#34; &gt;新闻列表1&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_one_2&#34; style=&#34;display:none&#34;&gt;新闻列表2&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_one_3&#34; style=&#34;display:none&#34;&gt;新闻列表3&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_one_4&#34; style=&#34;display:none&#34;&gt;新闻列表4&lt;/div&gt;&nbsp;&nbsp;<br/> &lt;/div&gt; <br/>&lt;/div&gt; <br/><br/> <br/>&lt;div id=&#34;Tab2&#34;&gt; <br/>&lt;div class=&#34;Menubox&#34;&gt; <br/>&lt;ul&gt; <br/>&nbsp;&nbsp; &lt;li id=&#34;two1&#34; onclick=&#34;setTab(&#39;two&#39;,1,4)&#34; &gt;新闻1&lt;/li&gt; <br/>&nbsp;&nbsp; &lt;li id=&#34;two2&#34; onclick=&#34;setTab(&#39;two&#39;,2,4)&#34; &gt;新闻2&lt;/li&gt; <br/>&nbsp;&nbsp; &lt;li id=&#34;two3&#34; onclick=&#34;setTab(&#39;two&#39;,3,4)&#34;&gt;新闻3&lt;/li&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; &lt;li id=&#34;two4&#34; onclick=&#34;setTab(&#39;two&#39;,4,4)&#34;&gt;新闻4&lt;/li&gt; <br/>&lt;/ul&gt; <br/>&lt;/div&gt; <br/> &lt;div class=&#34;Contentbox&#34;&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_two_1&#34; &gt;新闻列表1&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_two_2&#34; style=&#34;display:none&#34;&gt;新闻列表2&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_two_3&#34; style=&#34;display:none&#34;&gt;新闻列表3&lt;/div&gt; <br/>&nbsp;&nbsp; &lt;div id=&#34;con_two_4&#34; style=&#34;display:none&#34;&gt;新闻列表4&lt;/div&gt;&nbsp;&nbsp;<br/> &lt;/div&gt; <br/>&lt;/div&gt; <br/>&lt;/body&gt; <br/>&lt;/html&gt;<br/><br/></div></div><br/></span>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=215</link>
			<title><![CDATA[Ajax基础教程]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Mon,14 Apr 2008 00:00:22 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=215</guid>
		<description><![CDATA[<span style="font-size:12pt"><br/>第一.XMLHttpRequest对象:<br/>1.Sample:创建一个XMLHttpRequest对象的实例:<br/>代码<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/> var xmlHttp;&nbsp;&nbsp; //定义全局变量来保存对对象的引用&nbsp;&nbsp; <br/> function cr&#101;ateXMLHttpRequest(){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; if(window.ActiveXObject){&nbsp;&nbsp;//判断浏览器是否为IE&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp=new XMLHttpRequest(&#34;Microsoft.XMLHTTP&#34;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; else if(window.XMLHttpRequest){&nbsp;&nbsp; //判断非IE的浏览器是否支持xmlhttprquest&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp=new XMLHttpRequest();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp; <br/> }&nbsp;&nbsp; <br/> //IE浏览器肯定支持xmlhttprequest,因为其是存在于ActiveX中&nbsp;&nbsp; <br/></div></div><br/><br/>2.XmlHttpRequest对象的方法:<br/>1&gt;void open(String method,String url,boolean asynch,String username,String password):表示建立对服务器的调用.后三个参数为可选参数;mehod可以为GET,POST,PUT; url可以为绝对或相对地址; asynch默认值为True,表示异步,当为false时处理就会等待,直到从服务器响应为止;username跟password为用户指定特定的用户名跟密码.<br/>2&gt;void send(content):这个方法具体向服务器发出请求,如声明为异步则会立即返回此方法,否则它会等待直到接受相应为止.<br/>3&gt;void sendRequestHeader(String header,String value):此方法为HTTP请求中一个给定的首部设置值,header表示设置的首部,value表示要设置的值.<br/>注意:此方法必须要在void open()方法之后才能调用.<br/>4&gt;void abort():停止请求.<br/>5&gt;String getAllResponseHeaders():返回一个串包含所有的http的首部(Content-Length,Date,URI)<br/>6&gt;String getResponseHeaders(String header):header表示指定首部值.<br/>7&gt;onreadystatechange():每个事件改变时都会触发事件处理器,通常会调用一个JS函数.<br/>8&gt;readyState:=0:未初始化;=1:正在加载;=2:已加载;=3:交互中;=4:完成<br/>9&gt;states:HTTP状态码.=200:OK.=404:未找到.<br/><br/>2.Sample:<br/>交互实例具体步骤:<br/>1&gt;&lt;input type=&#34;text&#34; id=&#34;email&#34; name=&#34;email&#34; onblur=&#34;validateEmail()&#34;&gt;<br/>2&gt;创建XMLHttpRequest对象的一个实例:<br/>代码<br/> <div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/> var xmlHttp;&nbsp;&nbsp; <br/> function validateEmail(){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var email=document.getElementById(&#34;email&#34;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;var url=&#34;validate?email=&#34;+escape(email.value);&nbsp;&nbsp; <br/>&nbsp;&nbsp; if(window.ActiveXObject){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp=new XMLHttpRequest(&#34;Microsoft.XMLHttpRequest&#34;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;}else if(window.XMLHttpRequest){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlHttp=new XMLHttpRequest();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.open(&#34;GET&#34;,url);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.onreadystatechange()=callback;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.send(null);&nbsp;&nbsp; <br/> }&nbsp;&nbsp; <br/></div></div><br/><br/>3&gt;调Servlet等服务器端.<br/>4&gt;服务器端完成业务逻辑.<br/>5&gt;请求返回浏览器.设置Content-Type为:text/xml.还要设置一下首部以使浏览器不会在本地缓存结果: response.setHeader(&#34;Cache-Control&#34;,&#34;no-cache&#34;);response.setHeader(&#34;progma&#34;,&#34;no-cache&#34;);<br/>6&gt;XMLHttpRequest对象配置为处理返回时要调用callback():这个函数会检查readystate属性,然后查看服务器返回的状态码,如果正常,callback()将会做些有意义的事情.例如:<br/>代码<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/> function callback(){&nbsp;&nbsp; <br/>&nbsp;&nbsp; if(xmlHttp.readystate==4){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(xmlHttp.state==200){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //do sth in here.&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/> }&nbsp;&nbsp; <br/></div></div><br/>3.GET与POST的区别:<br/>GET:请求为幂等(多个请求返回相同的结果)时选用.会限制净荷的大小.(eg:URL的长度)<br/>POST:当改变服务器上的状态时.不会限制净荷大小.<br/>一般,可以用GET从服务器上取数据,但是要避免调用服务器上的状态.<br/>如果选择的方法为POST,需要比GET多一步操作:设置XMLHttpRequest对象的首部:<br/>xmlhttp.setRequestHeader(&#34;Content-Type&#34;,&#34;application/x-www-form-urlencoded&#34;);<br/><br/>4.DOM说明:<br/>DOM是一个W3C规约,可以以一种独立于平台和语言的方式.DOM的设计是以对象管理组织(OMG)的规约为基础,因此可以用于任何语言.DOM实际上是以面向对象方式描述的面向对象模型.<br/><br/>第二,与服务器的通信:<br/>1.XMLHttpRequest对象提供了两个处理服务器响应:1&gt;responseText(将相应提供为一个串); 2&gt;responseXML(将相应提供为一个XML对象)<br/>2.利用HTML的innerHTML属性跟responseText结合使用,服务器就能&#34;生产&#34;出HTML内容,由浏览器利用innerHTML属性来&#34;消费&#34;.<br/>Sample:<br/>innerHTML.html文件:<br/>代码<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;html&gt;&nbsp;&nbsp;<br/>&lt;head&gt;&nbsp;&nbsp;<br/>&lt;script type=&#34;text/javascript&#34;&gt;&nbsp;&nbsp;<br/>//第一步:定义XMLHttpRequest对象;&nbsp;&nbsp; <br/>var xmlHttp;&nbsp;&nbsp; <br/>function cr&#101;ateXMLHttpRequest(){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if(window.ActiveXObject){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp=new XMLHttpRequest(&#34;Microsoft.xmlHTTP&#34;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if(window.XMLHttpRequest){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp=new XMLHttpRequest();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>&nbsp;&nbsp;<br/>function startRequest(){&nbsp;&nbsp; <br/>//第二步:调用刚才创建的实例对象;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;cr&#101;ateXMLHttpRequest();&nbsp;&nbsp;&nbsp;&nbsp; <br/>//第三步:告诉XMLHttpRequest对象handleStateChange函数会处理XMLHttpRequest对象状态的改变,为此把对象的onreadyStatechange属性设置为指向JS函数的指针.&nbsp;&nbsp; <br/>&nbsp;&nbsp; xmlHttp.onreadystatechange=handleStateChange;&nbsp;&nbsp; <br/>//第四步:指定请求的属性&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.open(&#34;GET&#34;,&#34;innerHTML.xml&#34;,true);&nbsp;&nbsp; <br/>//第五步:将请求发送给服务器&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.send(null);&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>&nbsp;&nbsp;<br/>function handleStateChange(){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if(xmlHttp.readyState==4){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(xmlHttp.status==200){&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById(&#34;results&#34;).innerHTML=xmlHttp.responseText;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>}&nbsp;&nbsp; <br/>&lt;/script&gt;&nbsp;&nbsp;<br/>&lt;/head&gt;&nbsp;&nbsp;<br/>&lt;body&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;form action=&#34;#&#34;&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&#34;button&#34; value=&#34;Search for Today&#39;s Activities&#34; onclick=&#34;startRequest();&#34;/&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&#34;results&#34;&gt;&lt;/div&gt;&nbsp;&nbsp;<br/>&lt;/body&gt;&nbsp;&nbsp;<br/>&lt;/html&gt;&nbsp;&nbsp;<br/></div></div><br/><br/>innerHTML.xml文件:<br/>代码<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;table border=1&gt;&nbsp;&nbsp;<br/>&lt;trbody&gt;&nbsp;&nbsp;<br/>&lt;tr&gt;&nbsp;&nbsp;<br/>&lt;th&gt;Active Name&lt;/th&gt;&lt;th&gt;Location&lt;/th&gt;&lt;th&gt;Time&lt;/th&gt;&nbsp;&nbsp;<br/>&lt;/tr&gt;&nbsp;&nbsp;<br/>&lt;tr&gt;&nbsp;&nbsp;<br/>&lt;td&gt;watersking&lt;/td&gt;&lt;td&gt;Dock #&lt;/td&gt;&lt;td&gt;9:00 AM&lt;/td&gt;&nbsp;&nbsp;<br/>&lt;/tr&gt;&nbsp;&nbsp;<br/>&lt;tr&gt;&nbsp;&nbsp;<br/>&lt;td&gt;Volleyball&lt;/td&gt;&lt;td&gt;East Count&lt;/td&gt;&lt;td&gt;11:00 AM&lt;/td&gt;&nbsp;&nbsp;<br/>&lt;/tr&gt;&nbsp;&nbsp;<br/>&lt;tr&gt;&nbsp;&nbsp;<br/>&lt;td&gt;hikings&lt;/td&gt;&lt;td&gt;Trails 3&lt;/td&gt;&lt;td&gt;2:00 PM&lt;/td&gt;&nbsp;&nbsp;<br/>&lt;/tr&gt;&nbsp;&nbsp;<br/>&lt;/trbody&gt;&nbsp;&nbsp;<br/>&lt;/table&gt;&nbsp;&nbsp;<br/></div></div><br/></span>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=214</link>
			<title><![CDATA[常见http头状态信息意议以及在php使用header设置方法]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Sat,12 Apr 2008 21:52:59 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=214</guid>
		<description><![CDATA[<span style="font-size:10pt"><br/><br/>&lt;?php<br/><br/>// ok<br/>header(&#39;HTTP/1.1 200 OK&#39;);<br/><br/>//设置一个404头:<br/>header(&#39;HTTP/1.1 404 Not Found&#39;);<br/><br/>//设置地址被永久的重定向<br/>header(&#39;HTTP/1.1 301 Moved Permanently&#39;);<br/><br/>//转到一个新地址<br/>header(&#39;Location: <a href="http://www.example.org/" target="_blank" rel="external">http://www.example.org/</a>&#39;);<br/><br/>//文件延迟转向:<br/>header(&#39;Refresh: 10; url=http://www.example.org/&#39;);<br/>print &#39;You will be redirected in 10 seconds&#39;;<br/><br/>//当然，也可以使用html语法实现<br/>// &lt;meta http-equiv=&#34;refresh&#34; content=&#34;10;<a href="http://www.example.org/" target="_blank" rel="external">http://www.example.org/</a> /&gt;<br/><br/>// override X-Powered-By: PHP:<br/>header(&#39;X-Powered-By: PHP/4.4.0&#39;);<br/>header(&#39;X-Powered-By: Brain/0.6b&#39;);<br/><br/>//文档语言<br/>header(&#39;Content-language: en&#39;);<br/><br/>//告诉浏览器最后一次修改时间<br/>$time = time() - 60; // o&#114; filemtime($fn), etc<br/>header(&#39;Last-Modified: &#39;.gmdate(&#39;D, d M Y H:i:s&#39;, $time).&#39; GMT&#39;);<br/><br/>//告诉浏览器文档内容没有发生改变<br/>header(&#39;HTTP/1.1 304 Not Modified&#39;);<br/><br/>//设置内容长度<br/>header(&#39;Content-Length: 1234&#39;);<br/><br/>//设置为一个下载类型<br/>header(&#39;Content-Type: application/octet-stream&#39;);<br/>header(&#39;Content-Disposition: attachment; filename=&#34;example.zip&#34;&#39;);<br/>header(&#39;Content-Transfer-Encoding: binary&#39;);<br/>// load the file to send:<br/>readfile(&#39;example.zip&#39;);<br/><br/>// 对当前文档禁用缓存<br/>header(&#39;Cache-Control: no-cache, no-store, max-age=0, must-revalidate&#39;);<br/>header(&#39;Expires: Mon, 26 Jul 1997 05:00:00 GMT&#39;); // Date in the past<br/>header(&#39;Pragma: no-cache&#39;);<br/><br/>//设置内容类型:<br/>header(&#39;Content-Type: text/html; charset=iso-8859-1&#39;);<br/>header(&#39;Content-Type: text/html; charset=utf-8&#39;);<br/>header(&#39;Content-Type: text/plain&#39;); //纯文本格式<br/>header(&#39;Content-Type: image/jpeg&#39;); //JPG图片<br/>header(&#39;Content-Type: application/zip&#39;); // ZIP文件<br/>header(&#39;Content-Type: application/pdf&#39;); // PDF文件<br/>header(&#39;Content-Type: audio/mpeg&#39;); // 音频文件<br/>header(&#39;Content-Type: application/x-shockwave-flash&#39;); //Flash动画<br/><br/>//显示登陆对话框<br/>header(&#39;HTTP/1.1 401 Unauthorized&#39;);<br/>header(&#39;WWW-Authenticate: Basic realm=&#34;Top Secret&#34;&#39;);<br/>print &#39;Text that will be displayed if the user hits cancel o&#114; &#39;;<br/>print &#39;enters wrong login data&#39;;<br/>?&gt;<br/></span>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=212</link>
			<title><![CDATA[Cannot send session cache limiter - headers alread]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Wed,09 Apr 2008 15:27:34 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=212</guid>
		<description><![CDATA[<span style="font-size:10pt"><br/>1.PHP.ini,找到session.save_path,修改为session.save_path=&#34;/tmp&#34;<br/><br/>2.<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>error_reporting (E_ALL ^ E_WARNING);<br/> session_start();<br/></div></div><br/></span>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=211</link>
			<title><![CDATA[PHP程序员最易犯10种错误(转)]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Wed,09 Apr 2008 14:26:11 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=211</guid>
		<description><![CDATA[<br/>PHP程序员最易犯10种错误(转)<br/>PHP是个伟大的web开发语言，灵活的语言，但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表，列出了PHP程序员经常犯的10中错误，大多数和安全相关。看看你犯了几种<br/><br/>1.不转意html entities<br/><br/>&nbsp;&nbsp;一个基本的常识：所有不可信任的输入（特别是用户从form中提交的数据） ，输出之前都要转意。<br/><br/>echo $_GET[&#39;usename&#39;] ;<br/><br/><br/>这个例子有可能输出：<br/><br/>&lt;script&gt;/*更改admin密码的脚本或设置cookie的脚本*/&lt;/script&gt;<br/><br/>这是一个明显的安全隐患，除非你保证你的用户都正确的输入。<br/><br/>如何修复 ：<br/><br/>我们需要将&#34;&lt; &#34;,&#34;&gt;&#34;,&#34;and&#34; 等转换成正确的HTML表示(&lt; , &gt;&#39;, and &#34;)，函数htmlspecialchars 和 htmlentities()正是干这个活的。<br/><br/>正确的方法：<br/><br/>echo htmlspecialchars($_GET[&#39;username&#39;], ENT_QUOTES);<br/><br/><br/><br/><br/>2. 不转意SQL输入<br/>我曾经在一篇文章中最简单的防止sql注入的方法(php mysql中)讨论过这个问题并给出了一个简单的方法 。有人对我说，他们已经在php.ini中将magic_quotes设置为On，所以不必担心这个问题，但是不是所有的输入都是从$_GET, $_POST或 $_COOKIE中的得到的！<br/>如何修复：<br/><br/>和在最简单的防止sql注入的方法(php mysql中)中一样我还是推荐使用mysql_real_escape_string()函数<br/><br/><br/>正确做法：<br/>&lt;?php<br/>$sql = &#34;Up&#100;ate users SET<br/>name=&#39;.mysql_real_escape_string($name).&#39;<br/>Wh&#101;re id=&#39;.mysql_real_escape_string ($id).&#39;&#34;;<br/>mysql_query($sql);<br/>?&gt;<br/><br/><br/><br/><br/><br/><br/>3.错误的使用HTTP-header 相关的函数: header(), session_start(), setcookie()<br/>遇到过这个警告吗?&#34;warning: Cannot add header information - headers already sent [....]<br/><br/>每次从服务器下载一个网页的时候，服务器的输出都分成两个部分：头部和正文。<br/>头部包含了一些非可视的数据，例如cookie。头部总是先到达。正文部分包括可视的html，图片等数据。<br/>如果output_buffering设置为Off，所有的HTTP-header相关的函数必须在有输出之前调用。问题在于你在一个环境中开发，而在部署到另一个环境中去的时候，output_buffering的设置可能不一样。结果转向停止了，cookie和session都没有正确的设置........。<br/><br/>如何修复:<br/>确保在输出之前调用http-header相关的函数，并且令output_buffering = Off<br/>。<br/><br/><br/><br/>4. Require 或 include 的文件使用不安全的数据<br/>再次强调：不要相信不是你自己显式声明的数据。不要 Include 或 require 从$_GET, $_POST 或 $_COOKIE 中得到的文件。<br/><br/><br/>例如:<br/>index.php<br/>&lt;?<br/>//including header, config, database connection, etc<br/>include($_GET[&#39;filename&#39;]);<br/>//including footer<br/>?&gt;<br/><br/><br/>现在任一个黑客现在都可以用:<a href="http://www.yourdomain.com/index.php?filename=anyfile.txt" target="_blank" rel="external">http://www.yourdomain.com/index.php?filename=anyfile.txt</a><br/>来获取你的机密信息，或执行一个PHP脚本。<br/><br/>如果allow_url_fopen=On，你更是死定了：<br/>试试这个输入：<br/><a href="http://www.yourdomain.com/index.php?filename=http%3A%2F%2Fdomain.com%2Fphphack.php" target="_blank" rel="external">http://www.yourdomain.com/index.php?filename=http%3A%2F%2Fdomain.com%2Fphphack.php</a><br/><br/>现在你的网页中包含了<a href="http://www.youaredoomed.com/phphack.php" target="_blank" rel="external">http://www.youaredoomed.com/phphack.php</a>的输出. 黑客可以发送垃圾邮件，改变密码，删除文件等等。只要你能想得到。<br/><br/><br/>如何修复：<br/>你必须自己控制哪些文件可以包含在的include或require指令中。<br/><br/>下面是一个快速但不全面的解决方法：<br/>&lt;?<br/>//Include only files that are allowed.<br/>$allowedFiles = array(&#39;file1.txt&#39;,&#39;file2.txt&#39;,&#39;file3.txt&#39;);<br/>if(in_array((string)$_GET[&#39;filename&#39;],$allowedFiles)) {<br/>include($_GET[&#39;filename&#39;]);<br/>}<br/>else{<br/>exit(&#39;not allowed&#39;);<br/>}<br/>?&gt;<br/><br/><br/><br/>5. 语法错误<br/>语法错误包括所有的词法和语法错误，太常见了，以至于我不得不在这里列出。解决办法就是认真学习PHP的语法，仔细一点不要漏掉一个括号，大括号，分号，引号。还有就是换个好的编辑器，就不要用记事本了！<br/><br/><br/><br/><br/>6.很少使用或不用面向对象<br/>很多的项目都没有使用PHP的面向对象技术，结果就是代码的维护变得非常耗时耗力。PHP支持的面向对象技术越来越多，越来越好，我们没有理由不使用面向对象。<br/><br/><br/><br/><br/>7. 不使用framework<br/>95% 的PHP项目都在做同样的四件事: Cr&#101;ate, edit, list 和del&#101;te. 现在有很多MVC的框架来帮我们完成这四件事，我们为何不使用他们呢？<br/><br/><br/><br/><br/><br/><br/>8. 不知道PHP中已经有的功能<br/>PHP的核心包含很多功能。很多程序员重复的发明轮子。浪费了大量时间。编码之前搜索一下PHP mamual，在google上检索一下，也许会有新的发现！PHP中的exec()是一个强大的函数，可以执行cmd shell，并把执行结果的最后一行以字符串的形式返回。考虑到安全可以使用EscapeShellCmd()<br/><br/><br/><br/>9.使用旧版本的PHP<br/><br/>很多程序员还在使用PHP4，在PHP4上开发不能充分发挥PHP的潜能，还存在一些安全的隐患。转到PHP5上来吧，并不费很多功夫。大部分PHP4程序只要改动很少的语句甚至无需改动就可以迁移到PHP5上来。根据<a href="http://www.nexen.net" target="_blank" rel="external">http://www.nexen.net</a>的调查 只有12%的PHP服务器使用PHP5，所以有88%的PHP开发者还在使用PHP4.<br/><br/><br/><br/>10.对引号做两次转意<br/><br/>见过网页中出现\&#39;或\&#39;&#34;吗？这通常是因为在开发者的环境中magic_quotes 设置为off，而在部署的服务器上magic_quotes =on. PHP会在 GET, POST 和 COOKIE中的数据上重复运行addslashes() 。<br/>原始文本：<br/>It&#39;s a string<br/><br/>magic quotes on :<br/>It\&#39;s a string<br/>又运行一次<br/>addslashes():<br/>It\\&#39;s a string<br/><br/>HTML输出:<br/>It\&#39;s a string<br/><br/>还有一种情况就是，用户一开始输入了错误的登录信息，服务器检测到错误输入后，输出同样的form要求用户再次输入，导致用户的输入转意两次！<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=210</link>
			<title><![CDATA[PHP中$_SERVER的详细用法]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Sun,06 Apr 2008 21:38:40 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=210</guid>
		<description><![CDATA[<span style="font-size:10pt"><br/>$_SERVER[’PHP_SELF’] #当前正在执行脚本的文件名，与 document root相关。<br/>$_SERVER[’argv’] #传递给该脚本的参数。<br/>$_SERVER[’argc’] #包含传递给程序的命令行参数的个数（如果运行在命令行模式）。<br/>$_SERVER[’GATEWAY_INTERFACE’] #服务器使用的 CGI 规范的版本。例如，“CGI/1.1”。<br/>$_SERVER[’SERVER_NAME’] #当前运行脚本所在服务器主机的名称。<br/>$_SERVER[’SERVER_SOFTWARE’] #服务器标识的字串，在响应请求时的头部中给出。<br/>$_SERVER[’SERVER_PROTOCOL’] #请求页面时通信协议的名称和版本。例如，“HTTP/1.0”。<br/>$_SERVER[’REQUEST_METHOD’] #访问页面时的请求方法。例如：“GET”、“HEAD”，“POST”，“PUT”。<br/>$_SERVER[’QUERY_STRING’] #查询(query)的字符串。<br/>$_SERVER[’DOCUMENT_ROOT’] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。<br/>$_SERVER[’HTTP_ACCEPT’] #当前请求的 Accept: 头部的内容。<br/>$_SERVER[’HTTP_ACCEPT_CHARSET’] #当前请求的 Accept-Charset: 头部的内容。例如：“iso-8859-1,*,utf-8”。<br/>$_SERVER[’HTTP_ACCEPT_ENCODING’] #当前请求的 Accept-Encoding: 头部的内容。例如：“gzip”。<br/>$_SERVER[’HTTP_ACCEPT_LANGUAGE’]#当前请求的 Accept-Language: 头部的内容。例如：“en”。<br/>$_SERVER[’HTTP_CONNECTION’] #当前请求的 Connection: 头部的内容。例如：“Keep-Alive”。<br/>$_SERVER[’HTTP_HOST’] #当前请求的 Host: 头部的内容。<br/>$_SERVER[’HTTP_REFERER’] #链接到当前页面的前一页面的 URL 地址。<br/>$_SERVER[’HTTP_USER_AGENT’] #当前请求的 User_Agent: 头部的内容。<br/>$_SERVER[’HTTPS’] — 如果通过https访问,则被设为一个非空的值(on)，否则返回off<br/>$_SERVER[’REMOTE_ADDR’] #正在浏览当前页面用户的 IP 地址。<br/>$_SERVER[’REMOTE_HOST’] #正在浏览当前页面用户的主机名。<br/>$_SERVER[’REMOTE_PORT’] #用户连接到服务器时所使用的端口。<br/>$_SERVER[’SCRIPT_FILENAME’] #当前执行脚本的绝对路径名。<br/>$_SERVER[’SERVER_ADMIN’] #管理员信息<br/>$_SERVER[’SERVER_PORT’] #服务器所使用的端口<br/>$_SERVER[’SERVER_SIGNATURE’] #包含服务器版本和虚拟主机名的字符串。<br/>$_SERVER[’PATH_TRANSLATED’] #当前脚本所在文件系统（不是文档根目录）的基本路径。<br/>$_SERVER[’SCRIPT_NAME’] #包含当前脚本的路径。这在页面需要指向自己时非常有用。<br/>$_SERVER[’REQUEST_URI’] #访问此页面所需的 URI。例如，“/index.html”。<br/>$_SERVER[’PHP_AUTH_USER’] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的用户名。<br/>$_SERVER[’PHP_AUTH_PW’] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的密码。<br/>$_SERVER[’AUTH_TYPE’] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是认证的类型。<br/><br/>$_SERVER[”HTTP_X_FORWARDED_FOR”] #透过代理服务器取得客户端的真实 IP 地址<br/></span>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=209</link>
			<title><![CDATA[Pear DB 新手入门指南]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Fri,28 Mar 2008 23:38:51 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=209</guid>
		<description><![CDATA[1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;简介-------------------------------------------------------------------------------------2<br/><br/>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下载、安装Pear-------------------------------------------------------------------------2<br/><br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用Pear DB----------------------------------------------------------------------------2<br/><br/>3.1.1&nbsp;&nbsp; 连接，断开数据库<br/><br/>3.1.2&nbsp;&nbsp; 执行数据库<br/><br/>3.1.3&nbsp;&nbsp; 获得sel&#101;ct的数据<br/><br/>3.1.3.1&nbsp;&nbsp;获取数据的函数<br/><br/>3.1.3.2&nbsp;&nbsp;选择获取数据的格式<br/><br/>3.1.3.3&nbsp;&nbsp;设置获取数据的格式<br/><br/>3.1.3.4&nbsp;&nbsp;控制获取数据数量<br/><br/>3.1.3.5&nbsp;&nbsp;清除结果，释放变量<br/><br/>3.1.4&nbsp;&nbsp; 快速retrieve数据<br/><br/>3.1.5&nbsp;&nbsp; 从查询结果获得更多信息(numRows, numCols, affectedRows, tableInfo)<br/><br/>3.1.6&nbsp;&nbsp; 自动增长（Sequences）<br/><br/>3.1.7&nbsp;&nbsp; Prepare &amp; Execute/ExcuteMultiple<br/><br/>3.1.8&nbsp;&nbsp; autoCommit, commit and rollback<br/><br/>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可用方法列表---------------------------------------------------------------------------10<br/><br/>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;错误处理机制---------------------------------------------------------------------------12<br/><br/>5.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从Pear DB Error获得错误信息<br/><br/>5.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug Pear DB Errors<br/><br/>5.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对错误采取自动处理<br/><br/>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;简介<br/><br/>这是一部指导我们如何使用Pear DB扩展。Pear DB，提供这样一系列的类：<br/><br/>n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数据库抽象<br/><br/>n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;高级错误处理机制<br/><br/>n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以及其它<br/><br/> <br/><br/>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下载、安装Pear<br/><br/>由于现在Pear项目仍处于紧锣密鼓的开发之中，所以得到它的最好办法就是从CVS获得（Pear DB发行包已经跟随PHP4.0.6以后版本捆绑发布）。所以，我们只需要把Pear的根目录放到php.ini配置文件include_path中。也可以通过这样设置：_set(&#39;include_path&#39;, &#39;/pear_base_dir&#39;).<br/><br/>以下是strp by step示例：<br/><br/>存放Pear的目录：<br/><br/># cd /usr/local/lib<br/><br/>用“phpfi“口令登录:<br/><br/># cvs -d :pserver:cvsread@cvs.php.net:/repository login<br/><br/>用以下命令得到所有的pear文件，同时也可以用来更新已经下载的文件。其他的参数有：&#34;today&#34;, &#34;last month&#34;,等。我推荐用&#34;last week&#34;参数，因为一般bugs的提交和修改都是每周一次。 <br/><br/># cvs -d :pserver:cvsread@cvs.php.net:/repository export -D &#34;last week&#34; php4/pear<br/><br/>编辑php.ini文件加上下面一段在include_path处： /usr/local/lib/php4/pear 如果没有修改的权限，可以通过这条语句在代码中实现： ini_set(&#39;include_path&#39;, &#39;path_to_pear&#39;);<br/><br/>获得PHP CVS的完全文档<br/><br/>注意Pear DB必需PHP版本4.0.4以上，而在Pear中的一些其他包如：XML Parser of the pear installer script需要PHP4.0.5以上版本。<br/><br/> <br/><br/>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用Pear DB<br/><br/>3.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 连接，断开数据库<br/><br/> <br/><br/>&lt;?php<br/> // The pear base directory must be in your include_path<br/> require_once &#39;DB.php&#39;;<br/> $user = &#39;foo&#39;;<br/> $pass = &#39;bar&#39;;<br/> $host = &#39;localhost&#39;;<br/> $db_name = &#39;clients_db&#39;;<br/> <br/> // Data Source Name: This is the universal connection string<br/> $dsn = &#34;mysql://$user:$pass@$host/$db_name&#34;;<br/> <br/> // DB::connect will return a Pear DB object on success<br/> // o&#114; a Pear DB Error object on error<br/> // You can also set to TRUE the second param<br/> // if you want a persistent connection:<br/> // $db = DB::connect($dsn, true);<br/> $db = DB::connect($dsn);<br/> <br/> // With DB::isError you can differentiate between an error o&#114;<br/> // a valid connection.<br/> if (DB::isError($db)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; die ($db-&gt;getMessage());<br/> }<br/> ....<br/> // You can disconnect from the database with:<br/> $db-&gt;disconnect();<br/> ?&gt;<br/><br/> <br/><br/>数据源(上例中的$dsn 参数)有以下允许的格式：（从Pear/DB.php的parseDSN方法复制而来）<br/><br/> <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;phptype: Database backend used in PHP (mysql, odbc etc.)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;dbsyntax: Database used with regards to SQL syntax etc.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;protocol: Communication protocol to use (tcp, unix etc.)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;hostspec: Host specification (hostname[:port])<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;database: Database to use on the DBMS server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;username: User name for login<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;password: Password for login<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* The format of the supplied DSN is in its fullest form:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype(dbsyntax)://username:password@protocol+hostspec/database<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Most variations are allowed:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype://username:password@protocol+hostspec:110//usr/db_file.db<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype://username:password@hostspec/database_name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype://username:password@hostspec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype://username@hostspec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype://hostspec/database<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype://hostspec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype(dbsyntax)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;phptype<br/><br/>现在支持的数据库有 (在 phptype DSN 部分):<br/><br/> <br/><br/>mysql&nbsp;&nbsp;-&gt; MySQL<br/> pgsql&nbsp;&nbsp;-&gt; PostgreSQL<br/> ibase&nbsp;&nbsp;-&gt; InterBase<br/> msql&nbsp;&nbsp; -&gt; Mini SQL<br/> mssql&nbsp;&nbsp;-&gt; Microsoft SQL Server<br/> oci8&nbsp;&nbsp; -&gt; o&#114;acle 7/8/8i<br/> odbc&nbsp;&nbsp; -&gt; ODBC (Open Database Connectivity)<br/> sybase -&gt; SyBase<br/> ifx&nbsp;&nbsp;&nbsp;&nbsp;-&gt; Informix<br/> fbsql&nbsp;&nbsp;-&gt; FrontBase<br/><br/>注意并不是所有数据库特征都支持，可以从根目录&gt;/DB/STATUS 得到详细的清单。<br/><br/>3.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 执行数据库<br/><br/> <br/><br/>&lt;?php<br/> // Once you have a valid DB object<br/> ...<br/> $sql = &#34;sel&#101;ct * from clients&#34;;<br/> // If the query is a &#34;Sel&#101;ct&#34;, $db-&gt;query will return<br/> // a DB Result object on success.<br/> // Else it simply will return a DB_OK<br/> // On failure it will return a DB Error object.<br/> $result = $db-&gt;query($sql);<br/> // Always check that $result is not an error<br/> if (DB::isError($result)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; die ($result-&gt;getMessage());<br/> }<br/> ....<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获得sel&#101;ct的数据<br/><br/>3.3.1&nbsp;&nbsp; 获取数据的函数<br/><br/> <br/><br/>&lt;?php<br/> // Once you have a valid DB Result object<br/> ...<br/> // Get each row of data on each iteration until<br/> // there is no more rows<br/> while ($row = $result-&gt;fetchRow()) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; $id = $row[0];<br/> }<br/> ?&gt;<br/><br/> <br/><br/>除了fetchRow()还可以使用fetchInto()直接插入$row的值。<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> while ($result-&gt;fetchInto($row)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; $id = $row[0];<br/> }<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.3.2&nbsp;&nbsp; 选择获取数据的格式<br/><br/>获取模式有DB_FETCHMODE_ORDERED（默认）, DB_FETCHMODE_ASSOC and DB_FETCHMODE_OBJECT.<br/><br/>从获取数据方法返回的结果示例：<br/><br/> <br/><br/>&lt;?php<br/> $res = $db-&gt;query(&#39;sel&#101;ct id, name, email from users&#39;);<br/> $row = $res-&gt;fetchRow($mode);<br/> <br/> //With $mode = DB_FETCHMODE_ORDERED<br/> //The default behavior is to return an o&#114;dered array.<br/> $row = array (<br/>&nbsp;&nbsp;&nbsp;&nbsp; 0 =&gt; &lt;column &#34;id&#34; data&gt;,<br/>&nbsp;&nbsp;&nbsp;&nbsp; 1 =&gt; &lt;column &#34;name&#34; data&gt;,<br/>&nbsp;&nbsp;&nbsp;&nbsp; 2 =&gt; &lt;column &#34;email&#34; data&gt;<br/> );<br/> <br/> $id = $row[0];<br/> <br/> //With $mode = DB_FETCHMODE_ASSOC<br/> //Returns an associative array with column names as array keys:<br/> $row = array (<br/>&nbsp;&nbsp;&nbsp;&nbsp; &#39;id&#39;&nbsp;&nbsp;&nbsp;&nbsp;=&gt; &lt;column &#34;id&#34; data&gt;,<br/>&nbsp;&nbsp;&nbsp;&nbsp; &#39;name&#39;&nbsp;&nbsp;=&gt; &lt;column &#34;name&#34; data&gt;,<br/>&nbsp;&nbsp;&nbsp;&nbsp; &#39;email&#39; =&gt; &lt;column &#34;email&#34; data&gt;<br/> );<br/> <br/> $id = $row[&#39;id&#39;];<br/> <br/> //With $mode = DB_FETCHMODE_OBJECT<br/> //Returns a DB_row object with column names as properties:<br/> $row = db_row Object <br/> (<br/>&nbsp;&nbsp;&nbsp;&nbsp; [id]&nbsp;&nbsp;&nbsp;&nbsp;=&gt; &lt;column &#34;id&#34; data&gt;,<br/>&nbsp;&nbsp;&nbsp;&nbsp; [name]&nbsp;&nbsp;=&gt; &lt;column &#34;name&#34; data&gt;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;  <img src="http://www.cmuch.com/images/smilies/Face_24.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/> =&gt; &lt;column &#34;email&#34; data&gt;<br/> )<br/> <br/> $id = $row-&gt;id;<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.3.3&nbsp;&nbsp; 设置获取数据的格式<br/><br/>可以使用 fetchrow() / fetchInto() 方法或者为你的DB实例设置一个默认的模式。<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> // 1) Set the mode per call:<br/> while ($row = $result-&gt;fetchRow(DB_FETCHMODE_ASSOC)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; [..]<br/> }<br/> while ($result-&gt;fetchInto($row, DB_FETCHMODE_ASSOC)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; [..]<br/> }<br/> <br/> // 2) Set the mode for all calls:<br/> $db = DB::connect($dsn);<br/> // this will set a default fetchmode for this Pear DB instance<br/> // (for all queries)<br/> $db-&gt;setFetchMode(DB_FETCHMODE_ASSOC);<br/> $result = $db-&gt;query(...);<br/> while ($row = $result-&gt;fetchRow()) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; $id = $row[&#39;id&#39;];<br/> }<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.3.4&nbsp;&nbsp; 控制获取数据数量<br/><br/>同时Pear DB获取数据可以带有额外的参数，可以使用一个数字参数来获取需要的数据数量。在你只需要获得数据中的一部分时这时候特别有用（比如在做分页程序的时候）<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> // the row to start fetching<br/> $from = 50;<br/> // how many results per page<br/> $res_per_page = 10;<br/> // the last row to fetch for this page<br/> $to = $from + $res_per_page;<br/> foreach (range($from, $to) as $rownum) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; if (!$row = $res-&gt;fetchrow($fetchmode, $rownum)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; $id = $row[0];<br/>&nbsp;&nbsp;&nbsp;&nbsp; ....<br/> }<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.3.5&nbsp;&nbsp; 清除结果，释放变量<br/><br/>当你完成查询的时候，可以用free()方法来结束:<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> $result = $db-&gt;query(&#39;Sel&#101;ct * FROM clients&#39;);<br/> while ($row = $result-&gt;fetchRow()) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; ...<br/> }<br/> $result-&gt;free();<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 快速retrieve数据<br/><br/>当你不再想用fetchRow()方法来获取数据的时候，Pear DB通过sql语句提供一些特别的方法来返回想要的数据。这些方法有：getOne, getRow, getCol, getAssoc and getAll. 这有一些使用示例:<br/><br/> <br/><br/>&lt;?php<br/> require_once &#39;DB.php&#39;;<br/> $db = DB::connect(&#39;pgsql://postgres@unix+localhost/clients_db&#39;);<br/> // -----------------------------------------------------------<br/> // getOne retrieves the first result of the first column<br/> // from a query<br/> $numrows = $db-&gt;getOne(&#39;sel&#101;ct count(id) from clients&#39;);<br/> // -----------------------------------------------------------<br/> // getRow will fetch the first row and return it as an array<br/> $sql = &#39;sel&#101;ct name, address, phone from clients wh&#101;re id=1&#39;;<br/> if (is_array($row = $db-&gt;getRow($sql))) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; list($name, $address, $phone) = $row;<br/> }<br/> // -----------------------------------------------------------<br/> // getCol will return an array with the data of the<br/> // sel&#101;cted column. It accepts the column number to retrieve<br/> // as the second param.<br/> // The next sentence could return for example:<br/> // $all_client_names = array(&#39;Stig&#39;, &#39;Jon&#39;, &#39;Colin&#39;);<br/> $all_client_names = $db-&gt;getCol(&#39;sel&#101;ct name from clients&#39;);<br/> // -----------------------------------------------------------<br/> // Other functions are: getAssoc() and getAll().<br/> // For the moment refer to their in-line documentation<br/> // at pear/DB/common.php<br/> // -----------------------------------------------------------<br/> ?&gt;<br/><br/> <br/><br/>&#34;get*() 系列方法&#34; 可以为你做很多事情, 包括: 发起一个查询, 获取数据和清除结果。请注意所有的Pear DB函数将可能返回一个 Pear DB_error 对象。<br/><br/>3.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从查询结果获得更多信息(numRows, numCols, affectedRows, tableInfo)<br/><br/>通过 Pear DB可以从查询结果获得更多有用的数据信息 。这些方法有:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;* numRows(): 通过一个&#34;Sel&#101;ct&#34; 查询返回所有数据的数量。<br/>&nbsp;&nbsp;&nbsp;&nbsp;* numCols():通过一个&#34;Sel&#101;ct&#34; 查询返回所有的列。<br/>&nbsp;&nbsp;&nbsp;&nbsp;* affectedRows(): 通过(&#34;Ins&#101;rt&#34;, &#34;Up&#100;ate&#34; o&#114; &#34;Del&#101;te&#34;)操作返回所有受影响的数据行数。<br/>&nbsp;&nbsp;&nbsp;&nbsp;* tableInfo():通过一个&#34;Sel&#101;ct&#34; 查询返回一个包含数据信息的数组。 <br/><br/>示例:<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> $db = DB::connect($dsn);<br/> $sql = &#39;sel&#101;ct * from clients&#39;;<br/> $res = $db-&gt;query($sql);<br/> // Don&#39;t forget to check if the returned result from your<br/> // action is a Pear Error object. If you get a error message<br/> // like &#39;DB_error: database not capable&#39;, means that<br/> // your database backend doesn&#39;t support this action.<br/> //<br/> // Number of rows<br/> echo $res-&gt;numRows();<br/> // Number of cols<br/> echo $res-&gt;numCols();<br/> // Table Info<br/> print_r ($res-&gt;tableInfo());<br/> // Affected rows<br/> $sql = &#34;del&#101;te from clients&#34;;<br/> // remember that this statement won&#39;t return a result object<br/> $db-&gt;query($sql);<br/> echo &#39;I have del&#101;ted &#39; . $db-&gt;affectedRows() . &#39;clients&#39;;<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自动增长（Sequences）<br/><br/>Sequences 为数据行提供独一无二的ID标识。如果熟悉MySQL之类的话，可以把它想象为AUTO_INCREMENT.它非常简单，首先你获取一个ID，然后在这个ID所在的行插入你所需要记录的数据。可以为你的表设置更多的Sequences，只需要保证在任何特殊的表中都使用一样的sequence就行。<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> // Get an ID (if the sequence doesn&#39;t exist, it will be cr&#101;ated)<br/> $id = $db-&gt;nextID(&#39;mySequence&#39;);<br/> <br/> // Use the ID in your Ins&#101;rt query<br/> $res = $db-&gt;query(&#34;Ins&#101;rt INTO myTable (id,text) VALUES ($id,&#39;foo&#39;)&#34;);<br/> ...<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Prepare &amp; Execute/ExcuteMultiple<br/><br/> <br/><br/>&lt;?php<br/> // UNTESTED CODE !!!<br/> //<br/> // Example ins&#101;rting data<br/> $alldata = array(<br/>&nbsp;&nbsp; array(1, &#39;one&#39;, &#39;en&#39;),<br/>&nbsp;&nbsp; array(2, &#39;two&#39;, &#39;to&#39;),<br/>&nbsp;&nbsp; array(3, &#39;three&#39;, &#39;tre&#39;),<br/>&nbsp;&nbsp; array(4, &#39;four&#39;, &#39;fire&#39;)<br/> );<br/> $sth = $dbh-&gt;prepare(&#34;Ins&#101;rt INTO numbers VALUES( , , )&#34;);<br/> foreach ($alldata as $row) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; $dbh-&gt;execute($sth, $row);<br/> }<br/> //Here&#39;s an example of a file placeholder:<br/> $myfile = &#34;/tmp/image.jpg&#34;;<br/> $sth = $dbh-&gt;prepare(&#39;Ins&#101;rt INTO images ( , &amp;)&#39;);<br/> $dbh-&gt;execute($sth, array(&#34;this is me&#34;, $myfile));<br/> //After I commit a bugfix that I have on my laptop, you can use<br/> //parameter arrays in the getXxx methods too:<br/> $ver = $dbh-&gt;getOne(&#34;Sel&#101;ct stableversion FROM packages Wh&#101;re name =&nbsp;&nbsp;&#34;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array($package));<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>3.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoCommit, commit and rollback<br/><br/> <br/><br/>&lt;?php<br/> //examples here<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可用方法列表<br/><br/> <br/><br/>&lt;?php<br/> /*<br/> * From the DB_(driver) objects<br/> */<br/> // get the object with, ie:<br/> $db = DB::connect(&#39;mysql://user:pass@localhost/my_db&#39;);<br/>&nbsp;&nbsp;<br/> // Set options<br/> $db-&gt;setErrorHandling();<br/> $db-&gt;setFetchmode();<br/> // Information<br/> $db-&gt;affectedRows();<br/> $db-&gt;tableInfo();<br/> // Database manipulation<br/> $db-&gt;query();<br/> // Data fetch<br/> $db-&gt;nextId();<br/> $db-&gt;getOne();<br/> $db-&gt;getRow();<br/> $db-&gt;getCol();<br/> $db-&gt;getAssoc();<br/> $db-&gt;getAll();<br/> // Place holders and execute related<br/> $db-&gt;quote();<br/> $db-&gt;prepare();<br/> $db-&gt;execute();<br/> $db-&gt;executeMultiple();<br/> // Transactions<br/> $db-&gt;autoCommit();<br/> $db-&gt;commit();<br/> $db-&gt;rollback();<br/> // Disconnection<br/> $db-&gt;disconnect();<br/>&nbsp;&nbsp;<br/> /*<br/> * From DB_result objects<br/> */<br/> // get the object with, ie: <br/> $res = $db-&gt;query(&#39;sel&#101;ct * from foo&#39;);<br/>&nbsp;&nbsp;<br/> // Data fetch<br/> $res-&gt;fetchRow();<br/> $res-&gt;fetchInto();<br/> // Result Info<br/> $res-&gt;numCols();<br/> $res-&gt;numRows();<br/> $res-&gt;tableInfo();<br/> // Free<br/> $res-&gt;free();<br/>&nbsp;&nbsp;<br/> /*<br/> * From DB_error objects<br/> */<br/> // get the object with, ie:<br/> $error = $db-&gt;query(&#39;sel&#101;ct * from no_table&#39;);<br/>&nbsp;&nbsp;<br/> $error-&gt;getMessage();<br/> $error-&gt;getDebugInfo();<br/> $error-&gt;toString();<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;错误处理机制<br/><br/>5.1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从Pear DB Error获得错误信息<br/><br/>所有从Pear DB 返回的错误都是Pear Errors. 这有一种方法来搜集:<br/><br/> <br/><br/>&lt;?php<br/> ...<br/> $res = $db-&gt;query(&#39;sel&#101;ct * from no_table&#39;);<br/> if (DB::isError($res)) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; // get the portable error string<br/>&nbsp;&nbsp;&nbsp;&nbsp; echo $res-&gt;getMessage();<br/> }<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>4.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug Pear DB Errors<br/><br/>Pear DB采用一种轻便的错误消息系统向用户报错。把错误信息简单翻译成其它语言或者对于一种特殊错误采取特殊的处理方式这都带来了很大的优点。但是对于开发人员来说这些提示并么有提供很有用的信息。想要得到真实的数据处理出错的信息，你可以使用getDebugInfo()方法:<br/><br/> <br/><br/>&lt;?php<br/> $sql = &#39;sel&#101;ct * from no_table&#39;;<br/> if (DB::isError($res = $db-&gt;query($sql))) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; // get the native backend error<br/>&nbsp;&nbsp;&nbsp;&nbsp; // and the last query<br/>&nbsp;&nbsp;&nbsp;&nbsp; echo $res-&gt;getDebugInfo();<br/> }<br/> ?&gt;<br/><br/> <br/><br/>通过当一个PHP函数出错时，会打印出出错提示。在pear中的这种机制被屏蔽了。但时有时你可能需要在代码中捕捉一些错误信息。可以使用set_error_handler PHP 函数, 从 PHP Manual获取信息.简单示例:<br/><br/> <br/><br/>&lt;?php<br/> // what messages to report<br/> error_reporting (E_ALL ^ E_NOTICE);<br/> // this function will handle all reported errors<br/> function my_error_handler ($errno, $errstr, $errfile, $errline) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; echo &#34;In $errfile, line: $errline\n<br/>$errstr&#34;;<br/> }<br/> set_error_handler (&#39;my_error_handler&#39;);<br/> $db = DB::connect(&#39;pgsql://postgres@localhost/no_db&#39;);<br/> ...<br/> ?&gt;<br/><br/> <br/><br/> <br/><br/>5.3&nbsp;&nbsp; 对错误采取自动处理<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正如你所看见的， Pear DB提供了广泛的错误检测和报告机制，这强迫开发人员必需对返回的数据结果进行检查，是否有错。 Pear DB同时照顾我们避免这种痛苦的工作，提供了一种灵活的体系，在一个错误出现的时候自动调用相应的措施。<br/><br/>这些可能的措施包括:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;* 返回错误对象 (PEAR_ERROR_RETURN). 这是默认的.<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 打印错误 (PEAR_ERROR_PRINT)<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 打印错误信息并忽略执行(PEAR_ERROR_DIE)<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 用PHP函数 trigger_error()来列举错误(PEAR_ERROR_TRIGGER)<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 把错误对象传递给一个函数或者类的方法 (PEAR_ERROR_CALLBACK) <br/><br/>简单示例:<br/><br/> <br/><br/>&lt;?php<br/> require_once &#39;DB.php&#39;;<br/> // Set the default action to take on error<br/> PEAR::setErrorHandling(PEAR_ERROR_DIE);<br/> // From here you don&#39;t need to check errors any more<br/> $db = DB::connect(&#39;pgsql://postgres@localhost/my_database&#39;);<br/> $res = $db-&gt;query(&#39;sel&#101;ct id from no_table&#39;);<br/> // at this point the execution is aborted and the error message is raisen<br/> ...<br/> ?&gt;<br/><br/> <br/><br/>高级示例:<br/><br/> <br/><br/>&lt;?php<br/> // Define the app environment (this is: what errors you want to output)<br/> define (&#39;DEBUG_ENV&#39;, true);<br/> // This function will handle all errors<br/> function handle_pear_error ($error_obj) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; // Be verbose while developing the application<br/>&nbsp;&nbsp;&nbsp;&nbsp; if (DEBUG_ENV) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; die ($error_obj-&gt;getMessage().&#34;\n&#34;.$error_obj-&gt;getDebugInfo());<br/>&nbsp;&nbsp;&nbsp;&nbsp; // Dump a silly message if the site is in production<br/>&nbsp;&nbsp;&nbsp;&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; die (&#39;Sorry you request can not be processed now. Try again later&#39;);<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/> }<br/> <br/> require_once &#39;DB.php&#39;;<br/> // On error, call the &#34;handle_pear_error&#34; function back<br/> // You can also use an object as pear error handler so:<br/> // setErrorHandling(PEAR_ERROR_CALLBACK, array($object,&#39;method_name&#39;);<br/> PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, &#39;handle_pear_error&#39;);<br/> $db = DB::connect(&#39;pgsql://postgres@localhost/site_db&#39;);<br/> $res = $db-&gt;query(&#39;sel&#101;ct id from no_table&#39;);<br/> // at this point the execution is aborted and the &#34;handle_pear_error&#34;<br/> // function is called with the error object as its first argument<br/> while ($row = $res-&gt;fetchRow()) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; ...<br/> }<br/> ...<br/> ?&gt;<br/><br/> <br/><br/>下面为扩展错误机制提供了一个很好的想法：<br/><br/> <br/><br/>&lt;?php<br/> error_reporting (E_ALL ^ E_NOTICE);<br/> // this function will handle all errors reported by PHP<br/> function php_error_handler ($errno, $errstr, $errfile, $errline) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; die (&#34;In $errfile, line: $errline\n<br/>$errstr&#34;);<br/> }<br/> set_error_handler (&#39;php_error_handler&#39;);<br/> // this function will catch errors generated by Pear,<br/> // transform it to PHP errors and trigger them to the php_error_handler<br/> function pear_error_handler ($err_obj) {<br/>&nbsp;&nbsp;&nbsp;&nbsp; $error_string = $err_obj-&gt;getMessage() . &#39;<br/>&#39; . $error_obj-&gt;getDebugInfo();<br/>&nbsp;&nbsp;&nbsp;&nbsp; trigger_error ($error_string, E_USER_ERROR);<br/> }<br/> require &#39;DB.php&#39;;<br/> PEAR::setErrorHandling (PEAR_ERROR_CALLBACK, &#39;pear_error_handler&#39;);<br/> // force an error<br/> $db = DB::connect(&#39;pgsql://postgres@localhost/no_db&#39;);<br/> ...<br/> ?&gt;]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=208</link>
			<title><![CDATA[HTML 事件]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Fri,28 Mar 2008 15:51:05 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=208</guid>
		<description><![CDATA[<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.cmuch.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp23817"><table border=&#34;1&#34; cellpadding=&#34;3&#34; cellspacing=&#34;0&#34; width=&#34;100%&#34;>
    <tbody>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>一般事件</strong></font></th>
        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>

            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onClick</font></strong></th>
            <td nowrap=&#34;nowrap&#34; valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser: <strong><font color=&#34;#cc0000&#34;>IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>
            <td>鼠标点击事件，多用在某个对象控制的范围内的鼠标点击</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDblClick</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>

            <td>鼠标双击事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onMouseDown</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>
            <td>鼠标上的按钮被按下了</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onMouseUp</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>

            <td>鼠标按下后，松开时激发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onMouseOver</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>
            <td>当鼠标移动到某对象范围的上方时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onMouseMove</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>

            <td>鼠标移动时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onMouseOut</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>
            <td>当鼠标离开某对象范围时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onKeyPress</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>

            <td>当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onKeyDown</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>
            <td>当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onKeyUp</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>

            <td>当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象]</td>
        </tr>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>页面相关事件</strong></font></th>
        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>

            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onAbort</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N3&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>
            <td>图片在下载时被用户中断</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforeUnload</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当前页面的内容将要被改变时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onError</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N3&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>
            <td>捕抓当前页面因为某种原因而出现的错误，如脚本错误与外部数据引用的错误</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onLoad</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>

            <td>页面内空完成传送到浏览器时触发的事件，包括外部文件引入完成</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onMove</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:&amp;nbsp;IE&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>
            <td>浏览器的窗口被移动时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onResize</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>

            <td>当浏览器的窗口大小被改变时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onScroll</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>浏览器的滚动条位置发生变化时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onStop</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>浏览器的停止按钮被按下时触发的事件或者正在下载的文件被中断</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onUnload</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>
            <td>当前页面将被改变时触发的事件</td>
        </tr>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>表单相关事件</strong></font></th>

        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>
            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>

            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBlur</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>

            <td>当前元素失去焦点时触发的事件 [鼠标与键盘的触发均可]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onChange</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>
            <td>当前元素失去焦点并且元素的内容发生改变而触发的事件 [鼠标与键盘的触发均可]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onFocus</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>

            <td>当某个元素获得焦点时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onReset</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>
            <td>当表单中RESET的属性被激发时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onSubmit</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE3&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N2&amp;nbsp;</font></strong>|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;O3&amp;nbsp;</font></strong></td>

            <td>一个表单被递交时触发的事件</td>
        </tr>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>滚动字幕事件</strong></font></th>
        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>

            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBounce</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>在Marquee内的内容移动至Marquee显示范围之外时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onFinish</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当Marquee元素完成需要显示的内容后触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onStart</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当Marquee元素开始显示内容时触发的事件</td>
        </tr>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>编辑事件</strong></font></th>

        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>
            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>

            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforeCopy</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforeCut</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforeEditFocus</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当前元素将要进入编辑状态</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforePaste</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforeUp&#100;ate</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当浏览者粘贴系统剪贴板中的内容时通知目标对象</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onContextMenu</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 [试试在页面中的中加入onContentMenu=&#34;return false&#34;就可禁止使用鼠标右键了]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onCopy</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当页面当前的被选择内容被复制后触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onCut</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当页面当前的被选择内容被剪切时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDrag</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当某个对象被拖动时触发的事件 [活动事件]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDragDro&#112;</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:&amp;nbsp;IE&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;N4&amp;nbsp;</font></strong>|&amp;nbsp;O&amp;nbsp;</td>
            <td>一个外部对象被鼠标拖进当前窗口或者帧</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDragEnd</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当鼠标拖动结束时触发的事件，即鼠标的按钮被释放了</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDragEnter</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当对象被鼠标拖动的对象进入其容器范围内时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDragLeave</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当对象被鼠标拖动的对象离开其容器范围内时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDragOver</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当某被拖动的对象在另一对象容器范围内拖动时触发的事件 [活动事件]</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDragStart</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当某对象将被拖动时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDro&#112;</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>在一个拖动过程中，释放鼠标键时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onLoseCapture</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当元素失去鼠标移动所形成的选择焦点时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onPaste</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当内容被粘贴时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onSel&#101;ct</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;4&amp;nbsp;</font></strong><br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>

            <td>当文本内容被选择时的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onSel&#101;ctStart</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O&amp;nbsp;</td>
            <td>当文本内容选择将开始发生时触发的事件</td>
        </tr>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>数据绑定</strong></font></th>

        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>
            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>

            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onAfterUp&#100;ate</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当数据完成由数据源到对象的传送时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onCellChange</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当数据来源发生变化时</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDataAvailable</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当数据接收完成时触发事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDatasetChanged</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>数据在数据源发生变化时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onDatasetComplete</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当来子数据源的全部有效数据读取完毕时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onErrorUp&#100;ate</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当使用onBeforeUp&#100;ate事件触发取消了数据传送时，代替onAfterUp&#100;ate事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onRowEnter</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当前数据源的数据发生变化并且有新的有效数据时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onRowExit</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当前数据源的数据将要发生变化时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onRowsDel&#101;te</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当前数据记录将被删除时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onRowsIns&#101;rted</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当前数据源将要插入新数据记录时触发的事件</td>
        </tr>
        <tr>
            <th colspan=&#34;3&#34; align=&#34;left&#34;><font color=&#34;#990000&#34;><strong>外部事件</strong></font></th>

        </tr>
        <tr>
            <th><strong><font size=&#34;2&#34;>事件</font></strong></th>
            <th><strong><font size=&#34;2&#34;>浏览器支持</font></strong></th>
            <th><strong><font size=&#34;2&#34;>描述</font></strong></th>
        </tr>
        <tr>

            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onAfterPrint</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当文档被打印后触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onBeforePrint</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当文档即将打印时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onFilterChange</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当某个对象的滤镜效果发生变化时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onHelp</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当浏览者按下F1或者浏览器的帮助选择时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onPropertyChange</font></strong></th>

            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>
            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE5&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>

            <td>当对象的属性之一发生变化时触发的事件</td>
        </tr>
        <tr>
            <th align=&#34;left&#34; valign=&#34;top&#34;><strong><font size=&#34;2&#34;>onReadyStateChange</font></strong></th>
            <td valign=&#34;top&#34;>HTML: 2&amp;nbsp;|&amp;nbsp;3&amp;nbsp;|&amp;nbsp;3.2&amp;nbsp;|&amp;nbsp;4&amp;nbsp;<br>

            Browser:<strong><font color=&#34;#cc0000&#34;>&amp;nbsp;IE4&amp;nbsp;</font></strong>|&amp;nbsp;N&amp;nbsp;|&amp;nbsp;O</td>
            <td>当对象的初始化属性值发生变化时触发</td>
	    </tr>

</TEXTAREA><br/><INPUT onclick="runEx('temp23817')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp23817')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp23817')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.cmuch.com/article.asp?id=188</link>
			<title><![CDATA[Cannot send session cache limiter - headers alread]]></title>
			<author>cn_vipus@yahoo.com.cn(cn_vipus)</author>
			<category><![CDATA[PHP资料]]></category>
			<pubDate>Mon,03 Dec 2007 10:14:35 +0800</pubDate>
			<guid>http://www.cmuch.com/default.asp?id=188</guid>
		<description><![CDATA[<span style="font-size:10pt"><br/>1.修改php.ini<br/><br/>将:output_buffering = Off<br/>改为:output_buffering = 4096<br/><br/>2.将session_start()写在页面开始<br/></span>]]></description>
		</item>
		
</channel>
</rss>
