<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[自由空间]]></title>
	  <link>http://yhcygc.blog.163.com</link>
	  <description><![CDATA[让自己过的好一点，让自己周围的人过得好一点。 革命尚未成功，同志仍需努力~~~~~]]></description>
	  <language>zh-CN</language>
	  <pubDate>Thu, 14 Aug 2008 16:41:35 +0800</pubDate>
	  <lastBuildDate>Thu, 14 Aug 2008 16:41:35 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[yhcygc]]></managingEditor>
	  <webMaster><![CDATA[自由]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[自由空间]]></title>
	  	<url>http://ava.blog.163.com/photo/D_IaFk6Fet-qB92swMEX_w==/5666935706115726010.jpg</url>
	  	<link>http://yhcygc.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[PHP引号转义说明]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/2750720200842295118309</link>
    <description><![CDATA[<div><P>在处理mysql和GET、POST的数据时，常常要对数据的引号进行转义操作。</P>
<P>PHP中有三个设置可以实现自动对’（单引号），”（双引号），（反斜线）和 NULL 字符转移。<BR>PHP称之为魔术引号，这三项设置分别是</P>
<P>magic_quotes_gpc<BR>影响到 HTTP 请求数据（GET，POST 和 COOKIE）。不能在运行时改变。在 PHP 中默认值为 on。</P>
<P>magic_quotes_runtime<BR>如果打开的话，大部份从外部来源取得数据并返回的函数，包括从数据库和文本文件，所返回的数据都会被反斜线转义。该选项可在运行的时改变，在 PHP 中的默认值为 off。</P>
<P>magic_quotes_sybase<BR>如果打开的话，将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话，单引号将会被转义成 ”。而双引号、反斜线 </P>
<P>和 NULL 字符将不会进行转义。</P>
<P>虽然方便的实现了对特殊符号的自动转义，但是这样会使得程序效率降低，并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下，还需要调用get_magic_quotes_gpc() </P>
<P>,get_magic_quotes_runtime() 或ini_get()来检测状态。</P>
<P>例如：</P>
<P>if (!get_magic_quotes_gpc()) {<BR>&nbsp;&nbsp;&nbsp; $lastname = addslashes($_POST['lastname']);} else {<BR>&nbsp;&nbsp;&nbsp; $lastname = $_POST['lastname'];}<BR>因此最好关闭php的魔术引号，根据情况手动用addslashes(),stripslashes()来转义和取消转义。<BR>可以学习discuz的做法，在配置文件中加入 set_magic_quotes_runtime(0);来取消转义<BR></P>
<P><A href="http://www.php.net/manual/zh/security.magicquotes.disabling.php">http://www.php.net/manual/zh/security.magicquotes.disabling.php</A></P></div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/2750720200842295118309</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/2750720200842295118309</guid>
    <pubDate>Thu, 22 May 2008 09:51:18 +0800</pubDate>
    <dcterms:modified>2008-05-22T09:51:18+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[WAP开发常见问题汇总篇[转] ]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/275072020084132523586</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">1. 开发WAP软件需要哪些工具？</P>
<P style="TEXT-INDENT: 2em">为了开发WAP应用程序，需要一个WAP网关（注意：这里的网关可能是指支持WML的服务器。可以通过配置WWW服务器达到这个目的）和WAP工具包。工具包应当包括模拟器和能让开发者浏览WML网页。WML页</P>
<P style="TEXT-INDENT: 2em">面的开发和HTML页面的开发一样，可以使用Notepad或者其他文本编辑器来进行编辑。</P>
<P style="TEXT-INDENT: 2em">2. 有哪些公司现在提供这样的开发环境？</P>
<P style="TEXT-INDENT: 2em">Nokia、Ericsson、UpPhone和Motorola都提供免费的WAP网关和工具包。</P>
<P style="TEXT-INDENT: 2em">Nokia：Nokia Toolkit和Nokia WAP Server。</P>
<P style="TEXT-INDENT: 2em">Ericsson：Ericsson R320和WapIDE。</P>
<P style="TEXT-INDENT: 2em">UpPhone：UpPhone SDK。</P>
<P style="TEXT-INDENT: 2em">Motorola：Motorola ADK。</P>
<P style="TEXT-INDENT: 2em">3. 开发WAP应用一定要有WAP手机吗？</P>
<P style="TEXT-INDENT: 2em">不是，当开发WAP应用的时候，不一定需要WAP手机。模拟器可以帮助开发者解决大部分的问题。但是如果是开发商业网站，特别是想知道各种移动电话在显示WML页面上的差别的时候，最好是配备一个。目前各种手机</P>
<P style="TEXT-INDENT: 2em">对WML标记的支持和中文的支持状况大不相同，因此WAP手机还是必要的。</P>
<P style="TEXT-INDENT: 2em">4. 开发者需要一个WAP网关吗？</P>
<P style="TEXT-INDENT: 2em">不是很必要。如果只想进行简单的WAP内容服务，可以使用现有的Web服务器（只需要修改MIME类型）。移动电话会通过坐落在本地的网关连接到你的服务器上。</P>
<P style="TEXT-INDENT: 2em">但是在网关上驻留开发者的程序有很多好处。既然开发者的程序是网关的一个部分，开发者就可以知道呼叫号码、身份、位置等等。</P>
<P style="TEXT-INDENT: 2em">5. 可以看到WML的源代码么？</P>
<P style="TEXT-INDENT: 2em">如果开发者使用SDK浏览的时候将能够看到WML的代码。如果只有一个HTML浏览器，可以访问“Fetch Page”服务（http://www.webcab.de）来取得代码。这个可以显示在Inter</P>
<P style="TEXT-INDENT: 2em">net上的任何WML页面中。</P>
<P style="TEXT-INDENT: 2em">6. 可能在WML中加入applets吗？</P>
<P style="TEXT-INDENT: 2em">不能。</P>
<P style="TEXT-INDENT: 2em">7. 可以使用HTML开发工具来开发WAP应用吗？</P>
<P style="TEXT-INDENT: 2em">在大多数情况下开发工具是使用基于PC的浏览器。HTML、JavaScript和Java对于WAP开发来说都没有用处。但是，越来越多的开发工具在加入对WML的支持。</P>
<P style="TEXT-INDENT: 2em">Allair的Cold Fusion 4.5 和 HomeSite已经有WML支持，虽然Allair也许需要清除一些BUG。另外PHP和ASP在Coldfusion/HomeSite也能支持。</P>
<P style="TEXT-INDENT: 2em">可以到 Marjolei Katsma的 HomeSite Help site 上得到更多的信息。</P>
<P style="TEXT-INDENT: 2em">8. 可以通过WML页面来操作数据库吗？</P>
<P style="TEXT-INDENT: 2em">可以，与创建HTML页面相同。任何相关的服务器端的技术都可以用来生成WML页面。</P>
<P style="TEXT-INDENT: 2em">9. 可以使用CGI生成WML页面吗？</P>
<P style="TEXT-INDENT: 2em">当然。可以用创建HTML同样的方法来创建WML。如果想书写一个CGI来创建WML，只要记住在页面的开头正确设置MIME类型。具体的形式根据所使用的语言不同而不同。例如在Perl中：</P>
<P style="TEXT-INDENT: 2em">print ("Content-type:application/vnd.wap.wml \n\n\n");　</P>
<P style="TEXT-INDENT: 2em">注意至少要使用2个换行。</P>
<P style="TEXT-INDENT: 2em">10. 如何使用Cold Fusion来生成页面？</P>
<P style="TEXT-INDENT: 2em">使用Cold Fusion只需要加上：</P>
<P style="TEXT-INDENT: 2em">&lt;CFCONTENT type="text/vnd.wap.wml"&gt;</P>
<P style="TEXT-INDENT: 2em">11. 如何使用PHP来书写动态的WML页面？</P>
<P style="TEXT-INDENT: 2em">PHP（和大多数其他服务端脚本语言一样）可以被用来书写动态的WML内容。只需要将输出的标记限制在WML微型浏览器可接受的范围内。</P>
<P style="TEXT-INDENT: 2em">注意PHP有很多内建的HTML功能，特别是错误功能，这些功能WML微型浏览器可能无法识别。</P>
<P style="TEXT-INDENT: 2em">PHP同样可以在一个HTML文件中编写出既适合于HTML，也适合于WML的内容。PHP的源代码对于客户端来说是不可见的。因此可以针对HTML浏览器输出HTML页面，针对WML浏览器输出WML页面。</P>
<P style="TEXT-INDENT: 2em">可以在开发PHP编写的WML页面的时候把以下代码加在开头：</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">// header("Content-type: text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">　 echo("&lt;?xml version=\"1.0\"?&gt;\n");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"</P>
<P style="TEXT-INDENT: 2em">//"http://www.wapforum.org/DTD/wml_1.1.xml\"&gt;\n\n");</P>
<P style="TEXT-INDENT: 2em">?&gt;</P>
<P style="TEXT-INDENT: 2em">基于PC的浏览器将忽略这些无法理解的WML标记。但是如果想在WAP设备或者模拟器上测试的时候，只需要将"//"去掉，页面自动变成WML页面。</P>
<P style="TEXT-INDENT: 2em">12. 使用PHP动态输出WML</P>
<P style="TEXT-INDENT: 2em">这些例子生成一个非常有用的应用叫做：PizzaCalc。它将输入所有的pizza的帐单和人的数目，可以算出每个人的花费。</P>
<P style="TEXT-INDENT: 2em">应用生成一个动态的页面叫做“calc”或者“input”。注意到所有的转义字符例如双引号。该页显示了一个简单的变量处理，和如何传递参数到另外的卡片：</P>
<P style="TEXT-INDENT: 2em">使用WML浏览器就可以测试应用程序：</P>
<P style="TEXT-INDENT: 2em">http://wap.colorline.no/wap-faq/apps/pizzacalc.html。</P>
<P style="TEXT-INDENT: 2em">或者输入：</P>
<P style="TEXT-INDENT: 2em">http://wap.colorline.no/demos.html选择应用。</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">header("Content-type: text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;?xml version=\"1.0\"?&gt;\n");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"</P>
<P style="TEXT-INDENT: 2em">\"http://www.wapforum.org/DTD/wml_1.1.xml\"&gt;\n\n");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;!--The application PizzaCalc was originally made by The Crusaders</P>
<P style="TEXT-INDENT: 2em">www.crusaders.no on the Commodore Amiga --&gt;\n");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;!-- It was unfortunately not possible to emulate the crap interger handling of the</P>
<P style="TEXT-INDENT: 2em">original program --&gt;\n");</P>
<P style="TEXT-INDENT: 2em">?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">　 if($action == "calc") {</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;card id=\"result\" title=\"PizzaCalc\"&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;do type=\"prev\" label=\"Back\"&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;go href=\"pizzacalc.html#input\"/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;/do&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;p&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("The cost per eater will be ".$total / $eaters."&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　 }</P>
<P style="TEXT-INDENT: 2em">　 else {</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;card id=\"input\" title=\"PizzaCalc\"&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;p&gt;\n");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;anchor&gt;Split Pizza bill</P>
<P style="TEXT-INDENT: 2em">&lt;go href=\"pizzacalc.html?total=\$(total)&amp;eaters=\$(eaters)&amp;action=calc\"/&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/anchor&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("Total cost: &lt;input type=\"text\" name=\"total\" format=\"*N\"/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("Eaters: &lt;input type=\"text\" name=\"eaters\" format=\"*N\"/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　 }</P>
<P style="TEXT-INDENT: 2em">?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/wml&gt;</P>
<P style="TEXT-INDENT: 2em">13. 可以使用Java Servlet来生成WML页面吗？</P>
<P style="TEXT-INDENT: 2em">当然。可以使用创建HTML同样的方法来创建WML。如果想书写一个CGI来创建WML，只要记住在页面的开头正确设置MIME类型：</P>
<P style="TEXT-INDENT: 2em">response.setContentType("text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">14. 可以使用ASP、Perl等生成动态的应用吗？</P>
<P style="TEXT-INDENT: 2em">是的。可以使用任何服务器端的脚本语言来生成WAP应用。</P>
<P style="TEXT-INDENT: 2em">15. 如何使用ASP书写WML内容？</P>
<P style="TEXT-INDENT: 2em">ASP（Active Server Pages）可以做到和PHP一样，也可以用来书写动态的WML。如果需要一些好的例子请参考Luca Passani's WAP and ASP articles。或</P>
<P style="TEXT-INDENT: 2em">者查看Jean-Luc Praz's (jeanluc@corobori.com)。更多的ASP例子在：http://www.corobori.com/wap/。</P>
<P style="TEXT-INDENT: 2em">16. 在使用ASP动态输出WML页面的时候，已经设置了Content-type，但是浏览器返回的仍然是text/html，有什么问题吗？</P>
<P style="TEXT-INDENT: 2em">如果在ASP脚本中有一个错误，那么诊断程序会发还一个HTML页面，请检查脚本。</P>
<P style="TEXT-INDENT: 2em">17. 在使用ASP生成WML页面的时候出现了错误： &lt;MIME type "text/html" is not supported&gt;，会是什么问题？</P>
<P style="TEXT-INDENT: 2em">这个问题是Web浏览器不知道WML的正确类型，修改ASP的第一行，加入：</P>
<P style="TEXT-INDENT: 2em">&lt;Response.ContentType = "text/vnd.wap.wml"&gt;　</P>
<P style="TEXT-INDENT: 2em">后就可以工作了。</P>
<P style="TEXT-INDENT: 2em">18. 下面的代码有什么问题吗？</P>
<P style="TEXT-INDENT: 2em">&lt;%Response.ContentType = "text/vnd.WAP.WML"%&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">去掉&lt;?xml version="1.0"?&gt;之前的空格。XML解释器希望在这行中没有其他字符，甚至是空行。</P>
<P style="TEXT-INDENT: 2em">19. ASP代码可以在模拟器上工作，在真正的浏览器上怎么不行？</P>
<P style="TEXT-INDENT: 2em">在很多模拟器上没有像真正的WML浏览器那么严格。这些对于那些没有使用网关的模拟器（Nokia SDK/Toolkit）来说更是这样，有些就根本没有使用网关（WinWAP、WapMAN）。</P>
<P style="TEXT-INDENT: 2em">一个真正的WML浏览器应该只读取二进制的数据（从WML编码得来的）WMLC，对于网关应该将文本WML转换/编译成WMLC。语法是非常严格的。ASP是为HTML浏览器设置的，但是HTML没有WML那么</P>
<P style="TEXT-INDENT: 2em">严格。</P>
<P style="TEXT-INDENT: 2em">这里在ASP生成动态页面的时候有一个微小的“bug”。它在WML浏览器上不允许有任何地方输出白行（例如：空格，回车，换行）。注意到有些网关可能会修正这些问题，但有的则不管（例如：CMG网关）。</P>
<P style="TEXT-INDENT: 2em">下面是一个常见的ASP代码用来输出WML页面开头的MIME类型：</P>
<P style="TEXT-INDENT: 2em">&lt;%Response.ContentType = "text/vnd.wap.wml"%&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">问题就在ASP将会在 .wml"%&gt; 和 &lt;?xml vers 之间输出换行和回车。这两行就被分割了。这将打乱WML代码的内容。WML必须以“&lt;”开头，而且第一行是&lt;?xml version="1.0"?&gt;。</P>
<P style="TEXT-INDENT: 2em">就上面的WML页面回车／换行将会出现问题。</P>
<P style="TEXT-INDENT: 2em">最简单的解决办法是：</P>
<P style="TEXT-INDENT: 2em">&lt;%Response.ContentType = "text/vnd.wap.wml"%&gt;&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">在XML定义正确的格式化以后，后面的部分WML对空格就没有那么严格的要求。</P>
<P style="TEXT-INDENT: 2em">要注意的是有些网关在输出ASP的时候会有问题，因此在WML代码中最好使用 Response.Write 而不是&lt;%=MyVar%&gt;。</P>
<P style="TEXT-INDENT: 2em">20. 如何使用Perl来生成WML内容？</P>
<P style="TEXT-INDENT: 2em">和其他Server端程序一样。Perl也可以用来书写漂亮的WAP应用程序。</P>
<P style="TEXT-INDENT: 2em">最常见的就是如何使用Perl输出正确的MIME类型，下面的例子说明了这一点：</P>
<P style="TEXT-INDENT: 2em">print "Content-type: text/vnd.wap.wml\n\n";</P>
<P style="TEXT-INDENT: 2em">print "&lt;?xml version=\"1.0\"?&gt;\n";</P>
<P style="TEXT-INDENT: 2em">print "&lt;!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"</P>
<P style="TEXT-INDENT: 2em">\"http://www.wapforum.org/DTD/wml_1.1.xml\"&gt;\n";</P>
<P style="TEXT-INDENT: 2em">print "&lt;wml&gt;\n";</P>
<P style="TEXT-INDENT: 2em">……</P>
<P style="TEXT-INDENT: 2em">21. 应当如何下手书写WAP应用程序？</P>
<P style="TEXT-INDENT: 2em">其实需要的只是Text编辑器。但是使用一个开发工具可以节约很多时间。</P>
<P style="TEXT-INDENT: 2em">在这之前应该浏览一下WAP的权威站点：www.wapforum.com。</P>
<P style="TEXT-INDENT: 2em">在Nokia WAP 开发论坛中进行注册，并且下载Nokia WAP Developer Toolkit 。Toolkit中的PDF文件可以给出一定的WML和WMLScript指导。Nokia To</P>
<P style="TEXT-INDENT: 2em">olkit需要JRE (Java Runtime Environment) v.1.2.2 或者更高版本。</P>
<P style="TEXT-INDENT: 2em">虽然工具可以用来为WAP设备设计应用，但是不是为专门的移动电话。在WAP开发工具上所看到的并不代表用户在手机上所看到的。为了确定想看到的事情，最好需要一个WAP设备，例如移动电话，或者模拟器。</P>
<P style="TEXT-INDENT: 2em">Nokia WAP SDK 2有一个7110的模拟器。模拟器是一个有效的检测方式，能检测程序中的bug。 Nokia SDK 同样还包括一个小的WAP server让开发者可以从本地或者HTTP服务</P>
<P style="TEXT-INDENT: 2em">器上下载WML页面。</P>
<P style="TEXT-INDENT: 2em">到 Phone.com 开发站点注册后，Phone.com 提供UP.browser。这是最流行的浏览器，特别是在美国，Phone.com 提供UP.SDK。 在注册之后就可以下载。</P>
<P style="TEXT-INDENT: 2em">对于Ericsson R320 和 R380是最近的事情。应该注册并查看Ericsson's Developer's Zone 来得到开发工具。R380是一个非常好的模拟器，在 Symbian 不需</P>
<P style="TEXT-INDENT: 2em">要注册就可以下载。Ericsson 没有公开的为R320的模拟器。</P>
<P style="TEXT-INDENT: 2em">Motorola 有一个平台叫做 Mobile Internet eXchange 或者 MIX 。Mobile Application Development Kit 已经开发出一个开发平台，即为</P>
<P style="TEXT-INDENT: 2em">WAP也为Motorola的 VoxML。在注册后，可以在下面的网址找到数据包。</P>
<P style="TEXT-INDENT: 2em">http://www.motorola.com/MIMS/MSPG/cgi-bin/spn_madk.cgi.　</P>
<P style="TEXT-INDENT: 2em">WAPmine 是一个独立的应用，叫做 WAPPage 是一个所见即所得的编辑工具。而且有一个XML树型控件来编辑WML标签。</P>
<P style="TEXT-INDENT: 2em">如果在开发公共应用程序时，想在很多设备上测试你的程序，就像在不同的浏览器上测试HTML页面一样。注意在不同的WML浏览器上的差别，可能比在不同的HTML浏览器上的差别要大。</P>
<P style="TEXT-INDENT: 2em">22. 如何编写和测试WML页面？</P>
<P style="TEXT-INDENT: 2em">现在有很多SDK。AnywhereYouGo.com有WAP SDK和IDE列表，可以下载一个来用。任何文本编辑器都可以书写一个简单的WML页面，当然HTML编辑器也可以（特别是那些支持个人定义标签</P>
<P style="TEXT-INDENT: 2em">的），例如：Allaire Homesite （http://www.allaire.com ）。可以使用SDK来做简单的测试，但是对于大的项目可能要困难些。AnywhereYouGo.com已经建立</P>
<P style="TEXT-INDENT: 2em">一套基于Web的工具来帮助WAP测试。</P>
<P style="TEXT-INDENT: 2em">23. 哪儿可以在找到WML的测试工具？</P>
<P style="TEXT-INDENT: 2em">首先确定WML代码是正确的，然后再使用WML测试工具。</P>
<P style="TEXT-INDENT: 2em">有一个非常好的测试工具在Zygo Communications（http://wap.z-y-g-o.com/tools/），测试工具是用Perl写的。里面还有其他的工具可供下载。</P>
<P style="TEXT-INDENT: 2em">24. 如何操作WML页面？</P>
<P style="TEXT-INDENT: 2em">操作WML页面或者卡片，最简单的办法是通过现有的网关。大多数移动电话提供者将功能都放在主页上，在上面可以通过WAP设备操作。网关的链接一般叫做“Go to URL”。当选择以后，WAP设备将通过网关</P>
<P style="TEXT-INDENT: 2em">操作指定的普通IP或者URL。在这种情况下，网关读取从WAP设备发送给网关的WML内容，就像PC浏览器读取内容的过程一样。</P>
<P style="TEXT-INDENT: 2em">有些营运商选择不让他们的用户操作其他的站点。这个就像Internet Service Provider只允许用户操作ISP自己的站点。像这样的做法是不明智的，这样会发现自己的用户去其他地方了。</P>
<P style="TEXT-INDENT: 2em">如果要坚持这种方法，可以通过ISP拨号或者使用一个公共的网关来取得其他的WAP资源。</P>
<P style="TEXT-INDENT: 2em">25. 有没有一个友好的方式来管理WML内容？</P>
<P style="TEXT-INDENT: 2em">还没有。虽然Oracale正在开发数据库驱动的文档服务，被称为Panama，可以支持WAP分发。</P>
<P style="TEXT-INDENT: 2em">26. 如何防止用户代理cache页面？</P>
<P style="TEXT-INDENT: 2em">如果用户使用ASP，应该加入一行&lt;%Response.expires=-1%&gt; ，这个将阻止Cache。</P>
<P style="TEXT-INDENT: 2em">27. 怎样防止从Cache中读取WML页面？</P>
<P style="TEXT-INDENT: 2em">当WML页面下载到WAP设备后，它将保存在WAP设备内存中一段时间，直到这个时间过期。在这之后，页面将从服务器下载，而不是从WAP设备的缓存读取。这个过程被称做Cache。</P>
<P style="TEXT-INDENT: 2em">但是有些时候不想让页面从缓存中读取，而是从服务器端读取。一个典型的例子就是当服务器的内容不断在更新的时候，通过在HTTP头中加入一定的cache信息，来告诉WAP设备该页面将不存储在缓存中。</P>
<P style="TEXT-INDENT: 2em">可以在服务器端生成HTTP头，或者使用PHP、ASP、Perl或者其他服务端开发语言。这一行不能被包括在页面里，既然是HTTP的信息头，就不是WML元素。</P>
<P style="TEXT-INDENT: 2em">对于静态页面，或许没有使用服务器端脚本语言，许多浏览器支持META标签来控制浏览器的Cache。看本部分的最后的例子。</P>
<P style="TEXT-INDENT: 2em">将下面代码加入到HTTP头中，页面将马上过期：</P>
<P style="TEXT-INDENT: 2em">Expires: Mon, 26 Jul 1997 05:00:00 GMT</P>
<P style="TEXT-INDENT: 2em">Last-Modified: DD. month YYYY HH:MM:SS GMT</P>
<P style="TEXT-INDENT: 2em">Cache-Control: no-cache, must-revalidate</P>
<P style="TEXT-INDENT: 2em">Pragma: no-cache</P>
<P style="TEXT-INDENT: 2em">第一行告诉微型浏览器，页面已经过期一段时间了。第二行告诉浏览器页面最后一次修改的时间。DD应该换成当天的日期，month YY HH MM SS等等类推。第三行和第四行有同样的效果。告诉浏览器页面不被</P>
<P style="TEXT-INDENT: 2em">Cache（第三行适用于 HTTP 1.1，第四行适用于HTTP 1.0）。</P>
<P style="TEXT-INDENT: 2em">下面的是PHP的一个例子：</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">// set the correct MIME type</P>
<P style="TEXT-INDENT: 2em">　　　　 header("Content-type: text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">// expires in the past</P>
<P style="TEXT-INDENT: 2em">　　　　 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");</P>
<P style="TEXT-INDENT: 2em">// Last modified, right now</P>
<P style="TEXT-INDENT: 2em">　　　　 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");　</P>
<P style="TEXT-INDENT: 2em">// Prevent caching, HTTP/1.1</P>
<P style="TEXT-INDENT: 2em">　　　　 header("Cache-Control: no-cache, must-revalidate");</P>
<P style="TEXT-INDENT: 2em">// Prevent caching, HTTP/1.0</P>
<P style="TEXT-INDENT: 2em">　　　　 header("Pragma: no-cache");</P>
<P style="TEXT-INDENT: 2em">　　 ?&gt;</P>
<P style="TEXT-INDENT: 2em">下面是使用WebClasses(VB)的例子。使用"Response.Expires=-1"，防止Cache。</P>
<P style="TEXT-INDENT: 2em">　Private Sub WebClass_Start()</P>
<P style="TEXT-INDENT: 2em">　　　　　 'Set correct MIME type</P>
<P style="TEXT-INDENT: 2em">　　　　　 Response.ContentType = "text/vnd.wap.wml"</P>
<P style="TEXT-INDENT: 2em">　　　　　</P>
<P style="TEXT-INDENT: 2em">　　　　　 'Make sure no caching</P>
<P style="TEXT-INDENT: 2em">　　　　　 Response.Expires = -1</P>
<P style="TEXT-INDENT: 2em">　　　　　 Response.AddHeader "Pragma", "no-cache"</P>
<P style="TEXT-INDENT: 2em">　　　　　 Response.AddHeader "Cache-Control", "no-cache, must-revalidate"</P>
<P style="TEXT-INDENT: 2em">　　　</P>
<P style="TEXT-INDENT: 2em">　　　　　 'Use basicwml(my own) as template</P>
<P style="TEXT-INDENT: 2em">　　　　　 Set NextItem = basicwml</P>
<P style="TEXT-INDENT: 2em">　 End Sub　</P>
<P style="TEXT-INDENT: 2em">这里有一个ASP的例子，同样使用“Response.Expires=-1”防止Cache。</P>
<P style="TEXT-INDENT: 2em">&lt;%</P>
<P style="TEXT-INDENT: 2em">　　　 Response.ContentType = "text/vnd.wap.wml"</P>
<P style="TEXT-INDENT: 2em">　　　 Response.Expires = -1</P>
<P style="TEXT-INDENT: 2em">　　　 Response.AddHeader "Pragma", "no-cache"</P>
<P style="TEXT-INDENT: 2em">　　　 Response.AddHeader "Cache-Control", "no-cache, must-revalidate"</P>
<P style="TEXT-INDENT: 2em">%&gt;　</P>
<P style="TEXT-INDENT: 2em">最后是使用META的例子：</P>
<P style="TEXT-INDENT: 2em">&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"</P>
<P style="TEXT-INDENT: 2em">"http://www.wapforum.org/DTD/wml_1.1.xml"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;head&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;meta forua="true" http-equiv="Cache-Control" content="max-age=0"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;/head&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;card id="alwaysexpire"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;This deck will never be stored in the cache&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/wml&gt;</P>
<P style="TEXT-INDENT: 2em">下面的页面是在经过86400秒(24 hours)后过期。</P>
<P style="TEXT-INDENT: 2em">&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"</P>
<P style="TEXT-INDENT: 2em">"http://www.wapforum.org/DTD/wml_1.1.xml"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;head&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;meta forua="true" http-equiv="Cache-Control" content="max-age=86400"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;/head&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;card id="expire1day"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;This card will live in the cache for a day&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/wml&gt;</P>
<P style="TEXT-INDENT: 2em">有些浏览器例如：UP.Simulator如果可以通过“返回”达到另外一个卡片，那么它将不会重新装载卡片。为了强制这个更新动作，用户必须在META标签中使用must-revalidate 参数。</P>
<P style="TEXT-INDENT: 2em">&lt;meta forua="true" http-equiv="Cache-Control" content="must-revalidate"/&gt;</P>
<P style="TEXT-INDENT: 2em">28. 如何防止变量被保存在Cache中？</P>
<P style="TEXT-INDENT: 2em">变量保存在Cache中，这样变量还可以再利用。例如当用户返回到上一个输入卡片，他不需要重新输入，只需要改变需要改变的地方。但是在某些情况下这会造成一些问题。例如以WAP聊天系统，有些变量用了一遍又一</P>
<P style="TEXT-INDENT: 2em">遍，但是需要不同的内容。有些浏览器，例如：Nokia 7110，就会存在类似的在该清除的时候无法清除的问题。</P>
<P style="TEXT-INDENT: 2em">在WML中，&lt;card&gt;标签有一个参数叫做newcontext。</P>
<P style="TEXT-INDENT: 2em">当newcontext="true"　时清除所有的变量。但是这样也清除了所有导航的历史记录，这意味着back按钮不再工作。</P>
<P style="TEXT-INDENT: 2em">为了清除变量，可以告诉浏览器将变量设为空：</P>
<P style="TEXT-INDENT: 2em">&lt;setvar name="one_variable" value=""/&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;setvar name="another_variable" value=""/&gt;</P>
<P style="TEXT-INDENT: 2em">但是，不是每个时候都有效果。在某些情况下必须使用一个难以想象的方法来清空变量。就是使用 onenterforward 事件。</P>
<P style="TEXT-INDENT: 2em">&lt;onevent type="onenterforward"&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;refresh&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;setvar name="one_variable" value=""/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;setvar name="another_variable" value=""/&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;/refresh&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/onevent&gt;</P>
<P style="TEXT-INDENT: 2em">29. 怎么能够知道请求是从WML浏览器来的还是HTML浏览器来的？</P>
<P style="TEXT-INDENT: 2em">既然要利用已经存在的为HTML浏览器编写的代码，就需要知道请求是从HTML浏览器还是从WML浏览器过来的。同样地，如果想重新引导的HTML浏览器直接到相应的HTML文档上，WML浏览器到WML页面上</P>
<P style="TEXT-INDENT: 2em">，以下的PHP代码就可以做到这些。</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">// Because this script sends out HTTP header information,</P>
<P style="TEXT-INDENT: 2em">// the first characters in the file must be the &lt;? PHP tag.</P>
<P style="TEXT-INDENT: 2em">// relative URL to your HTML file</P>
<P style="TEXT-INDENT: 2em">　　 $htmlredirect = "/html/my_htmlpage.html";</P>
<P style="TEXT-INDENT: 2em">// ABSOLUTE URL to your WML file　</P>
<P style="TEXT-INDENT: 2em">　　 $wmlredirect = "http://wap.mysite.com/wml/my_wmldeck.wml";</P>
<P style="TEXT-INDENT: 2em">　　 if(strpos(strtoupper($HTTP_ACCEPT),"VND.WAP.WML") &gt; 0)</P>
<P style="TEXT-INDENT: 2em">{// Check whether the browser/gateway says it accepts WML.</P>
<P style="TEXT-INDENT: 2em">　　　　 $br = "WML";</P>
<P style="TEXT-INDENT: 2em">　　 }</P>
<P style="TEXT-INDENT: 2em">　　 else {</P>
<P style="TEXT-INDENT: 2em">　　　　 $browser=substr(trim($HTTP_USER_AGENT),0,4);</P>
<P style="TEXT-INDENT: 2em">　　　　 if($browser=="Noki" || // Nokia phones and emulators</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="Eric" || // Ericsson WAP phones and emulators</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="WapI" || // Ericsson WapIDE 2.0</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="MC21" || // Ericsson MC218</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="AUR " || // Ericsson R320</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="R380" || // Ericsson R380</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="UP.B" || // UP.Browser</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="WinW" || // WinWAP browser</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="UPG1" || // UP.SDK 4.0</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="upsi" || // another kind of UP.Browser ??</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="QWAP" || // unknown QWAPPER browser</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="Jigs" || // unknown JigSaw browser</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="Java" || // unknown Java based browser</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="Alca" || // unknown Alcatel-BE3 browser (UP based?)</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="MITS" || // unknown Mitsubishi browser</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="MOT-" || // unknown browser (UP based?)</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="My S" ||　// unknown Ericsson devkit browser ?</P>
<P style="TEXT-INDENT: 2em">$browser=="WAPJ" || // Virtual WAPJAG www.wapjag.de</P>
<P style="TEXT-INDENT: 2em">$browser=="fetc" || // fetchpage.cgi Perl script from www.wapcab.de</P>
<P style="TEXT-INDENT: 2em">$browser=="ALAV" || // yet another unknown UP based browser ?</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $browser=="Wapa") // another unknown browser (Web based "Wapalyzer"?)</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 {</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $br = "WML";</P>
<P style="TEXT-INDENT: 2em">　　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　　 else {</P>
<P style="TEXT-INDENT: 2em">　　　　　　 $br = "HTML";</P>
<P style="TEXT-INDENT: 2em">　　　　 }</P>
<P style="TEXT-INDENT: 2em">　　 }</P>
<P style="TEXT-INDENT: 2em">　　 if($br == "WML") {</P>
<P style="TEXT-INDENT: 2em">// Force the browser to load the WML file instead</P>
<P style="TEXT-INDENT: 2em">　　　 header("302 Moved Temporarily");</P>
<P style="TEXT-INDENT: 2em">　　　 header("Location: ".$wmlredirect);</P>
<P style="TEXT-INDENT: 2em">　　　 exit;</P>
<P style="TEXT-INDENT: 2em">　　 }</P>
<P style="TEXT-INDENT: 2em">　　 else {</P>
<P style="TEXT-INDENT: 2em">// Force the browser to load the HTML file instead</P>
<P style="TEXT-INDENT: 2em">　　　 header("302 Moved Temporarily");</P>
<P style="TEXT-INDENT: 2em">　　　 header("Location: ".$htmlredirect);</P>
<P style="TEXT-INDENT: 2em">　　　 exit;</P>
<P style="TEXT-INDENT: 2em">　　 }</P>
<P style="TEXT-INDENT: 2em">　 ?&gt;　</P>
<P style="TEXT-INDENT: 2em">这个判断是在服务端完成的， PHP代码将首先查看网关是否接收text/vnd.wap.vml MIME类型。如果不是，将检测前面的字符，查看是否为WML浏览器。如果不符合，那么就假设为HTML浏览器</P>
<P style="TEXT-INDENT: 2em">。如果有新的WML浏览器，那么ID字符串也要增加。</P>
<P style="TEXT-INDENT: 2em">这个代码基于Robert Whitinger（robert@wapsight.com）的代码，使用了Don Amaro（donamaro.concepcion@nl.unisys.com）提供的列表</P>
<P style="TEXT-INDENT: 2em">。</P>
<P style="TEXT-INDENT: 2em">注意：由于只需要四个字符串就可以辨别，因此例如："WapIDE-SDK/2.0;(R320s(Arial))" 可以使用“WapI”来代替是可行的做法，也是足够的。</P>
<P style="TEXT-INDENT: 2em">同样的功能也可以通过ASP来解决。先判断请求的是“/index.wml” 或者 “/index.html” 和所需要的MIME类型。另外以下的脚本辨别的方式和上面不一样。另外还需要网关告诉服务器它能</P>
<P style="TEXT-INDENT: 2em">接收 的text/vnd.wap.wml MIME类型。该例子如下所示：</P>
<P style="TEXT-INDENT: 2em">&lt;%</P>
<P style="TEXT-INDENT: 2em">Response.Buffer = TRUE</P>
<P style="TEXT-INDENT: 2em">　 Dim IsWap</P>
<P style="TEXT-INDENT: 2em">　 httpAccept = LCase(Request.ServerVariables("HTTP_ACCEPT"))</P>
<P style="TEXT-INDENT: 2em">　 if Instr(httpAccept,"wap") then</P>
<P style="TEXT-INDENT: 2em">　 IsWap=1</P>
<P style="TEXT-INDENT: 2em">　 Else Response.Redirect "/index.html" : Response.Flush : Response.End</P>
<P style="TEXT-INDENT: 2em">End if</P>
<P style="TEXT-INDENT: 2em">%&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;%Response.ContentType = "text/vnd.wap.wml"%&gt;&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;%Response.Flush%&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"</P>
<P style="TEXT-INDENT: 2em">"http://www.wapforum.org/DTD/wml_1.1.xml"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;card id="redirect"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;onevent type="onenterforward"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;go href="/index.wml"/&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/onevent&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;a href="/index.wml"&gt;enter&lt;/a&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/wml&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;%Response.Flush:Response.End%&gt;</P>
<P style="TEXT-INDENT: 2em">30. 如何判断访问者是来自哪个浏览器或者移动电话？</P>
<P style="TEXT-INDENT: 2em">可以通过检查HTTP_USER_AGENT标签来判断。例如试着使用Microsoft Internet Explorer访问一个站点的时候，HTTP_USER_AGENT将返回：Mozilla/4.</P>
<P style="TEXT-INDENT: 2em">0 （compatible；MSIE 5.0； Windows 98）；在同样的情况下使用Nokia 7110访问这个站点，HTTP_USER_AGENT就会是：Nokia7110/1.0（04.73</P>
<P style="TEXT-INDENT: 2em">）。据此可以判断用户代理是什么类型的。</P>
<P style="TEXT-INDENT: 2em">31. 可以得到用户代理的电话号码吗？</P>
<P style="TEXT-INDENT: 2em">不可以，除非网关支持这个特点，WAP没有办法知道用户的电话号码。</P>
<P style="TEXT-INDENT: 2em">32. 可以通过WML使得可以用WAP设备进行拨号吗？</P>
<P style="TEXT-INDENT: 2em">WAP的电话功能可以使用Wireless Telephony Application Interface（WTAI）。</P>
<P style="TEXT-INDENT: 2em">例如：</P>
<P style="TEXT-INDENT: 2em">WMLScript: WTAPublic.MakeCall("9287787");　</P>
<P style="TEXT-INDENT: 2em">但是第一代的WAP设备不支持这个功能。</P>
<P style="TEXT-INDENT: 2em">33. 能够从WAP设备中读取数据吗，例如：电话号码？</P>
<P style="TEXT-INDENT: 2em">这里有一些通过HTTP的信息，但是十分有限。既然只有网关发送过来少量的信息，像WAP设备的号码可能无法读取。同时，在某些国家这还涉及到个人隐私的问题。</P>
<P style="TEXT-INDENT: 2em">基本上丢弃的内容就是WAP网关传送给HTTP服务器的内容。这不同于WAP网关到网关。Phone.com的UP.Link网关是一个最好的例子。因为它在HTTP头中返回一个字符串叫做 UP_X_SUBN</P>
<P style="TEXT-INDENT: 2em">O，里面包含了电话号码。Ericsson网关将传送一个辨别设备用的字符串，但是在明文中没有电话号码。</P>
<P style="TEXT-INDENT: 2em">每次WAP设备向HTTP服务器请求一个URL，WAP网关就会将信息传送给HTTP服务器。</P>
<P style="TEXT-INDENT: 2em">以下的PHP脚本显示了从网关过来的所有HTTP头的信息。可以使用WML浏览器进行测试。(http://wap.colorline.no/clientinfo.html)。其他的例子也可以在下面的UT</P>
<P style="TEXT-INDENT: 2em">L中找到：http://wap.colorline.no/demos.html</P>
<P style="TEXT-INDENT: 2em">第一个部分是取得所有的标准HTTP头信息。第二个部分是提取一个内容。</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">　 header("Content-type: text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">　 echo("&lt;?xml version=\"1.0\"?&gt;\n");</P>
<P style="TEXT-INDENT: 2em">echo("&lt;!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"</P>
<P style="TEXT-INDENT: 2em">\"http://www.wapforum.org/DTD/wml_1.1.xml\"&gt;\n\n");</P>
<P style="TEXT-INDENT: 2em">　 echo("&lt;!—Code written in Microsoft NOTEPAD.EXE à \n");</P>
<P style="TEXT-INDENT: 2em">?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;card id="init" title="Client Info"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;?</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 // First part – standard HTTP stuff</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 $headers = getallheaders();</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 while (list($header, $value) = each($headers)) {</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　 echo strtoupper($header). ": ". $value. "&lt;br/&gt;\n";　　　　　　　</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 // Second part</P>
<P style="TEXT-INDENT: 2em">// IP address of the client side</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("REMOTE_ADDR: ".$REMOTE_ADDR. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Port at the client side</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("REMOTE_PORT: ".$REMOTE_PORT. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Name of authenticated user</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("REMOTE_USER: ".$REMOTE_USER. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Gateway Interface type</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("GATEWAY_INTERFACE: ".$GATEWAY_INTERFACE. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Protocol used by the server</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("SERVER_PROTOCOL: ".$SERVER_PROTOCOL. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Request Method</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("REQUEST_METHOD: ".$REQUEST_METHOD. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Connection type</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("HTTP_CONNECTION: ".$HTTP_CONNECTION. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// Host it connected via (proxy)</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("HTTP_VIA: ".$HTTP_VIA. "&lt;br/&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　　　 ?&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/wml&gt;　</P>
<P style="TEXT-INDENT: 2em">Henrik Gemal （gemal@dk.net）也有一个在线的基于WML的工具BrowserSpy，来显示更多关于HTTP头的信息、服务器环境和用户的浏览器等等。有关这个工具的详细情况可以浏览h</P>
<P style="TEXT-INDENT: 2em">ttp://wap.gemal.dk/</P>
<P style="TEXT-INDENT: 2em">Werner Forkel 提交了一个Perl的脚本，可以显示电话号码（如果有）。可以在以下位置测试：http://wap.colorline.no/wap-faq/apps/subnotest.w</P>
<P style="TEXT-INDENT: 2em">ml，同样也收集在：http://wap.colorline.no/demos.html.</P>
<P style="TEXT-INDENT: 2em">这些程序只适合某个网关。如果要测试其他的网关，可能就显示不出电话号码。因此电话号码不能作为ID号来处理。至少因为不是一个全球的标准。</P>
<P style="TEXT-INDENT: 2em">34. 有没有办法连接到电话号码？</P>
<P style="TEXT-INDENT: 2em">在某些情况下，当在显示了一连串的号码之后，需要中断功能连接到一个电话号码上并拨号。例如：执行一个 dial:12345678 就非常像 mailto: 标签。</P>
<P style="TEXT-INDENT: 2em">越来越多的浏览器都支持这个功能，但还不是所有。Phone.com, Mitsubishi 和 Ericsson 已经在浏览器中集成了这个基于Wireless Telephony Interface </P>
<P style="TEXT-INDENT: 2em">specifications （WTAI）的功能。 WTAI将允许以下的URL将关闭连接并且拨号：</P>
<P style="TEXT-INDENT: 2em">　 &lt;go href="wtai://wp/mc;+4712345678"&gt;Make a call to +47-12345678&lt;/go&gt;　</P>
<P style="TEXT-INDENT: 2em">Nokia 7110 已经有个功能叫做“Use Number”。它可以通过WML卡片查找一个类似于电话号码的列表，然后用户可以选择进行呼叫。注意用户必须分离这些数字以便它能正常工作。</P>
<P style="TEXT-INDENT: 2em">35. 使用GET或者POST方式能传送多少字符？</P>
<P style="TEXT-INDENT: 2em">使用GET或者POST方式所能传送的字符数目，不同的设备有不同的限制。一个GET通过UTL传送变量，能传送的数据总量比使用POST方式所能传送的数据要小。例如，Nokia 7110似乎对每个GET　</P>
<P style="TEXT-INDENT: 2em">限制在512个字节左右，但是POST最大可以达到一个编译后卡片的大小（约1300字节）。UP.SDK 4.0将GET请求限制在970左右，最大可以达到一个编译后卡片的大小。</P>
<P style="TEXT-INDENT: 2em">显然，卡片有时候保存了要发送给服务器的参数的内容，既然编译后的卡片大小有限制，那么肯定要影响到整个所能传输的数据。</P>
<P style="TEXT-INDENT: 2em">在POST和GET之间没有太多的区别。比如这个没有很好地使用GET的例子。</P>
<P style="TEXT-INDENT: 2em">&lt;input type="text" name="var1" format="*N"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;anchor&gt;Send it</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;go href="somescript.cgi?variable=$(var1)" method="get"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">下面仍然是一个使用GET的请求，但是使用了&lt;postfield&gt;来传送参数。这个代码就漂亮多了。既然可以定义为GET，同样也很容易转成POST。</P>
<P style="TEXT-INDENT: 2em">&lt;input type="text" name="var1" format="*N"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;anchor&gt;Send it</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;go href="somescript.cgi" method="get"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　 &lt;postfield name="variable" value="$(var1)"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;/go&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">直接改为POST：</P>
<P style="TEXT-INDENT: 2em">&lt;input type="text" name="var1" format="*N"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;anchor&gt;Send it</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;go href="somescript.cgi" method="post"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　 &lt;postfield name="variable" value="$(var1)"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;/go&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　 &lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">最好是做测试找到到底能传输多少数据。这里有个测试程序：</P>
<P style="TEXT-INDENT: 2em">http://wap.colorline.no/wap-faq/apps/putsize.php3。</P>
<P style="TEXT-INDENT: 2em">这个程序也可以在下面的URL中找到：http://wap.colorline.no/demos.html。</P>
<P style="TEXT-INDENT: 2em">该程序将产生一个卡片包含一个变量，里面包含了一定数量的字符X。用户可以选择传输是使用GET还是POST。在传输之后，脚本将要显示接收到的字符个数。</P>
<P style="TEXT-INDENT: 2em">脚本生成一个页面来测试使用GET或者POST方式到底能发送多少个字符：</P>
<P style="TEXT-INDENT: 2em">&lt;?xml version="1.0"?&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"</P>
<P style="TEXT-INDENT: 2em">"http://www.wapforum.org/DTD/wml_1.1.xml"&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;head&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;meta forua="true" http-equiv="Cache-Control" content="max-age=0"/&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;meta forua="true" http-equiv="Cache-Control" content="must-revalidate"/&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/head&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;card&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;do type="prev" label="Back"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;go href="putsize.php3"/&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/do&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;anchor&gt;GET data</P>
<P style="TEXT-INDENT: 2em">　 &lt;go method="get" href="putsize.php3"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;postfield name=\"a\"</P>
<P style="TEXT-INDENT: 2em">value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/go&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/wml&gt;</P>
<P style="TEXT-INDENT: 2em">36. 如何同HTML站点一样POST／CGI，返回表单数据到服务器？</P>
<P style="TEXT-INDENT: 2em">如果使用：</P>
<P style="TEXT-INDENT: 2em">&lt;go method="post" href="mycgi.cgi"&gt;　</P>
<P style="TEXT-INDENT: 2em">并且使用：</P>
<P style="TEXT-INDENT: 2em">&lt;postfield name="fieldname" value="$NameOfInputField"/&gt;　</P>
<P style="TEXT-INDENT: 2em">就可以POST数据给CGI程序了。</P>
<P style="TEXT-INDENT: 2em">37. POST无法工作是怎么回事？</P>
<P style="TEXT-INDENT: 2em">有很多说POST参数将会丢失的流言，特别是在Nokia 7110。就笔者所知，还没有哪个Nokia 7110有这样的问题。这个问题主要是存在于网关或接收方。</P>
<P style="TEXT-INDENT: 2em">测试显示Nokia SDK 2.18，当使用内建网关的时候，使用POST会出现问题。甚至当method 设置成“POST”的时候，服务器那边还是将POST请求作为 GET。</P>
<P style="TEXT-INDENT: 2em">当使用POST的URL时 ，Nokia SDK 将会崩溃。在某些情况下URL的最后的字符将被删除。</P>
<P style="TEXT-INDENT: 2em">POST Test页面将简单的POST的两个变量叫做“var1”和“var2”来显示整个变量的内容和HTTP头的内容。如果不能看到正确的变量内容，肯定有问题。检查HTTP头中的application</P>
<P style="TEXT-INDENT: 2em">/x-www-form-urlencoded（注意！需要在变量中输入一些内容）。</P>
<P style="TEXT-INDENT: 2em">这个方法解决了Nokia SDK 2.18的问题，可以把它配置到任意的公共网关来测试。笔者推荐使用 wapHQ 网关。</P>
<P style="TEXT-INDENT: 2em">在其他的情况下，POST确实不工作，问题可能是HTTP头在服务器端解释的时候有问题。脚本语言，例如：ASP、Java或是CGI等等都是通过查看在HTTP头中的 application/x-www-f</P>
<P style="TEXT-INDENT: 2em">orm-urlencoded 完全匹配的字符串。在某些情况下字符串可能有附加的数据，例如：charset="utf8" 。既然服务器端不是精确的匹配，它就不会查看HTTP头，因此POST就变量丢失了。</P>
<P style="TEXT-INDENT: 2em">注意这不是浏览器的问题，在HTTP头加入字符集描述，将造成脚本语言方面的错误。</P>
<P style="TEXT-INDENT: 2em">为了检测有关网关或浏览器的问题，仍使用上面的POST Test页面来测试。同样查看application/x-www-form-urlencoded 的输出，检查有没有附加的字符在结尾部分，如果有，</P>
<P style="TEXT-INDENT: 2em">那么这就是服务器端的问题。</P>
<P style="TEXT-INDENT: 2em">解决这个问题的方案很复杂，它随用户使用的脚本描述语言不同而不同，而且需要操作原代码。简单地说，解决方案就是需要人工读取HTTP头，不要使用脚本语言已经写好的读取方式。</P>
<P style="TEXT-INDENT: 2em">这里有一个用ASP编写的解决方法。它显示了如何在POST中抓取数据。用户需要从二进制数据中发现需要的变量。</P>
<P style="TEXT-INDENT: 2em">Dim lngToalByteCount</P>
<P style="TEXT-INDENT: 2em">Dim vntRequestData</P>
<P style="TEXT-INDENT: 2em">　 lngTotalByteCount = Request.TotalBytes</P>
<P style="TEXT-INDENT: 2em">　 vntRequestData = Request.BinaryRead(lngTotalByteCount)</P>
<P style="TEXT-INDENT: 2em">全部的代码，就应该像下面的代码：</P>
<P style="TEXT-INDENT: 2em">&lt;%@ Language=VBScript %&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;%</P>
<P style="TEXT-INDENT: 2em">　 Dim Temp, i, sPost, sWMLDeck</P>
<P style="TEXT-INDENT: 2em">　 'Converts the binary data to a string.</P>
<P style="TEXT-INDENT: 2em">　 For i = 1 To Request.TotalBytes</P>
<P style="TEXT-INDENT: 2em">　　　 Temp = Request.BinaryRead(1)</P>
<P style="TEXT-INDENT: 2em">　　　 sPost = sPost &amp; Chr(AscB(Temp))</P>
<P style="TEXT-INDENT: 2em">　 Next</P>
<P style="TEXT-INDENT: 2em">　 'Parses out the values of the POSTED variables (in this</P>
<P style="TEXT-INDENT: 2em">　 'example myvar1 and myvar2).</P>
<P style="TEXT-INDENT: 2em">　 Dim sVar1, sVar2</P>
<P style="TEXT-INDENT: 2em">　 sVar1 = getVar("myvar1", sPost)</P>
<P style="TEXT-INDENT: 2em">　 sVar2 = getVar("myvar2", sPost)</P>
<P style="TEXT-INDENT: 2em">　 'Writes the WML Deck displaying the POSTED Variables</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = "&lt;?xml version=""1.0""?&gt;" &amp; vbCrLf</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; "&lt;!DOCTYPE wml PUBLIC ""-//WAPFORUM//DTD WML 1.1//EN"" "</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; """http://www.wapforum.org/DTD/wml_1.1.xml""&gt;" &amp; vbCrLf</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; vbCrLf &amp; "&lt;wml&gt;" &amp; vbCrLf &amp; vbTab</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; "&lt;card id=""main"" title=""POST TEST""&gt;" &amp; vbCrLf</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; vbTab &amp; vbTab &amp; "&lt;p&gt;" &amp; vbCrLf</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; vbTab &amp; vbTab &amp; vbTab &amp; "myVar1: " &amp; sVar1 &amp; "&lt;br/&gt;" &amp; vbCrLf</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; vbTab &amp; vbTab &amp; vbTab &amp; "myVar2: " &amp; sVar2 &amp; vbCrLf</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; vbTab &amp; vbTab &amp; "&lt;/p&gt;" &amp; vbCrLf &amp; vbTab</P>
<P style="TEXT-INDENT: 2em">　 sWMLDeck = sWMLDeck &amp; "&lt;/card&gt;" &amp; vbCrLf &amp; "&gt;/wml&gt;"</P>
<P style="TEXT-INDENT: 2em">　 Response.ContentType = "text/vnd.wap.wml"</P>
<P style="TEXT-INDENT: 2em">　 Response.Write(sWMLDeck)</P>
<P style="TEXT-INDENT: 2em">　 'Quick function for picking out the values of the POSTed variables.</P>
<P style="TEXT-INDENT: 2em">　 'sKey is the variable name, sRaw is the POST string.</P>
<P style="TEXT-INDENT: 2em">　 Private Function getVar(sKey, sRaw)</P>
<P style="TEXT-INDENT: 2em">　 Dim sRetVal</P>
<P style="TEXT-INDENT: 2em">If InStr(sRaw, sKey) Then</P>
<P style="TEXT-INDENT: 2em">sRetVal = Mid(sRaw, InStr(sRaw, sKey) + Len(sKey) + 1)</P>
<P style="TEXT-INDENT: 2em">If InStr(sRetVal, "&amp;") Then</P>
<P style="TEXT-INDENT: 2em">sRetVal = Mid(sRetVal, 1, InStr(sRetVal, "&amp;") - 1)</P>
<P style="TEXT-INDENT: 2em">End If</P>
<P style="TEXT-INDENT: 2em">End If</P>
<P style="TEXT-INDENT: 2em">getVar = sRetVal</P>
<P style="TEXT-INDENT: 2em">　 End Function</P>
<P style="TEXT-INDENT: 2em">%&gt;</P>
<P style="TEXT-INDENT: 2em">38. 为什么META标签不工作？</P>
<P style="TEXT-INDENT: 2em">浏览器不支持默认的meta标签，例如：</P>
<P style="TEXT-INDENT: 2em">&lt;meta http-equiv="refresh" content="1;http://somewhere.com/"&gt;　</P>
<P style="TEXT-INDENT: 2em">虽然有少量网关支持非常有限的META标记。但是测试显示，如果使用了它们，网关就会出问题。例如某网关不支持普通的HTTP Cache控制，如果要实现Cache控制只好使用特殊的META标记。显然从其他</P>
<P style="TEXT-INDENT: 2em">网关来的用户就可能不支持这个META。注意：不要使用META tags。肯定有其他的方式来完成你的想法。</P>
<P style="TEXT-INDENT: 2em">最常使用的META是：</P>
<P style="TEXT-INDENT: 2em">&lt;meta http-equiv="refresh" content="1;http://somewhere.com/"&gt;　</P>
<P style="TEXT-INDENT: 2em">这个告诉浏览器重新装入指定的WML页面。WML中已经包含了一个&lt;ontimer&gt;。</P>
<P style="TEXT-INDENT: 2em">39. 为什么服务器接收不到用户发送的参数？</P>
<P style="TEXT-INDENT: 2em">用户输入的参数或者其他参数可以像在HTML中一样通过提交方式发送到服务器。在HTML中这个是&lt;FORM&gt;，POST或者GET。</P>
<P style="TEXT-INDENT: 2em">首先知道要知道POST和GET的区别。对于POST浏览器将生成一个数据包将变量名和它们的内容捆绑在一起，并发送到服务器。对于GET，它其实是一个URL请求，变量名和内容都包含在URL中。</P>
<P style="TEXT-INDENT: 2em">对于WAP环境，要求是非常严格的，必须要根据协议来操作。虽然以下的URL</P>
<P style="TEXT-INDENT: 2em">"/cgi-bin/somescript?username=john&amp;telephone=123-123-1234&amp;occupation=banana+bender"</P>
<P style="TEXT-INDENT: 2em">可以在HTML环境中工作，但是在WAP环境中无法工作。以上的部分编码将使得保护的变量内容被误解。特殊的空格（在 banana 和 bender ）被转成 “+”。 URL就根本没有空格。</P>
<P style="TEXT-INDENT: 2em">以上的URL在WAP中无法工作的主要原因是用来分割每个变量和变量内容的 &amp; （与号）没有转义。正确的格式应该是：</P>
<P style="TEXT-INDENT: 2em">"/cgi-bin/somescript?username=john&amp;amp;telephone=123-123-1234&amp;amp;occupation=banana+bender"</P>
<P style="TEXT-INDENT: 2em">在这里 &amp; 被名字实体所替换。为了解释更清楚些，请看下面的代码：</P>
<P style="TEXT-INDENT: 2em">&lt;card id="input" title="Gimme some data"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;p&gt;&lt;input type="text" name="username" format="M*m"/&gt;&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;p&gt;&lt;input type="text" name="occupation" format="M*m"/&gt;&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;anchor&gt;Send this</P>
<P style="TEXT-INDENT: 2em">&lt;go href="/cgi-bin/somescript?username=$(username)</P>
<P style="TEXT-INDENT: 2em">&amp;amp;occupation=$(occupation)"/&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">注意这不是真正的WAP协议，专门的字符应该转义，否则将得到不可预料的结果。</P>
<P style="TEXT-INDENT: 2em">40. 为什么在HTTP中的Referer看不见？</P>
<P style="TEXT-INDENT: 2em">当HTML浏览器从一个URL到另外一个URL的时候，它默认地会发送一个叫做 Referer的 HTTP头给服务器，告诉它在浏览这个页面之前的那个页面。这是一个非常有用的特点，在WAP环境中同样也有。</P>
<P style="TEXT-INDENT: 2em">但是既然这个信息来自用户代理（浏览器）、WAP设备，通常为了节约带宽和时间，就被省略了。</P>
<P style="TEXT-INDENT: 2em">为了使用 Referer ，应该使用新的URL标签例如： &lt;a&gt;，&lt;go&gt;等等，并且加入参数：sendreferer。</P>
<P style="TEXT-INDENT: 2em">&lt;go href="/somedir/somedeck.wml" sendreferer="true"/&gt;　</P>
<P style="TEXT-INDENT: 2em">这样就会把参考的URL发送到服务器。</P>
<P style="TEXT-INDENT: 2em">41. 如果没有找到URL，有可能重新将用户引导到另外一个WML卡片或者页面吗？</P>
<P style="TEXT-INDENT: 2em">是的。但这是服务器端的特点，与客户端没有关系。</P>
<P style="TEXT-INDENT: 2em">42. 为什么普通的HTTP 302重新导向不好使？</P>
<P style="TEXT-INDENT: 2em">这的确是一个事实。核心的问题是在服务端的脚本语言，而不是在服务端语言和服务器之间。</P>
<P style="TEXT-INDENT: 2em">所谓的302 Found HTTP反应是指服务器告诉用户代理，它所需要的资源在另外的地方可以找到。302反应可能包括一个人们可理解的信息，如果在这种情况下“ Content-type: ”就被设置了</P>
<P style="TEXT-INDENT: 2em">。笔者所测试过的服务器，即使没有内容也都加了“Content-type:”。默认的 “Content-type:” 是text/html。当然有些网关不喜欢这个类型。</P>
<P style="TEXT-INDENT: 2em">以下的例子已经经过测试，在Apache和Microsoft Internet Information Server都可以工作。如果使用其他的Web Server，或者其他的脚本语言，需要能转换这些简</P>
<P style="TEXT-INDENT: 2em">单的脚本。关键的工作是十分简单的，除非需要，不用告诉服务器整个HTTP头。大多数Web Server将自动完成这个HTTP头，使得用户代理可以理解。</P>
<P style="TEXT-INDENT: 2em">所有的代码例子可以在线测试。如果它们能够工作，用户将被重新引导到http://wap.colorline.no/clientinfo.html ，在那儿将产生一个WML页面来显示所有的HTTP头。</P>
<P style="TEXT-INDENT: 2em">PHP 代码测试可以在 http://wap.colorline.no/wap-faq/apps/302test.php3中找到。</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">　　　 header("Location: http://wap.colorline.no/clientinfo.html");</P>
<P style="TEXT-INDENT: 2em">　　　 header("Content-type: text/vnd.wap.wml";</P>
<P style="TEXT-INDENT: 2em">?&gt;　</P>
<P style="TEXT-INDENT: 2em">Perl测试代码可以在http://wap.colorline.no/cgi-bin/302test.pl中找到。　</P>
<P style="TEXT-INDENT: 2em">print "Location: http://wap.colorline.no/clientinfo.html\n";</P>
<P style="TEXT-INDENT: 2em">print "Content-type: text/vnd.wap.wml\n";　</P>
<P style="TEXT-INDENT: 2em">ASP测试代码可以在 http://www.colorline.no/302test.asp中找到。 (注意不同的URL):　</P>
<P style="TEXT-INDENT: 2em">&lt;%</P>
<P style="TEXT-INDENT: 2em">　　　 Response.Redirect = "http://wap.colorline.no/clientinfo.html";</P>
<P style="TEXT-INDENT: 2em">　　　 Response.ContentType = "text/vnd.wap.wml";</P>
<P style="TEXT-INDENT: 2em">　　　 Response.Flush</P>
<P style="TEXT-INDENT: 2em">　　　 Response.End</P>
<P style="TEXT-INDENT: 2em">%&gt;</P>
<P style="TEXT-INDENT: 2em">43. 可能在WML中实现ASP Session吗？</P>
<P style="TEXT-INDENT: 2em">不可能。可以把信息存储在临时变量中模拟Session。Session是保存在用户PC上的“cookies”中。目前的WAP设备不支持“cookies”。不过下一代的设备和WML可能支持“cookie</P>
<P style="TEXT-INDENT: 2em">s”。</P>
<P style="TEXT-INDENT: 2em">44. WAP支持Session吗？</P>
<P style="TEXT-INDENT: 2em">在HTML中，一个十分普遍的“处理”用户的方法就是为每个用户分配一个“session”。这个有时候是通过指定一个独一无二的cookies来实现的。然而WAP的资源非常有限，因此session的处理必</P>
<P style="TEXT-INDENT: 2em">须以不同的方式来处理。</P>
<P style="TEXT-INDENT: 2em">Alex Kriegel 提供了一个安装在 WAPlinks的Custom Session Object包。这个zip文件中包含了VB类的文件和编译过的Dll文件，还有相关的文档。这些可以在http</P>
<P style="TEXT-INDENT: 2em">://www.waplinks.com/customsessionobject.zip下载。</P>
<P style="TEXT-INDENT: 2em">另外一种方法是使用 PHPlib ，它是使用 PHP 编写的。</P>
<P style="TEXT-INDENT: 2em">Tarique (tarique@nagpur.dot.net.in) 提供了如何使用PHPlib来验证和处理每个WAP用户。有相关的文件和注释可以到下面地址下载：</P>
<P style="TEXT-INDENT: 2em">http://wap.colorline.no/wap-faq/archive/phplib_wml.zip</P>
<P style="TEXT-INDENT: 2em">45. 可以在WAP中使用Cookies吗？</P>
<P style="TEXT-INDENT: 2em">在理论上是可以的，但不是所有的WAP设备都支持。另一个方法来管理会话是使用隐藏的fields（包含会话标识，无论是POST或者GET方式）。</P>
<P style="TEXT-INDENT: 2em">46. WAP支持Cookies吗？</P>
<P style="TEXT-INDENT: 2em">普通的HTTP Cookies是作为WAP的扩展来实现的。无论你以前听到什么，Cookies的支持将越来越好。实际上Phone.com的 UP.Link网关已经支持这个功能有一段时间了。</P>
<P style="TEXT-INDENT: 2em">可以使用以下的脚本语言检测Cookie-support，：</P>
<P style="TEXT-INDENT: 2em">http://wap.colorline.no/wap-faq/apps/cookietest.php3</P>
<P style="TEXT-INDENT: 2em">脚本在http://wap.colorline.no/demos.html也可以得到。</P>
<P style="TEXT-INDENT: 2em">当第一次看见卡片的时候，记数器应该为0。所有的Cache都被关闭。卡片通过在URL中随机地加入变量来强制自己加载（笔者不推荐这种强制加载办法）。当点击增加计数连接，页面将重新加载，卡片就再次出现，并</P>
<P style="TEXT-INDENT: 2em">且记数器变成1。</P>
<P style="TEXT-INDENT: 2em">在脚本中，Cookie的名字被称做 TestCookie，它有很长的生命期，因此可以隔好几天再来查看记数器，它将是上一次的数值。这要求你能使用与上一次访问所使用的WAP环境一样，否则将把你的数值清0</P>
<P style="TEXT-INDENT: 2em">。</P>
<P style="TEXT-INDENT: 2em">如果记数装置一直都是0，那么cookie 就没有能传送到你的Web Server。这个脚本也能表示Cookie是否被传送。</P>
<P style="TEXT-INDENT: 2em">另外，这个脚本同样还显示HTTP头中的HTTP_VIA 和 HTTP_USER_AGENT 。这些能够得到所使用的网关和模式。一些网关使用HTTP_VIS标识自己，而另外一些使用HTTP_USER_</P>
<P style="TEXT-INDENT: 2em">AGENT，还有一些则让程序无法知道。</P>
<P style="TEXT-INDENT: 2em">下面是它的PHP代码。一个标准的 PHP setcookie() 函数只有在这种脚本语言中才会出现。函数只是简单地设置cookie，并且PHP变量 $HTTP_COOKIE_VARS 用来读取coo</P>
<P style="TEXT-INDENT: 2em">kie。</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">if(isset($HTTP_COOKIE_VARS["TestCookie"]))</P>
<P style="TEXT-INDENT: 2em">{// Check if TestCookie is set</P>
<P style="TEXT-INDENT: 2em">　　　　　 $cookieset = "set";</P>
<P style="TEXT-INDENT: 2em">// Read the Cookie</P>
<P style="TEXT-INDENT: 2em">　　　　　 $cookieid = $HTTP_COOKIE_VARS["TestCookie"];</P>
<P style="TEXT-INDENT: 2em">　　// and increase its value</P>
<P style="TEXT-INDENT: 2em">　　　　　 $cookieid++;</P>
<P style="TEXT-INDENT: 2em">　　　 　}</P>
<P style="TEXT-INDENT: 2em">　　　 else {</P>
<P style="TEXT-INDENT: 2em">　　// cookie was not set</P>
<P style="TEXT-INDENT: 2em">　　　　　 $cookieset = "not set";</P>
<P style="TEXT-INDENT: 2em">　　// start counter at zero</P>
<P style="TEXT-INDENT: 2em">　　　　　 $cookieid = 0;</P>
<P style="TEXT-INDENT: 2em">　　　 }</P>
<P style="TEXT-INDENT: 2em">　　// apply the Cookie to the HTTP header</P>
<P style="TEXT-INDENT: 2em">　setcookie("TestCookie",$cookieid);</P>
<P style="TEXT-INDENT: 2em">　　// set the content type for WML</P>
<P style="TEXT-INDENT: 2em">　　　 header("Content-type: text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">// disable ALL caching</P>
<P style="TEXT-INDENT: 2em">　　　 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");</P>
<P style="TEXT-INDENT: 2em">　　　 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");</P>
<P style="TEXT-INDENT: 2em">　　　 header("Cache-Control: no-cache, must-revalidate");　　　　　　　　　　</P>
<P style="TEXT-INDENT: 2em">　　　 header("Pragma: no-cache");　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;?xml version=\"1.0\"?&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　echo("&lt;!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"</P>
<P style="TEXT-INDENT: 2em">　\"http://www.wapforum.org/DTD/wml_1.1.xml\"&gt;\n\n");</P>
<P style="TEXT-INDENT: 2em">　echo("&lt;!-- This application attempts to test the capabilities of a WAP gateway to support 　　　　cookie</P>
<P style="TEXT-INDENT: 2em">s --&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;!-- App by Espen.Lyngaas@colorline.no (c) 2000 --&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　// Generate random value for reload forcing</P>
<P style="TEXT-INDENT: 2em">　　　 $random = mt_rand(100000,999999);</P>
<P style="TEXT-INDENT: 2em">　?&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;head&gt;</P>
<P style="TEXT-INDENT: 2em">// Even more cache disabling</P>
<P style="TEXT-INDENT: 2em">&lt;meta forua="true" http-equiv="Cache-Control" content="must-revalidate"/&gt;　</P>
<P style="TEXT-INDENT: 2em">　 &lt;/head&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;card id="init" title="CookieTest"&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　　 Cookie "TestCookie" was &lt;?echo($cookieset)?&gt;.</P>
<P style="TEXT-INDENT: 2em">　　 Value is currently "&lt;?echo($cookieid)?&gt;"</P>
<P style="TEXT-INDENT: 2em">　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;anchor&gt;</P>
<P style="TEXT-INDENT: 2em">Increase value</P>
<P style="TEXT-INDENT: 2em">&lt;go method="get" href="&lt;?echo($PHP_SELF)?&gt;?random=&lt;?echo($random)?&gt;"/&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;p&gt;Gateway:　</P>
<P style="TEXT-INDENT: 2em">　 &lt;?</P>
<P style="TEXT-INDENT: 2em">　　　 if(isset($HTTP_VIA))</P>
<P style="TEXT-INDENT: 2em">{ // Is there something in the HTTP_VIA variable?</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo($HTTP_VIA);</P>
<P style="TEXT-INDENT: 2em">　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　 else {</P>
<P style="TEXT-INDENT: 2em">　　　　　 if(isset($HTTP_USER_AGENT))</P>
<P style="TEXT-INDENT: 2em">{ // Is there something in the HTTP_USER_AGENT variable?</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo($HTTP_USER_AGENT);</P>
<P style="TEXT-INDENT: 2em">　　　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　　　 else {</P>
<P style="TEXT-INDENT: 2em">// Absolutely no identifier was found</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 echo("Unknown");</P>
<P style="TEXT-INDENT: 2em">　　　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　 }</P>
<P style="TEXT-INDENT: 2em">　 ?&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">　 &lt;/wml&gt;</P>
<P style="TEXT-INDENT: 2em">47. 如何使用WAP设备发送E-Mail？</P>
<P style="TEXT-INDENT: 2em">在HTML中有一个默认的E-Mail机制：“ mailto:” 。但在WML中不好使，因此E-Mails必须通过WML表单来解决。例如：</P>
<P style="TEXT-INDENT: 2em">&lt;wml&gt;</P>
<P style="TEXT-INDENT: 2em">　　　 　&lt;card id="edit" title="Email Editor"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;From: &lt;input type="text" name="from" format="*M"/&gt;&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;To: &lt;input type="text" name="to" format="*M"/&gt;&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;Subject: &lt;input type="text" name="subject" format="*M"/&gt;&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;Message body: &lt;input type="text" name="body" format="*M"/&gt;&lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;p&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　　 &lt;anchor&gt;Send this mail</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　 &lt;go method="post" href="http://some.host/mailhandler"?action=send/"&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　 &lt;postfield name="from" value="$(from)"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　 &lt;postfield name="to" value="$(to)"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　 &lt;postfield name="subject" value="$(subject)"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　　　 &lt;postfield name="body" value="$(body)"/&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　　　　 &lt;/go&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　　 &lt;/anchor&gt;</P>
<P style="TEXT-INDENT: 2em">　　　　　 &lt;/p&gt;</P>
<P style="TEXT-INDENT: 2em">　　 &lt;/card&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/wml&gt;　</P>
<P style="TEXT-INDENT: 2em">在代码中的http://some.host/mailhandler是一个CGI程序，它是服务端的脚本程序，将提交的表单转换成E-Mail格式并发送出去。</P>
<P style="TEXT-INDENT: 2em">如果想使用一个类似于发信的过程，就需要编辑变量名。另外发送的数据是有限的，长信息可能需要打断。</P>
<P style="TEXT-INDENT: 2em">为了演示它是如何工作的，下面的 PHP 脚本可以用来处理Mail。它将格式化WML页面，告诉用户是否发出信件。在真实的应用中，应该加入检测，例如：E-Mail的合法格式。</P>
<P style="TEXT-INDENT: 2em">&lt;?</P>
<P style="TEXT-INDENT: 2em">// Tell the client that this is a WML deck</P>
<P style="TEXT-INDENT: 2em">　　　 header("Content-type: text/vnd.wap.wml");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;?xml version=\"1.0\"?&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"</P>
<P style="TEXT-INDENT: 2em">\"http://www.wapforum.org/DTD/wml_1.1.xml\"&gt;\n");</P>
<P style="TEXT-INDENT: 2em">// The name of your mail server</P>
<P style="TEXT-INDENT: 2em">　　　 $mailer = "wap.colorline.no";</P>
<P style="TEXT-INDENT: 2em">// Format the from field</P>
<P style="TEXT-INDENT: 2em">　　　 $from = $from." (WAP user at ".$mailer.")";</P>
<P style="TEXT-INDENT: 2em">// Add the from field and some character handling to the extra headers</P>
<P style="TEXT-INDENT: 2em">　 $extraheaders = $from."\nContent-Type: text/plain;</P>
<P style="TEXT-INDENT: 2em">charset=iso-8859-1\nContent-Transfer-Encoding: 8bit";</P>
<P style="TEXT-INDENT: 2em">// Start sending out the WML deck</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;wml&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 if(mail($to,$subject,$body,$extraheaders))</P>
<P style="TEXT-INDENT: 2em">{// Use PHP's internal mail functionality</P>
<P style="TEXT-INDENT: 2em">// Mail was successfully sent</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo("&lt;card id=\"sent\" title=\"Mail sent\"&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo("&lt;p&gt;Mail was sent successfully&lt;/p&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo("&lt;/card&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　 else {</P>
<P style="TEXT-INDENT: 2em">// The mail could not be sent</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo("&lt;card id=\"notsent\" title=\"Mail failed\"&gt;\n");　</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo("&lt;p&gt;Unable to send mail&lt;/p&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　　　 echo("&lt;/card&gt;\n");</P>
<P style="TEXT-INDENT: 2em">　　　 }</P>
<P style="TEXT-INDENT: 2em">　　　 echo("&lt;/wml&gt;\n");</P>
<P style="TEXT-INDENT: 2em">?&gt;</P>
<P style="TEXT-INDENT: 2em">因为安全性的原因，以上的代码没有演示程序。</P>
<P style="TEXT-INDENT: 2em">48. 可以在模拟器上操作本地的页面，却没有办法访问Internet上的，有什么问题吗？</P>
<P style="TEXT-INDENT: 2em">大多数模拟器和工具都可以浏览Internet、Intranet和本机的页面。但是在访问一些大公司页面的时候，必须通过代理服务器来取得进入Internet的权限。如果必须通过这个代理服务器来取得HTM</P>
<P style="TEXT-INDENT: 2em">L页面，那么你的WAP模拟器也会取得权限来访问Internet。</P>
<P style="TEXT-INDENT: 2em">注意到有些模拟器不支持代理服务器，但是大多数是支持的。在模拟器里面设置这些是很简单的。用户所做的只需要将代理主机的名字、IP地址和端口号输入就可以了。如果没有找到，你可以在 systems/netw</P>
<P style="TEXT-INDENT: 2em">ork 管理器里面设置这些，也可以检查 Netscape/IE的设置。</P>
<P style="TEXT-INDENT: 2em">在某些情况下，代理服务器使用 userid 和 password 来取得进入Internet的权限。有些模拟器支持用户代理服务器，用户应该能告诉模拟器相关的代理配置。</P>
<P style="TEXT-INDENT: 2em">在极少的情况下，使用代理服务器（如Microsoft Proxy Server，）的用户会遇到更多的问题。这个代理服务器只接受一种验证方式（userid/password）。这种验证被称做 NTLM</P>
<P style="TEXT-INDENT: 2em">，并且是某种 MS 的验证方式。几乎很少有模拟器支持这种方式。因此最好是避免使用它，或者让管理员使用“Basic Authentication”方式以避免更多的麻烦。</P>
<P style="TEXT-INDENT: 2em">49. 什么是PUSHing，它是如何工作的？</P>
<P style="TEXT-INDENT: 2em">PUSH被加入到WAP 1.2，而且只在WAP 1.2中才存在。简单地来说，PUSH提供了另外一种从服务器向用户发送数据的方式。PULLing是从客户端请求信息，然后接收它；PUSH意味着服务器可以</P>
<P style="TEXT-INDENT: 2em">向用户发送数据，而不需要用户来请求。</P>
<P style="TEXT-INDENT: 2em">内容或者应用服务器无法向用户代理直接发送数据，必须使用一种叫做Push Proxy 的网关。PPG 是基于Internet的Push Initiator (内容或者应用服务器) 与移动用户之间的。在</P>
<P style="TEXT-INDENT: 2em">Internet一边，使用Push Access Protocol，在移动网络一边使用Push Over-the-Air Protocol。</P>
<P style="TEXT-INDENT: 2em">当前只有 WAP 1.2 开发平台支持 PUSH， 例如 Nokia Toolkit 2.0。 Nokia Toolkit 2.0 only 内部支持PUSHing，意味着用户可以从工具包的界面将消</P>
<P style="TEXT-INDENT: 2em">息推送到模拟器。如果想试着到一个外部的Push Proxy Gateway， 工具包就崩溃了。从readme文件中知道，PUSHing 还没有经过完整的测试。</P>
<P style="TEXT-INDENT: 2em">50. WAP模拟器说text/html不支持，但是用户的MIME设置是正确的，为什么？</P>
<P style="TEXT-INDENT: 2em">当使用服务端的脚本语言，例如ASP、PHP或者Perl，来生成WML输出，或者从HTTP服务器提供WML页面的时候。记住HTTP一般默认的显示是HTML，其MIME类型是text/html。</P>
<P style="TEXT-INDENT: 2em">如果HTTP服务器或者服务器脚本有错误，错误的信息将使用HTML显示，因此微型浏览器是不能显示错误信息的。</P>
<P style="TEXT-INDENT: 2em">一个开发工具／模拟器可以让用户看到从HTTP服务器过来的代码。例如，在Nokia SDK中，这个功能被称做View Source。通过看代码可以知道HTTP服务器到底发送了些什么内容。也可以使用普通</P>
<P style="TEXT-INDENT: 2em">的浏览器来查看任何HTML格式的错误信息。</P>
<P style="TEXT-INDENT: 2em">51. 在哪儿有Visio移动电话的模板库？</P>
<P style="TEXT-INDENT: 2em">目前唯一知道的就是它包含在 Nokia 7110 中。</P>
<P style="TEXT-INDENT: 2em">52. 有没有其他有用的WML内容服务列表？</P>
<P style="TEXT-INDENT: 2em">这里至少有一个。</P>
<P style="TEXT-INDENT: 2em">对于Unix用户， http://pwot.co.uk/wml/中有Thomas Neill （ponder@pwot.co.uk）提供的WML工具，包括WML二进制编译和反编译。</P>
<P style="TEXT-INDENT: 2em">Angus 和 Zygo WAP（angus@z-y-g-o.com）已经开发出了一个Perl工具包。它还在为管道式的WML编译器工作。</P>
<P style="TEXT-INDENT: 2em">53. XML到XSL的转换可以应用到WML和WAP吗？</P>
<P style="TEXT-INDENT: 2em">既然WML实际上是XML，并且XSL将WML转换成其他不同的XML文档，那么问题的答案是显然的：XSL也可以应用到WML。可以参考Luca Passani的文章《WebTechniques》。这个文</P>
<P style="TEXT-INDENT: 2em">章在网络上的地址是：</P>
<P style="TEXT-INDENT: 2em">http://www.webtechniques.com/archives/2000/03/passani/</P>
<P style="TEXT-INDENT: 2em">它推荐看一下叫做《在 Apache下Cocoon计划的实现》这篇文章。“Cocoon 是一个依赖于新的W3C技术（例如DOM，XML，和XSL）框架。Cocoon计划在于改变Wen信息创建，生成和提</P>
<P style="TEXT-INDENT: 2em">供的方式。文档内容、风格和逻辑经常因为个人或者工作组的不同而不同。 Cocoon目标在于将这三层分离，允许三层次之间进行独立的设计，创建和管理，减少相互之间的影响，增加工作的可复用性以及缩短上市的时间</P>
<P style="TEXT-INDENT: 2em">。Web内容的产生大多数是基于HTML的，但是HTML并不能将三者分离开来，混合着各种格式标签，程序逻辑等等。而Cocoon计划将要改变这种情况，允许内容，逻辑和风格相互分离。使用XML来保存，但是使</P>
<P style="TEXT-INDENT: 2em">用XSL来将它们混合。”</P>
<P style="TEXT-INDENT: 2em">基本上来说，Cocoon将解读HTTP头，判断使用的是什么浏览器，然后使用不同的风格来选择正确的页面，使用XSL进行混合。</P>
<P style="TEXT-INDENT: 2em">54. 想让用户只要简单地按下一个按钮就能够转跳到其他卡片而不是通过选择URL，这个可能吗？</P>
<P style="TEXT-INDENT: 2em">不，不可能。</P>
<P style="TEXT-INDENT: 2em">55. 如何避免一个行的中断以便可以在一行中输入多个链接？</P>
<P style="TEXT-INDENT: 2em">在Nokia 7110中，不可能做到这一点，每个链接都占据自己的一行。</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/275072020084132523586</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/275072020084132523586</guid>
    <pubDate>Tue, 13 May 2008 14:05:23 +0800</pubDate>
    <dcterms:modified>2008-05-13T14:05:23+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[宽带加速]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/2750720200848111640830</link>
    <description><![CDATA[<div>使用宽带上网速度自然比普通的拨号上网快了许多，可是WindowsXP系统会自动保留一部分带宽，咱觉得有些浪费，利用起来吧！单击"开始→运行"，在 "运行"对话框中输入"gpedit.msc"（该文件位于"C:\WINNT\SYSTEM32"文件夹中），单击"确定"按钮启动Windows XP组策略编辑器。在"本地计算机策略"中，逐级展开"计算机配置→管理模板→网络→QoS数据包调度程序"分支。双击右侧窗口中的"限制可保留带宽"项目，可以看到这里的"带宽限制"默认值为20%，我们只要将它修改为"已启用"，并将"带宽限制"值改为"0%"就可以让带宽利用率达到最高了&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本方法只可用于WindowsXP系统</div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/2750720200848111640830</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/2750720200848111640830</guid>
    <pubDate>Thu, 8 May 2008 11:16:40 +0800</pubDate>
    <dcterms:modified>2008-05-08T11:16:40+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[忘记了window xp登陆密码，如何破解]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/275072020084655932174</link>
    <description><![CDATA[<div>操作方法： <BR>1、重新启动计算机，在启动画面出现后马上按下F8键，选择“带命令行的安全模式”。 <BR>2、运行过程结束时，系统列出了系统超级用户“administrator”和本地其他用户的选择菜单，鼠标单击“administrator”，进入命令行模式。 <BR>3、键入命令：“ <BR>net user administator 123456 /add”，强制将“administator”用户的口令更改为“123456”。如果不行的话,只好添加一新用户（如：用户名为abcdef，口令为123456）的话，请键入“ <BR>net user abcdef 123456 /add”，添加后可用“net localgroup administrators abcdef /add”命令将用户提升为系统管理组“administrators”的用户，并使其具有超级权限。 <BR>4、重新启动计算机，选择正常模式下运行，就可以用更改后的口令“123456”登录“administator”用户了,或者用刚才你新建的用户. <BR>!!!!!!!注意命令中的空格!!!!!!! <BR></div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/275072020084655932174</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/275072020084655932174</guid>
    <pubDate>Tue, 6 May 2008 17:59:32 +0800</pubDate>
    <dcterms:modified>2008-05-06T17:59:32+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[如何实时查看mysql当前连接数? ]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/2750720200832494415337</link>
    <description><![CDATA[<div>1、查看当前所有连接的详细资料:<BR>./mysqladmin -uadmin -p -h10.140.1.1 processlist<BR><BR><BR>2、只查看当前连接数(Threads就是连接数.):<BR>./mysqladmin&nbsp; -uadmin -p -h10.140.1.1&nbsp;status</div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/2750720200832494415337</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/2750720200832494415337</guid>
    <pubDate>Thu, 24 Apr 2008 09:44:15 +0800</pubDate>
    <dcterms:modified>2008-04-24T09:44:15+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[解決MySQL封包過大而導致無法匯入資料的問題 ]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/27507202008316103134206</link>
    <description><![CDATA[<div><P>如果你有將檔案存入在 MySQL 資料庫的話，就很有可能遇到此問題，因為 MySQL 在執行 SQL 指令的時候是有大小限制的，單一個 SQL 指令的大小預設為 16MB，其實已經很大了，但是如果你的檔案超過這個大小的話，在執行 Insert 或 Update 指令的時候就有可能會發生 <FONT color=#ff0000>ERROR 2006 (HY000): MySQL server has gone away</FONT> 的錯誤訊息。 </P>
<P>這問題不只會發生在「開發時期」，也很可能發生在「資料轉移」的時，也就是你可能接了別人的案子，在做開發環境重建的時候可能會發現資料怎樣都匯入不了，但匯出資料卻是正常的！ </P>
<P>要解決這個問題有好幾種作法： </P>
<P>1. 執行匯入指令時特別指定 --max_allowed_packet 參數，讓連線的最大允許封包大小瞬間提高。 </P>
<BLOCKQUOTE>
<P><FONT face="courier new,courier">mysql -u root --max_allowed_packet=32M&nbsp;DbName &lt; data.sql</FONT> </P></BLOCKQUOTE>
<P>2. 修改 MySQL 的全域設定檔 my.ini </P>
<BLOCKQUOTE>
<P>若在 Linux 環境下，預設路徑在 /etc/my.cnf ，如果沒這個檔案的話你自己新增一個也行，或找出 my.cnf 在哪裡 ( 可以透過 locate 指令搜尋 )，設定的內容如下： </P>
<BLOCKQUOTE>
<P>[mysqld] </P>
<P># 設定最大可接受封包大小 (32MB)<BR>set-variable = max_allowed_packet=33554432 </P></BLOCKQUOTE>
<P>若在&nbsp;Windows 環境，預設是在 C:\my.ini ，也有可能在 c:\windows\my.ini 或在 MySQL 的安裝目錄下。 </P></BLOCKQUOTE></div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/27507202008316103134206</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/27507202008316103134206</guid>
    <pubDate>Wed, 16 Apr 2008 10:31:34 +0800</pubDate>
    <dcterms:modified>2008-04-16T10:31:34+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[新QQ变态100个签名]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/27507202008362731792</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 001◎老鼠一发威，大家都是病猫。</P>
<P style="TEXT-INDENT: 2em">　　002◎和一MM争论鲸鱼是不是鱼，最后我说“曰本人也带个人字”，她这才同意鲸鱼不是鱼。</P>
<P style="TEXT-INDENT: 2em">　　003◎男人膝下有黄金，我把整个腿都切下来了，连块铜也没找着！</P>
<P style="TEXT-INDENT: 2em">　　004◎春天我把玉米埋在土里，到了秋天我就会收获很多玉米。春天我把老婆埋在土里，到了秋天我就会…被枪毙！</P>
<P style="TEXT-INDENT: 2em">　　005◎如果你看到面前的阴影，别怕，那是因为你的背后有阳光！</P>
<P style="TEXT-INDENT: 2em">　　006◎踏遍青楼人未老，请用汇仁肾宝。</P>
<P style="TEXT-INDENT: 2em">　　007◎听君一席话，省我十本书！</P>
<P style="TEXT-INDENT: 2em">　　008◎0岁出场亮相，10岁天天向上。20岁远大理想，30岁发奋图强。40岁基本定向，50岁处处吃香。60岁打打麻将，70岁处处闲逛。80岁拉拉家常，90岁挂在墙上！</P>
<P style="TEXT-INDENT: 2em">　　009◎脱了衣服我是禽兽，穿上衣服我是衣冠禽兽！</P>
<P style="TEXT-INDENT: 2em">　　010◎师太，你就从了老衲吧！…很久很久以后…师太，你就饶了老衲吧！</P>
<P style="TEXT-INDENT: 2em">　　011◎“亲爱的，我…我怀孕了…三个月了，不过你放心，不是你的，不用你负责……”</P>
<P style="TEXT-INDENT: 2em">　　012◎我们产生一点小分歧：她希望我把粪土变黄金，我希望她视黄金如粪土。</P>
<P style="TEXT-INDENT: 2em">　　013◎读10年语文，不如聊半年QQ。</P>
<P style="TEXT-INDENT: 2em">　　014◎早晨懒床，遂从口袋里掏出6枚硬币：如果抛出去六个都是正面，我就去上课！思躇良久，还是算了，别冒这个险了……</P>
<P style="TEXT-INDENT: 2em">　　015◎我花8万买了个西周陶罐，昨儿到《鉴宝》栏目进行鉴定，专家严肃地说：“这哪是西周的？这是上周的！”</P>
<P style="TEXT-INDENT: 2em">　　016◎我能容忍身材是假的，脸是假的，胸是假的，臀是假的！！！但就是不容忍钱是假的！！！！</P>
<P style="TEXT-INDENT: 2em">　　017◎士为知己者装死，女为悦己者整容。</P>
<P style="TEXT-INDENT: 2em">　　018◎长大了要嫁给唐僧，能玩就玩，不能玩就把他吃掉。</P>
<P style="TEXT-INDENT: 2em">　　019◎一山不能容二虎，除非一公和一母。</P>
<P style="TEXT-INDENT: 2em">　　020◎千万别等到人人都说你丑时才发现自己真的丑。</P>
<P style="TEXT-INDENT: 2em">　　021◎如果朋友可以出卖，每个值五块的话，我也能发笔小财了。</P>
<P style="TEXT-INDENT: 2em">　　022◎征婚启事：要求如下，A活的，B女的。</P>
<P style="TEXT-INDENT: 2em">　　023◎给点阳光我就腐烂。</P>
<P style="TEXT-INDENT: 2em">　　024◎要适当吃一点，才有劲减肥啊。</P>
<P style="TEXT-INDENT: 2em">　　025◎摇啊摇，摇到奈何桥。</P>
<P style="TEXT-INDENT: 2em">　　026◎命运负责洗牌，但是玩牌的是我们自己！</P>
<P style="TEXT-INDENT: 2em">　　027◎问：你喜欢我哪一点？答：我喜欢你离我远一点！</P>
<P style="TEXT-INDENT: 2em">　　028◎你快回来，我一人忽悠不来！</P>
<P style="TEXT-INDENT: 2em">　　029◎生活就像宋祖德的嘴，你永远都不知道下一个倒霉的会是谁~~~</P>
<P style="TEXT-INDENT: 2em">　　030◎跌倒了，爬起来再哭~~~</P>
<P style="TEXT-INDENT: 2em">　　031◎世界上难以自拔的，除了牙齿，还有爱情。</P>
<P style="TEXT-INDENT: 2em">　　032◎一恐龙路过西安交大时上了趟厕所，出来后她呜咽道：“555，这辈子终于不愁嫁不出去了……”</P>
<P style="TEXT-INDENT: 2em">　　033◎生，容易。活，容易。生活，不容易。</P>
<P style="TEXT-INDENT: 2em">　　034◎吾表兄，年四十余。始从文，连考三年而不中。遂习武，练武场上发一矢，中鼓吏，逐之出。改学医，自撰一良方，服之，卒。</P>
<P style="TEXT-INDENT: 2em">　　035◎问君能有几多愁，恰似一群太监上青楼……</P>
<P style="TEXT-INDENT: 2em">　　036◎吾生也有涯，而吃也无涯~~~</P>
<P style="TEXT-INDENT: 2em">　　037◎想污染一个地方有两种方法：垃圾，或是钞票！</P>
<P style="TEXT-INDENT: 2em">　　038◎年轻的时候，我们常常冲着镜子做鬼脸；年老的时候，镜子算是扯平了。</P>
<P style="TEXT-INDENT: 2em">　　039◎你瞎了眼啊？这么大的盾牌你看不见，偏偏要把石头朝我脑袋上扔！</P>
<P style="TEXT-INDENT: 2em">　　040◎出问题先从自己身上找原因，别一便秘就怪地球没引力。</P>
<P style="TEXT-INDENT: 2em">　　041◎拍脑袋决策，拍胸脯保证，拍屁股走人。</P>
<P style="TEXT-INDENT: 2em">　　042◎我们走得太快，灵魂都跟不上了……</P>
<P style="TEXT-INDENT: 2em">　　043◎不要和地球人一般见识~~~</P>
<P style="TEXT-INDENT: 2em">　　044◎女孩从处女到女人只要一次并成功，男孩从处男变男人需要反复的磨练！</P>
<P style="TEXT-INDENT: 2em">　　045◎出来混，老婆迟早是要换的！</P>
<P style="TEXT-INDENT: 2em">　　046◎小时候我以为自己长大后可以拯救整个世界，等长大后才发现整个世界都拯救不了我……</P>
<P style="TEXT-INDENT: 2em">　　047◎有钱的都是大爷！但是欠钱不还的更是！</P>
<P style="TEXT-INDENT: 2em">　　048◎我就算是一只癞蛤蟆，我也决不娶母癞蛤蟆。</P>
<P style="TEXT-INDENT: 2em">　　049◎生前何必久睡，死后自会长眠……</P>
<P style="TEXT-INDENT: 2em">　　050◎不想当厨子的裁缝，不是好司机。</P>
<P style="TEXT-INDENT: 2em">　　051◎时间是最好的老师，但遗憾的是——最后他把所有的学生都弄死了。</P>
<P style="TEXT-INDENT: 2em">　　052◎去西安出差的路上，一位大连老兄一阵狂吹大连多好多好，然后说大连建市一百周年的时候举行了很隆重的庆祝活动云云，然后问了旁边一人：“西安建市一百周年有什么庆祝活动没有？”旁边几位西安的哥们一愣，过了一会儿，逼出一句话来：“我记得西安建市600年的时候搞了一个‘烽火戏诸侯’吧……”</P>
<P style="TEXT-INDENT: 2em">　　053◎钻石恒久远，一颗就破产！</P>
<P style="TEXT-INDENT: 2em">　　054◎和谐校园里，骑自行车的也许是位博导，而开奔驰的则可能是个后勤……</P>
<P style="TEXT-INDENT: 2em">　　055◎是金子，总会花光的；是镜子，总会反光的……</P>
<P style="TEXT-INDENT: 2em">　　056◎我女友不当尼姑的原因是她四级没过，庵里不收。</P>
<P style="TEXT-INDENT: 2em">　　057◎明星脱一点就能更出名，我脱的光光的却被抓起来了！</P>
<P style="TEXT-INDENT: 2em">　　058◎看一漂亮MM,苦无搭讪办法，路旁一砖头，拣起，上前，“同学，这是你掉的吧？”</P>
<P style="TEXT-INDENT: 2em">　　059◎小时候的梦想并不是要当什么科学家，幻想自己是地主家的少爷，家有良田千顷，终日不学无术，没事领着一群狗奴才上街去调戏一下良家少女……</P>
<P style="TEXT-INDENT: 2em">　　060◎别和我谈理想，戒了！</P>
<P style="TEXT-INDENT: 2em">　　061◎玫瑰你的，巧克力你的，钻石你的。你，我的！</P>
<P style="TEXT-INDENT: 2em">　　062◎所谓惊喜就是你苦苦等候的兔子来了，后面跟着狼！</P>
<P style="TEXT-INDENT: 2em">　　063◎什么是幸褔？幸福就是猫吃鱼狗吃肉，奥特曼打小怪兽！</P>
<P style="TEXT-INDENT: 2em">　　064◎俩农夫吹牛：“俺们农场的鸡，吃的都是茶叶，下的全是茶叶蛋”“有嘛啊，咱农场给鸡吃钱包，让它下荷包蛋。”</P>
<P style="TEXT-INDENT: 2em">　　065◎蟑螂都不怕蟑螂药了，我们却连维生素都搞不定！</P>
<P style="TEXT-INDENT: 2em">　　066◎长个包子样就别怨狗跟着！</P>
<P style="TEXT-INDENT: 2em">　　067◎男人偷腥时的智商仅次于爱因斯坦！</P>
<P style="TEXT-INDENT: 2em">　　068◎为中华而努力读书！一包中华好多钱啊……</P>
<P style="TEXT-INDENT: 2em">　　069◎如果你不能给你的女人穿上嫁衣，那么千万别停下你解开她衣扣的手！</P>
<P style="TEXT-INDENT: 2em">　　070◎别以为穿着脏衣服就可以做污点证人；别以为穿着木制拖鞋就可以做木屐证人……</P>
<P style="TEXT-INDENT: 2em">　　071◎事业是国家的，荣誉是单位的，成绩是领导的，工资是老婆的，财产是孩子的，错误是自己的。</P>
<P style="TEXT-INDENT: 2em">　　072◎凤凰重生就是涅盘，野鸡重生就是尸变。</P>
<P style="TEXT-INDENT: 2em">　　073◎如果有一天我变成流氓，请告诉别人，我纯真过……</P>
<P style="TEXT-INDENT: 2em">　　074◎老子不但有车，还是自行的……</P>
<P style="TEXT-INDENT: 2em">　　075◎女人拥有无数个QQ号只为了调戏一个男人，男人常用一个QQ号上面加满各种各样的女人……</P>
<P style="TEXT-INDENT: 2em">　　076◎偶然看见书上所谓的当代女子择偶标准：“有车有房，父母双亡。”郁闷。遂写下幻想中的选妻标准：“家中财产过亿，美貌天下第一，贤惠温柔性感，岳父癌症晚期……”</P>
<P style="TEXT-INDENT: 2em">　　077◎大部分人一辈子只做三件事：自欺、欺人、被人欺。</P>
<P style="TEXT-INDENT: 2em">　　078◎睡眠是一门艺术——谁也无法阻挡我追求艺术的脚步！</P>
<P style="TEXT-INDENT: 2em">　　079◎为了避免家庭暴力，于是我决定不结婚！</P>
<P style="TEXT-INDENT: 2em">　　080◎你可以像猪一样的生活，但你永远都不能像猪那样快乐！</P>
<P style="TEXT-INDENT: 2em">　　081◎迅雷不及掩耳盗铃，以不变应万变不离其宗，成事不足挂齿，此物最相思风雨中，一屋不扫何以扫天下无敌，东边日出西边雨一直下，举头望明月几时有，呆若木鸡毛当令箭，杀鸡焉用牛刀小试，锋芒毕露春光，围魏救赵宝奎，Very good bye，八格牙鲁冰花，一泻千里共婵娟……</P>
<P style="TEXT-INDENT: 2em">　　082◎某女的一篇博客日记：某月某日，大醉而归，伸手一摸——手机和贞操都在，睡觉！</P>
<P style="TEXT-INDENT: 2em">　　083◎又美丽、又纯洁、又温柔、又性感、又可爱的处女，就像鬼魂一样，男人们都在谈论它，但从来没有人亲眼见过……</P>
<P style="TEXT-INDENT: 2em">　　084◎记得小学老师骂我：“我一巴掌把你踢出去！”当时我想笑却不敢笑。现在，是敢笑却不会笑了……</P>
<P style="TEXT-INDENT: 2em">　　085◎如果幸福是浮云，如果痛苦似星辰。那我的生活真是万里无云，漫天繁星……</P>
<P style="TEXT-INDENT: 2em">　　086◎避孕的效果：不成功，便成“人”。</P>
<P style="TEXT-INDENT: 2em">　　087◎孤单是一个人的狂欢，狂欢是一群人的孤单。</P>
<P style="TEXT-INDENT: 2em">　　088◎这世上最累的事情，莫过于眼睁睁看着自己的心碎了，还得自己动手把它粘起来。</P>
<P style="TEXT-INDENT: 2em">　　089◎人生的悲惨在于：辛辛苦苦的作了一晚上内容香艳的美梦，第二天早上醒来居然全都记不起来了！</P>
<P style="TEXT-INDENT: 2em">　　090◎父亲问我人生有什么追求？我回答金钱和美女，父亲凶狠的打了我的脸；我回答事业与爱情，父亲赞赏的摸了我的头。</P>
<P style="TEXT-INDENT: 2em">　　091◎男人都好色，色心稍强一点叫色狼，再强一点叫色鬼，更加强就叫色魔，尤其强那就成了变态色魔，好色到了极致，被称作人体美学艺术家。</P>
<P style="TEXT-INDENT: 2em">　　092◎记得刚毕业不久的一天，女友给我发了一条短信：“我们还是分手吧！”我还没来得及伤心呢，女友又发来一条：“对不起，发错了。”这下可以彻底伤心了……</P>
<P style="TEXT-INDENT: 2em">　　093◎此地禁止大小便，违者没收工具。</P>
<P style="TEXT-INDENT: 2em">　　094◎在街上看美女，目光高一点就是欣赏，目光低一点就是流氓。</P>
<P style="TEXT-INDENT: 2em">　　095◎孩儿他娘，咱这辈子还有很多事要做呢，别耽误功夫和我玩捉迷藏了，赶紧蹦出来吧~~~</P>
<P style="TEXT-INDENT: 2em">　　096◎女人一生喜欢两朵花：一是有钱花，二是尽量花！</P>
<P style="TEXT-INDENT: 2em">　　097◎一炮走红——是形容女艺人的……</P>
<P style="TEXT-INDENT: 2em">　　098◎这个世界不公平就在于：上帝说：“我要光！”于是有了白天。美女说：“我要钻戒！”于是她有了钻戒。富豪说：“我要女人！”于是他有了女人。我说：“我要洗澡！”居然停水了！</P>
<P style="TEXT-INDENT: 2em">　　099◎真不明白，女孩买很多很多漂亮衣服穿，就是为了吸引男孩的目光，但男孩想看的，却是不穿衣服的女孩。</P>
<P style="TEXT-INDENT: 2em">　　100◎偶尔幽生活一默你会觉得很爽，但生活幽你一默就惨了……</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/27507202008362731792</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/27507202008362731792</guid>
    <pubDate>Sun, 6 Apr 2008 02:07:31 +0800</pubDate>
    <dcterms:modified>2008-04-06T02:07:31+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[搞笑]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/27507202008296560241</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">1983年12月12日，出生于一个普通的工人家庭，1-5岁不知道自己是谁，干了什么，6岁被爸爸妈妈强行扭送厂办小学1年级2班，在“我去上学校，天天不迟到，小鸟送，早早早，你为什么背上小书包”的儿歌中开始了读书生涯。。。。 </P>
<P style="TEXT-INDENT: 2em">　　小学一年级： </P>
<P style="TEXT-INDENT: 2em">　　在女同学面前脱裤子，女同学说我小流氓 </P>
<P style="TEXT-INDENT: 2em">　　老师语录：“流氓不可怕，就怕流氓没文化！所以你要好好学习，天天向上，争做“有文化，有知识，有学问，有才气”的四有流氓！” </P>
<P style="TEXT-INDENT: 2em">　　小学二年级： </P>
<P style="TEXT-INDENT: 2em">　　拍女同学的头！ </P>
<P style="TEXT-INDENT: 2em">　　老师语录：“不打她，不骂她，要用感情折磨她！才是调戏女生的至高境界，你要努力提高自己的调戏品位了” </P>
<P style="TEXT-INDENT: 2em">　　小学三年级： </P>
<P style="TEXT-INDENT: 2em">　　摸女同学的脸，结果被女同学把我的脸抓花！ </P>
<P style="TEXT-INDENT: 2em">　　老师语录：“爱情诚可贵，生命价更高，留的青山在，不怕没柴烧！切记，珍惜生命，远离美女！” </P>
<P style="TEXT-INDENT: 2em">　　小学四年级： </P>
<P style="TEXT-INDENT: 2em">　　拉女同学的手，被拒绝，学习成绩直线下降！ </P>
<P style="TEXT-INDENT: 2em">　　老师语录：“中华儿女千千万，一个不行接着换，你没有采到的只是春天的一朵花，整个春天还是属于你的，不要灰心，要屡战屡败，屡败屡战！” </P>
<P style="TEXT-INDENT: 2em">　　小学5年级 </P>
<P style="TEXT-INDENT: 2em">　　调戏女同学不成，反被调戏！ </P>
<P style="TEXT-INDENT: 2em">　　老师语录：“男生不流氓，发育不正常，你还被女生调戏了，表示你比一般男生有前途。 </P>
<P style="TEXT-INDENT: 2em">　　小学6年级，以厂小学本年级第38名的成绩被送到县城南街中学（毕业的一共40人）开始了中学生涯。 </P>
<P style="TEXT-INDENT: 2em">　　初中1年级，认识了金庸，古龙等前辈高人，并且每天把自己想象成书中的男主角，和书中MM有着纯洁的男女关系。 </P>
<P style="TEXT-INDENT: 2em">　　初中2年级，回到现实中来，对班上的美女（已经有了审美能力）行注目礼，但是脑子中原始的，害羞的，罪恶的念头已经发芽。 </P>
<P style="TEXT-INDENT: 2em">　　初中3年级，真正体会到了伟人爷爷那句“好好学习，天天想上”的真正含义（八字真言，毁人不卷）。。。。还好我及时收住了心，我英俊的面庞才得以保存。发疯学习，考上县第3高中（本县就3个高中，前2个是重点。。。。。） </P>
<P style="TEXT-INDENT: 2em">　　高中1年级，生平第1次写情书给班上心仪很久的女生，并自我感觉她对我也有那么点意思。。可惜正当我惶恐，甜蜜的如一只小鹿乱跳时，班主任把我叫到办公室，从抽屉里拿出那封情书。。。。。。。 </P>
<P style="TEXT-INDENT: 2em">　　高中2年级，选择了女生和男生比例是4：1的文科班，但是美女们都不理我。。。。 </P>
<P style="TEXT-INDENT: 2em">　　高中3年级，听隔壁哥哥口沫横飞的给我讲大学生活。于第2天拿起书本，又开始发疯的复习，发誓要考上大学，要“奋发图强，认真学习，为.建设添砖加瓦”（鬼才这样想呢，大学可以自由恋爱，非法同居。。。。。等等云云。。。。 </P>
<P style="TEXT-INDENT: 2em">　　不可否认我是个天才，虽然我没被第1和第2志愿录取（第1我填的清华，第2北大，差了3位的分数），但我接到了XX农业大学的录取通知书。于是背上行李，跳上火车，来到梦想中的大学校园。开始了大学生涯我要做一个成功的男人，因为成功的男人白天瞎JB忙，晚上JB瞎忙；失败的男人白天没啥鸟事，晚上鸟没啥事。所以，我要做成功的男人。 </P>
<P style="TEXT-INDENT: 2em">　　大1站在校美术展览一幅裸体画面前，不停的告戒自己：“这是艺术，我这是在审美。”但是身体某个部位的突出表现还是出卖了我。 </P>
<P style="TEXT-INDENT: 2em">　　大2我喜欢的人名花有主，喜欢我的人惨不忍睹。。于是我：“通宵达旦网上泡，一进课堂就睡觉，一个电话打回家，什么不说要钱花”。 </P>
<P style="TEXT-INDENT: 2em">　　大3在全寝室就剩我一个和尚的情况下，终于有了一个正式的女朋友，甜蜜的恋爱中，她希望我裸露心灵，而我希望她裸露身体。。。。。。。。。。（男人为性而爱，女人为爱而性，这句话一点没错） </P>
<P style="TEXT-INDENT: 2em">　　大4我奶奶现在还在农村。自打我考上大学以后，每次回去奶奶总对我说:“家里那几块地，还有这个院子，这些鸡啊猪啊的，都是给你留着的”。当时我笑奶奶老糊涂。可是看到今年的就业形势和满大街的研究生，博士生，我才终于体会到了奶奶的高瞻远瞩和良苦用心…… </P>
<P style="TEXT-INDENT: 2em">　　拿着毕业证，简历，从差点没把我挤暴头的招聘中心一无所获的出来，坐上一辆人力3轮回去，3轮车夫问我：“你是XX农业大学今年毕业生？”我说是“太巧了，我是XX农业大学88届的毕业生，又指着路边一个搽皮鞋的老头：“那个师兄更早，77届的”。我差点没从3轮车上栽下来。 </P>
<P style="TEXT-INDENT: 2em">　　回到家，看着下岗的爸爸正在街上修自行车，同样下岗的妈妈在卖水果，爸爸抽着劣制的香烟，双手满是油污，妈妈在风吹日晒下皱纹早已经爬上了她的脸，头发也白了很多。我23年来第1次认真的，仔细的看着父母，突然有了想哭的冲动。“这些年来，他们就是这样生活，中毒骗人来供我读那个该死的大学的。而我……。（人们总是伤痕累累才懂的后悔，但这时候游戏规则已经改变，人生就是如此）。我把那4年青春换来红色小本子丢在角落，挽起袖子帮爸爸推车，从现在起，我开始还债。 </P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[自由]]></author>
	    <comments>http://yhcygc.blog.163.com/blog/static/27507202008296560241</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yhcygc.blog.163.com/blog/static/27507202008296560241</guid>
    <pubDate>Sun, 9 Mar 2008 18:56:00 +0800</pubDate>
    <dcterms:modified>2008-03-09T18:56:00+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[实用的下拉联动菜单效果,包含国家/城市/地区]]></title>	
    <link>http://yhcygc.blog.163.com/blog/static/275072020081280831737</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">&lt;html&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;head&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;title&gt;下拉框测试&lt;/title&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/head&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;script src="/blog/change_region.js"&gt;&lt;/script&gt;&nbsp;&lt;!-- js开始调用,改成你自己另存的js名--&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;form name="form1" method="post"&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;body&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&lt;table&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;td&gt;国家&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;td width="140" class="SELECT"&gt;&lt;select name="country" id="country"&nbsp; onChange="change_region( </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;window.document.form1.state ,&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;window.document.form1.country.options[selectedIndex].value );"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;option value="Not set"&gt;-- 所有国家 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.country, country, "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;td&gt;州/省&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;td class="SELECT"&gt; &lt;div align="left"&gt; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select name="state" onChange="change_region( </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;window.document.form1.city ,&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;window.document.form1.state.options[selectedIndex].value );"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set"&gt;-- 所有州/省--&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;城市&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="city" id="city" &gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;option value="Not set"&gt;-- 城市 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;年龄&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;select name='age' size='1'&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="0"&gt;-- 都可以 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.age, age, "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;&nbsp;&nbsp;&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;身高&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name='height' size='1'&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;option value="0"&gt;-- 都可以 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.height, height, "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;体重&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;select name='weight' size='1'&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;option value="0"&gt;-- 都可以 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.weight, weight, "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;学位&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &lt;select name="degree" id="degree"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set" selected&gt;-- 都可以 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.degree , degree , "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;职业&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="occupation" id="occupation"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set" selected&gt;-- 职业 --&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.occupation, occupation, "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;交友目的&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select id=purpose name=purpose&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option&nbsp; value="Not set" selected&gt;都可以&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; &lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.purpose, purpose, "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;生肖&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="sheng_xiao" id="sheng_xiao"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set"&gt;不详&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.sheng_xiao , sheng_xiao , "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;星座&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="astrology" id="astrology"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set" selected&gt;不详&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.astrology , astrology , "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;血型&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="blood_type" id="blood_type"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set" selected&gt;不详&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.blood_type , blood_type , "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;相貌&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="appearance" id="appearance"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set" selected&gt;以后再告诉你&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.appearance , appearance , "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;tr&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;年收入&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;select name="income" id="income"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value="Not set" selected&gt;以后再告诉你&lt;/option&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_select_options( window.document.form1.income , income , "" ) ;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;/td&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt; &nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&lt;/table&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/body&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/form&gt;</P>
<P style="TEXT-INDENT: 2em">&lt;/html&gt;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&lt;!--js代码--&gt;</P>
<P style="TEXT-INDENT: 2em">//*********************************change_region.js</P>
<P style="TEXT-INDENT: 2em">var country = new Array(</P>
<P style="TEXT-INDENT: 2em">"USA","美国",</P>
<P style="TEXT-INDENT: 2em">"China","中国大陆",</P>
<P style="TEXT-INDENT: 2em">"Canada","加拿大",</P>
<P style="TEXT-INDENT: 2em">"Europe","欧洲",</P>
<P style="TEXT-INDENT: 2em">"Asia","东南亚",</P>
<P style="TEXT-INDENT: 2em">"MetroChina","港澳台",</P>
<P style="TEXT-INDENT: 2em">"Australia","澳大利亚",</P>
<P style="TEXT-INDENT: 2em">"NewZealand","新西兰",</P>
<P style="TEXT-INDENT: 2em">"Japan","日本",</P>
<P style="TEXT-INDENT: 2em">"Korea","韩国",</P>
<P style="TEXT-INDENT: 2em">"Others","其它地区"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var USA = new Array(</P>
<P style="TEXT-INDENT: 2em">"Alabama" , "阿拉巴马",</P>
<P style="TEXT-INDENT: 2em">"Alaska" , "阿拉斯加",</P>
<P style="TEXT-INDENT: 2em">"Arizona" , "亚利桑那",</P>
<P style="TEXT-INDENT: 2em">"Arkansas" , "阿肯色",</P>
<P style="TEXT-INDENT: 2em">"California" , "加州",</P>
<P style="TEXT-INDENT: 2em">"Colorado" , "科罗拉多",</P>
<P style="TEXT-INDENT: 2em">"Connecticut" , "康州",</P>
<P style="TEXT-INDENT: 2em">"Delaware" , "特拉华",</P>
<P style="TEXT-INDENT: 2em">"Washington DC" , "华盛顿DC",</P>
<P style="TEXT-INDENT: 2em">"Florida" , "佛罗里达",</P>
<P style="TEXT-INDENT: 2em">"Georgia" , "佐治亚",</P>
<P style="TEXT-INDENT: 2em">"Hawaii" , "夏威夷",</P>
<P style="TEXT-INDENT: 2em">"Idaho" , "爱达荷",</P>
<P style="TEXT-INDENT: 2em">"Illinois" , "伊利诺伊",</P>
<P style="TEXT-INDENT: 2em">"Indiana" , "印第安纳",</P>
<P style="TEXT-INDENT: 2em">"Iowa" , "艾奥瓦",</P>
<P style="TEXT-INDENT: 2em">"Kansas" , "堪萨斯",</P>
<P style="TEXT-INDENT: 2em">"Kentucky" , "肯塔基",</P>
<P style="TEXT-INDENT: 2em">"Louisiana" , "路易斯安那",</P>
<P style="TEXT-INDENT: 2em">"Maine" , "缅因",</P>
<P style="TEXT-INDENT: 2em">"Maryland" , "马里兰",</P>
<P style="TEXT-INDENT: 2em">"Massachusetts" , "麻省",</P>
<P style="TEXT-INDENT: 2em">"Michigan" , "密歇根",</P>
<P style="TEXT-INDENT: 2em">"Minnesota" , "明尼苏达",</P>
<P style="TEXT-INDENT: 2em">"Mississippi" , "密西西比",</P>
<P style="TEXT-INDENT: 2em">"Missouri" , "密苏里",</P>
<P style="TEXT-INDENT: 2em">"Montana" , "蒙大拿",</P>
<P style="TEXT-INDENT: 2em">"Nebraska" , "内布拉斯加",</P>
<P style="TEXT-INDENT: 2em">"Nevada" , "内华达",</P>
<P style="TEXT-INDENT: 2em">"New Hampshire" , "新罕布什尔",</P>
<P style="TEXT-INDENT: 2em">"New Jersey" , "新泽西",</P>
<P style="TEXT-INDENT: 2em">"New Mexico" , "新墨西哥",</P>
<P style="TEXT-INDENT: 2em">"New York" , "纽约州",</P>
<P style="TEXT-INDENT: 2em">"North Carolina" , "北卡",</P>
<P style="TEXT-INDENT: 2em">"North Dakota" , "北达科他",</P>
<P style="TEXT-INDENT: 2em">"Ohio" , "俄亥俄",</P>
<P style="TEXT-INDENT: 2em">"Oklahoma" , "俄克拉何马",</P>
<P style="TEXT-INDENT: 2em">"Oregon" , "俄勒冈",</P>
<P style="TEXT-INDENT: 2em">"Pennsylvania" , "宾州",</P>
<P style="TEXT-INDENT: 2em">"Rhode Island" , "罗得岛",</P>
<P style="TEXT-INDENT: 2em">"South Carolina" , "南卡",</P>
<P style="TEXT-INDENT: 2em">"South Dakota" , "南达科他",</P>
<P style="TEXT-INDENT: 2em">"Tennessee" , "田纳西",</P>
<P style="TEXT-INDENT: 2em">"Texas" , "德州",</P>
<P style="TEXT-INDENT: 2em">"Utah" , "犹他",</P>
<P style="TEXT-INDENT: 2em">"Vermont" , "佛蒙特",</P>
<P style="TEXT-INDENT: 2em">"Virginia" , "弗吉尼亚",</P>
<P style="TEXT-INDENT: 2em">"Washington" , "华盛顿州",</P>
<P style="TEXT-INDENT: 2em">"West Virginia" , "西弗吉尼亚",</P>
<P style="TEXT-INDENT: 2em">"Wisconsin" , "威斯康星",</P>
<P style="TEXT-INDENT: 2em">"Wyoming" , "怀俄明") ;</P>
<P style="TEXT-INDENT: 2em">var Canada = new Array(</P>
<P style="TEXT-INDENT: 2em">"Toronto" , "多伦多地区",</P>
<P style="TEXT-INDENT: 2em">"Vancouver" , "温哥华地区",</P>
<P style="TEXT-INDENT: 2em">"Montreal" , "蒙特利尔地区",</P>
<P style="TEXT-INDENT: 2em">"Ottawa" , "渥太华地区",</P>
<P style="TEXT-INDENT: 2em">"Canada Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var China = new Array(</P>
<P style="TEXT-INDENT: 2em">"Beijing" , "北京",</P>
<P style="TEXT-INDENT: 2em">"Shanghai" , "上海",</P>
<P style="TEXT-INDENT: 2em">"Tianjin" , "天津",</P>
<P style="TEXT-INDENT: 2em">"Chongqing" , "重庆",</P>
<P style="TEXT-INDENT: 2em">"Anhui" , "安徽",</P>
<P style="TEXT-INDENT: 2em">"Fujian" , "福建",</P>
<P style="TEXT-INDENT: 2em">"Gansu" , "甘肃",</P>
<P style="TEXT-INDENT: 2em">"Hebei" , "河北",</P>
<P style="TEXT-INDENT: 2em">"Heilongjiang" , "黑龙江",</P>
<P style="TEXT-INDENT: 2em">"Guangdong" , "广东",</P>
<P style="TEXT-INDENT: 2em">"Guangxi" , "广西",</P>
<P style="TEXT-INDENT: 2em">"Guizhou" , "贵州",</P>
<P style="TEXT-INDENT: 2em">"Henan" , "河南",</P>
<P style="TEXT-INDENT: 2em">"Hubei" , "湖北",</P>
<P style="TEXT-INDENT: 2em">"Hunan" , "湖南",</P>
<P style="TEXT-INDENT: 2em">"Hainan" , "海南",</P>
<P style="TEXT-INDENT: 2em">"Jiangsu" , "江苏",</P>
<P style="TEXT-INDENT: 2em">"Jiangxi" , "江西",</P>
<P style="TEXT-INDENT: 2em">"Jilin" , "吉林",</P>
<P style="TEXT-INDENT: 2em">"Liaoning" , "辽宁",</P>
<P style="TEXT-INDENT: 2em">"Neimenggu" , "内蒙古",</P>
<P style="TEXT-INDENT: 2em">"Ningxia" , "宁夏",</P>
<P style="TEXT-INDENT: 2em">"Qinghai" , "青海",</P>
<P style="TEXT-INDENT: 2em">"Shandong" , "山东",</P>
<P style="TEXT-INDENT: 2em">"Shanxi" , "山西",</P>
<P style="TEXT-INDENT: 2em">"Shaanxi" , "陕西",</P>
<P style="TEXT-INDENT: 2em">"Sichuan" , "四川",</P>
<P style="TEXT-INDENT: 2em">"Xinjiang" , "新疆",</P>
<P style="TEXT-INDENT: 2em">"Xizang" , "西藏",</P>
<P style="TEXT-INDENT: 2em">"Yunnan" , "云南",</P>
<P style="TEXT-INDENT: 2em">"Zhejiang" , "浙江") ;</P>
<P style="TEXT-INDENT: 2em">var MetroChina = new Array(</P>
<P style="TEXT-INDENT: 2em">"Hongkong" , "香港",</P>
<P style="TEXT-INDENT: 2em">"Macao" , "澳门",</P>
<P style="TEXT-INDENT: 2em">"Taiwan" , "台湾") ;</P>
<P style="TEXT-INDENT: 2em">var Europe = new Array(</P>
<P style="TEXT-INDENT: 2em">"Britain" , "英国",</P>
<P style="TEXT-INDENT: 2em">"France" , "法国",</P>
<P style="TEXT-INDENT: 2em">"Germany" , "德国",</P>
<P style="TEXT-INDENT: 2em">"Italy" , "意大利",</P>
<P style="TEXT-INDENT: 2em">"Russia" , "俄罗斯",</P>
<P style="TEXT-INDENT: 2em">"Sweden" , "瑞典",</P>
<P style="TEXT-INDENT: 2em">"Switzerland" , "瑞士",</P>
<P style="TEXT-INDENT: 2em">"Spain" , "西班牙",</P>
<P style="TEXT-INDENT: 2em">"Finland" , "芬兰",</P>
<P style="TEXT-INDENT: 2em">"Holland" , "荷兰",</P>
<P style="TEXT-INDENT: 2em">"Austria" , "奥地利",</P>
<P style="TEXT-INDENT: 2em">"Belgium" , "比利时",</P>
<P style="TEXT-INDENT: 2em">"Bulgaria" , "保加利亚",</P>
<P style="TEXT-INDENT: 2em">"Czech" , "捷克",</P>
<P style="TEXT-INDENT: 2em">"Denmark" , "丹麦",</P>
<P style="TEXT-INDENT: 2em">"Greece" , "西腊",</P>
<P style="TEXT-INDENT: 2em">"Hungary" , "匈牙利",</P>
<P style="TEXT-INDENT: 2em">"Iceland" , "冰岛",</P>
<P style="TEXT-INDENT: 2em">"Ireland" , "爱尔兰",</P>
<P style="TEXT-INDENT: 2em">"Norway" , "挪威",</P>
<P style="TEXT-INDENT: 2em">"Poland" , "波兰",</P>
<P style="TEXT-INDENT: 2em">"Portugal" , "葡萄牙",</P>
<P style="TEXT-INDENT: 2em">"Romania" , "罗马尼亚",</P>
<P style="TEXT-INDENT: 2em">"Yugoslavia" , "南斯拉夫",</P>
<P style="TEXT-INDENT: 2em">"Europe Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var Australia = new Array(</P>
<P style="TEXT-INDENT: 2em">"Sydney" , "悉尼地区",</P>
<P style="TEXT-INDENT: 2em">"Melbourne" , "墨尔本地区",</P>
<P style="TEXT-INDENT: 2em">"Perth" , "佩思地区",</P>
<P style="TEXT-INDENT: 2em">"Australia Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var NewZealand = new Array(</P>
<P style="TEXT-INDENT: 2em">"Wellington" , "惠灵顿地区",</P>
<P style="TEXT-INDENT: 2em">"Dunedin" , "达尼丁地区",</P>
<P style="TEXT-INDENT: 2em">"New Zealand Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var Japan = new Array(</P>
<P style="TEXT-INDENT: 2em">"Tokyo" , "东京地区",</P>
<P style="TEXT-INDENT: 2em">"Nagoya" , "名古屋地区",</P>
<P style="TEXT-INDENT: 2em">"Osaka" , "大阪地区",</P>
<P style="TEXT-INDENT: 2em">"Sapporo" , "札幌地区",</P>
<P style="TEXT-INDENT: 2em">"Sendai" , "仙台地区",</P>
<P style="TEXT-INDENT: 2em">"Yokohama" , "横滨地区",</P>
<P style="TEXT-INDENT: 2em">"Hokkaido" , "北海道地区",</P>
<P style="TEXT-INDENT: 2em">"Japan Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var Korea = new Array(</P>
<P style="TEXT-INDENT: 2em">"Seoul" , "汉城地区",</P>
<P style="TEXT-INDENT: 2em">"Taejon" , "大田地区",</P>
<P style="TEXT-INDENT: 2em">"Kwangju" , "光州地区",</P>
<P style="TEXT-INDENT: 2em">"Korea Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var Asia = new Array(</P>
<P style="TEXT-INDENT: 2em">"Singapore" , "新加坡",</P>
<P style="TEXT-INDENT: 2em">"Malaysia" , "马来西亚",</P>
<P style="TEXT-INDENT: 2em">"Philippine" , "菲律宾",</P>
<P style="TEXT-INDENT: 2em">"Thailand" , "泰国",</P>
<P style="TEXT-INDENT: 2em">"Indonesia" , "印度尼西亚",</P>
<P style="TEXT-INDENT: 2em">"Vietnam" , "越南",</P>
<P style="TEXT-INDENT: 2em">"Asia Others" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var Others = new Array(</P>
<P style="TEXT-INDENT: 2em">"South America" , "南美洲",</P>
<P style="TEXT-INDENT: 2em">"Central America" , "中美洲",</P>
<P style="TEXT-INDENT: 2em">"Middle East" , "中东",</P>
<P style="TEXT-INDENT: 2em">"North Africa" , "北非",</P>
<P style="TEXT-INDENT: 2em">"South Africa" , "南非",</P>
<P style="TEXT-INDENT: 2em">"India" , "印度",</P>
<P style="TEXT-INDENT: 2em">"Otherss" , "其它地区") ;</P>
<P style="TEXT-INDENT: 2em">var Alabama = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "阿拉巴马" </P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Alaska = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "阿拉斯加"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Arizona = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "亚利桑那"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Arkansas = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "阿肯色"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var California = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "洛杉矶",</P>
<P style="TEXT-INDENT: 2em">"1" , "旧金山",</P>
<P style="TEXT-INDENT: 2em">"2" , "圣迭戈",</P>
<P style="TEXT-INDENT: 2em">"3" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Colorado = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "丹佛",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Connecticut = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "纽黑文",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Delaware = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "特拉华"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Washington = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "西雅图",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Florida = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "迈阿密",</P>
<P style="TEXT-INDENT: 2em">"1" , "奥兰多",</P>
<P style="TEXT-INDENT: 2em">"2" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Georgia = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "亚特兰大",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Hawaii = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "檀香山",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Idaho = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "爱达荷"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Illinois = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "芝加哥",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Indiana = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "印第安纳"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Iowa = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "艾奥瓦" ) ;</P>
<P style="TEXT-INDENT: 2em">var Kansas = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "堪萨斯"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Kentucky = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "肯塔基"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Louisiana = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "新奥尔良",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Maine = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "波特兰",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Maine = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "缅因"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Maryland = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "巴尔的摩",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Massachusetts = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "波士顿",</P>
<P style="TEXT-INDENT: 2em">"1" , "渥铎斯特",</P>
<P style="TEXT-INDENT: 2em">"2" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Michigan = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "底特律",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Minnesota = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "明尼苏达"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Mississippi = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "密西西比") ;</P>
<P style="TEXT-INDENT: 2em">var Missouri = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "密苏里" ) ;</P>
<P style="TEXT-INDENT: 2em">var Montana = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "蒙大拿"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Nebraska = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "内布拉斯加"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Nevada = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "拉斯维加斯",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var New_Hampshire = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "曼彻斯特",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var New_Jersey = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "新泽西"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var New_Mexico = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "新墨西哥"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var New_York = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "纽约",</P>
<P style="TEXT-INDENT: 2em">"1" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var North_Carolina = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "北卡"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var North_Dakota = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "北达科他"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Ohio = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "俄亥俄"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Oklahoma = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "俄克拉何马"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Oregon = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "俄勒冈"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Pennsylvania = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "费城",</P>
<P style="TEXT-INDENT: 2em">"1" , "匹兹堡",</P>
<P style="TEXT-INDENT: 2em">"2" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Rhode_Island = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "罗得岛"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var South_Carolina = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "南卡"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var South_Dakota = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "南达科他"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Tennessee = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "田纳西"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Texas = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "休斯顿",</P>
<P style="TEXT-INDENT: 2em">"1" , "达拉斯",</P>
<P style="TEXT-INDENT: 2em">"2" , "奥斯汀",</P>
<P style="TEXT-INDENT: 2em">"3" , "其它地区" ) ;</P>
<P style="TEXT-INDENT: 2em">var Utah = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "犹他"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Vermont = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "佛蒙特"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Virginia = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "弗吉尼亚"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Washington_DC = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "华盛顿DC"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var West_Virginia = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "西弗吉尼亚"</P>
<P style="TEXT-INDENT: 2em">) ;</P>
<P style="TEXT-INDENT: 2em">var Wisconsin = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "威斯康星"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Wyoming = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "怀俄明"</P>
<P style="TEXT-INDENT: 2em">&nbsp;) ;</P>
<P style="TEXT-INDENT: 2em">var Toronto = new Array(</P>
<P style="TEXT-INDENT: 2em">"0" , "多伦多地区") ;</P>
<P style="TEXT-INDENT: 2em">var Vancouver = new