<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘宇的博客 - 两个人的幸福]]></title> 
<link>http://blog.lioyu.com/index.php</link> 
<description><![CDATA[时间停到这一刻..感受暖暖的幸福..]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘宇的博客 - 两个人的幸福]]></copyright>
<item>
<link>http://blog.lioyu.com/20090316-tips-of-beian-in-china/</link>
<title><![CDATA[国内网站备案小技巧]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Mon, 16 Mar 2009 13:11:38 +0000</pubDate> 
<guid>http://blog.lioyu.com/20090316-tips-of-beian-in-china/</guid> 
<description>
<![CDATA[ 
	众所周知,目前在中国国内放置网站的单位和个人需要到<a href="http://www.miibeian.gov.cn/" target="_blank">信产部备案网站</a>进行icp报备.而经营性等内容的网站还需要获取相应的isp和b2编号的备案.在这里,根绝我自己和朋友的备案过程,以及<a href="http://bbs.8-host.net/read-htm-tid-1593-page-e.html" target="_blank">空间商</a>对用户的要求总结一下国内网站备案的一些小技巧.<br/><br/>注册用户,这个不用多说,请根据新的系统参考"<a href="http://blog.lioyu.com/post/284/" target="_blank">[转]ICP备案的详细教程</a>".<br/><br/>备案技巧:<br/>1,备案状态为审核中的域名请不要中途修改解析,因为审核工作人员会登录你的网站进行查证;<br/>2,网站名称不能带有“论坛”,“BT”,“商城”等需前置审批的字眼,这一点很重要,前置审批往往不是个人能办的下来的,也就是这个原因,其实个人无证办论坛或者bbs在国内可以认定为是非法的;<br/>3,网站名称为公司的,必须填写公司营业执照号码,网站负责人姓名,身份证号;<br/>4,联系地址必须详细到门牌号,必须留有座机号码, 如果填写不仔细,也有可能不被通过;<br/>5,如果已经开通了网站,那么建议将报备网站首页改为静态页面,页面title和页内大标题要简单明了,仅中文最好;<br/>6,如果空间商可以代备,其实就是isp帮忙备案,一定程度上来说,可以提高速度;<br/>7,一般20个工作日会有备案结果发送到报备者信箱,注意查看.如果报备失败,那么尽量把失败原因告诉空间商,问清具体缘由后再重新更正相应的信息.<br/><br/>另外,如果时间过去很久都没有信息或者报备者急于备案,那么如果超过一周备案无结果可致电当地信管局查询,如下表(感谢八号主机):<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">各省、自治区、直辖市通信管理局备案咨询热线号码&nbsp;&nbsp;<br/>序号 名称 备案咨询热线<br/>1 河北省通信管理局 0311-12300 0311-86699039 0311-86859958<br/>2 四川省通信管理局 028-87013129<br/>3 海南省通信管理局 0898-66533681 0898-66533682<br/>4 山东省通信管理局 0531-82092828<br/>5 广东省通信管理局 020-87626810,87628386<br/>6 江苏省通信管理局 025-85039806<br/>7 青海省通信管理局 0971-8588284<br/>8 陕西省通信管理局 029-88333377<br/>9 湖北省通信管理局 027-87796899<br/>10 山西省通信管理局 0351-8788032 0351-8788039<br/>11 内蒙古自治区通信管理局 0471-6684145 0471-6684170<br/>12 西藏自治区通信管理局 0891-6329494<br/>13 广西壮族自治区通信管理局 0771-2628411 0771-2639992<br/>14 安徽省通信管理局 0551-5680622<br/>15 重庆市通信管理局 023-68583779 023-12300<br/>16 宁夏回族自治区通信管理局 0951-12300<br/>17 天津市通信管理局 022-60351158<br/>18 黑龙江省通信管理局 0451-53005815<br/>19 吉林省通信管理局 0431-8925397<br/>20 江西省通信管理局 0791-6218176&nbsp;&nbsp; 0791-6252504<br/>21 湖南省通信管理局 0731-2338652 0731-2338625<br/>22 甘肃省通信管理局 0931-4501253 0931-4501254<br/>23 上海市通信管理局 021-63905006<br/>24 河南省通信管理局 0371-65795110&nbsp;&nbsp; 0371-65795119&nbsp;&nbsp; 0371-65330166<br/>25 福建省通信管理局 0591-28355716<br/>26 云南省通信管理局 0871-3557966<br/>27 浙江省通信管理局 0571-87078277<br/>28 新疆维吾尔自治区通信管理局 0991-5858733<br/>29 贵州省通信管理局 0851-12300 0851-5624224<br/>30 辽宁省通信管理局 024-86581199<br/>31 北京市通信管理局 010-63310094</div></div><br/>最后附上一篇"<a href="http://blog.lioyu.com/20090301-zz-hexie-and-zhizhu/" target="_blank">[转]河蟹和蜘蛛的故事</a>",看来我们还是很辛苦的..<br/>Tags - <a href="http://blog.lioyu.com/tags/%25E5%25A4%2587%25E6%25A1%2588/" rel="tag">备案</a> , <a href="http://blog.lioyu.com/tags/%25E6%258A%2580%25E5%25B7%25A7/" rel="tag">技巧</a> , <a href="http://blog.lioyu.com/tags/%25E7%25BB%258F%25E9%25AA%258C/" rel="tag">经验</a>
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/420/</link>
<title><![CDATA[[转] HTTP 的一些参考资料]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Wed, 30 Aug 2006 15:41:39 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/420/</guid> 
<description>
<![CDATA[ 
	自: <a href="http://blog.liu21st.com/index.php?job=art&articleid=a_20060807_154537" target="_blank">http://blog.liu21st.com/index.php?job=art&articleid=a_20060807_154537</a><br/>有删改<br/><br/>发现在框架开发的时候，多利用HTTP的特性可以受益匪浅，为了更好的参考，下面整理下HTTP的一些参考资料和Header信息。<br/><br/>一、HTTP响应码<br/>响应码由三位十进制数字组成，它们出现在由HTTP服务器发送的响应的第一行。<br/><br/>响应码分五种类型，由它们的第一位数字表示：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1xx：信息，请求收到，继续处理<br/>2xx：成功，行为被成功地接受、理解和采纳<br/>3xx：重定向，为了完成请求，必须进一步执行的动作<br/>4xx：客户端错误，请求包含语法错误或者请求无法实现<br/>5xx：服务器错误，服务器不能实现一种明显无效的请求</div></div><br/>下表显示每个响应码及其含义：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">100 继续<br/>101 分组交换协<br/>200 OK<br/>201 被创建<br/>202 被采纳<br/>203 非授权信息<br/>204 无内容<br/>205 重置内容<br/>206 部分内容<br/>300 多选项<br/>301 永久地传送<br/>302 找到<br/>303 参见其他<br/>304 未改动<br/>305 使用代理<br/>307 暂时重定向<br/>400 错误请求<br/>401 未授权<br/>402 要求付费<br/>403 禁止<br/>404 未找到<br/>405 不允许的方法<br/>406 不被采纳<br/>407 要求代理授权<br/>408 请求超时<br/>409 冲突<br/>410 过期的<br/>411 要求的长度<br/>412 前提不成立<br/>413 请求实例太大<br/>414 请求URI太大<br/>415 不支持的媒体类型<br/>416 无法满足的请求范围<br/>417 失败的预期<br/>500 内部服务器错误<br/>501 未被使用<br/>502 网关错误<br/>503 不可用的服务<br/>504 网关超时<br/>505 HTTP版本未被支持</div></div><br/>二、HTTP头标<br/>头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接。<br/><br/>四种不同类型的头标：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1.通用头标：即可用于请求，也可用于响应，是作为一个整体而不是特定资源与事务相关联。<br/>2.请求头标：允许客户端传递关于自身的信息和希望的响应形式。<br/>3.响应头标：服务器和于传递自身信息的响应。<br/>4.实体头标：定义被传送资源的信息。即可用于请求，也可用于响应。</div></div><br/>头标格式：<name>:<value><CRLF><br/><br/>下表描述在HTTP/1.1中用到的头标：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">Accept<br/>定义客户端可以处理的媒体类型，按优先级排序；<br/>在一个以逗号为分隔的列表中，可以定义多种类型和使用通配符。例如：Accept: image/jpeg,image/png,*/*<br/>Accept-Charset<br/>定义客户端可以处理的字符集，按优先级排序；<br/>在一个以逗号为分隔的列表中，可以定义多种类型和使用通配符。例如：Accept-Charset: iso-8859-1,*,utf-8<br/>Accept-Encoding<br/>定义客户端可以理解的编码机制。例如：Accept-Encoding:gzip,compress<br/>Accept-Language<br/>定义客户端乐于接受的自然语言列表。例如：Accept-Language: en,de<br/>Accept-Ranges<br/>一个响应头标，它允许服务器指明：将在给定的偏移和长度处，为资源组成部分的接受请求。<br/>该头标的值被理解为请求范围的度量单位。例如Accept-Ranges: bytes或Accept-Ranges: none<br/>Age<br/>允许服务器规定自服务器生成该响应以来所经过的时间长度，以秒为单位。<br/>该头标主要用于缓存响应。例如：Age: 30<br/>Allow一个响应头标，它定义一个由位于请求URI中的次源所支持的HTTP方法列表。例如：Allow: GET,PUT<br/>Authorization<br/>一个响应头标，用于定义访问一种资源所必需的授权（域和被编码的用户ID与口令）。<br/>例如：Authorization: Basic YXV0aG9yOnBoaWw=<br/>Cache-Control <br/>一个用于定义缓存指令的通用头标。例如：Cache-Control: max-age=30<br/>Connection<br/> 一个用于表明是否保存socket连接为开放的通用头标。例如：Connection: close或Connection: keep-alive<br/>Content-Base<br/>一种定义基本URI的实体头标，为了在实体范围内解析相对URLs。<br/>如果没有定义Content-Base头标解析相对URLs，使用Content-Location URI（存在且绝对）或使用URI请求。<br/>例如：Content-Base: <a href="Http://www.myweb.com" target="_blank">Http://www.myweb.com</a><br/>Content-Encoding<br/>一种介质类型修饰符，标明一个实体是如何编码的。例如：Content-Encoding: zip<br/>Content-Language<br/>用于指定在输入流中数据的自然语言类型。例如：Content-Language: en<br/>Content-Length<br/>指定包含于请求或响应中数据的字节长度。例如：Content-Length:382<br/>Content-Location<br/>指定包含于请求或响应中的资源定位（URI）。<br/>如果是一绝。对URL它也作为被解析实体的相对URL的出发点。<br/>例如：Content-Location: <a href="http://www.myweb.com/news" target="_blank">http://www.myweb.com/news</a><br/>Content-MD5<br/>实体的一种MD5摘要，用作校验和。<br/>发送方和接受方都计算MD5摘要，接受方将其计算的值与此头标中传递的值进行比较。<br/>例如：Content-MD5: <base64 of 128 MD5 digest><br/>Content-Range<br/>随部分实体一同发送；标明被插入字节的低位与高位字节偏移，也标明此实体的总长度。<br/>例如：Content-Range: 1001-2000/5000<br/>Contern-Type<br/>标明发送或者接收的实体的MIME类型。例如：Content-Type: text/html<br/>Date<br/>发送HTTP消息的日期。例如：Date: Mon,10PR 18:42:51 GMT<br/>ETag<br/> 一种实体头标，它向被发送的资源分派一个唯一的标识符。<br/>对于可以使用多种URL请求的资源，ETag可以用于确定实际被发送的资源是否为同一资源。<br/>例如：ETag: '208f-419e-30f8dc99'<br/>Expires<br/>指定实体的有效期。例如：Expires: Mon,05 Dec 2008 12:00:00 GMT<br/>Form<br/>一种请求头标，给定控制用户代理的人工用户的电子邮件地址。例如：From: webmaster@myweb.com<br/>Hos<br/>被请求资源的主机名。对于使用HTTP/1.1的请求而言，此域是强制性的。例如：Host: <a href="http://www.myweb.com" target="_blank">www.myweb.com</a><br/>If-Modified-Since<br/>如果包含了GET请求，导致该请求条件性地依赖于资源上次修改日期。<br/>如果出现了此头标，并且自指定日期以来，此资源已被修改，应该反回一个304响应代码。<br/>例如：If-Modified-Since: Mon,10PR 18:42:51 GMT<br/>If-Match<br/>如果包含于一个请求，指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。<br/>例如：If-Match: '208f-419e-308dc99'<br/>If-None-Match<br/>如果包含一个请求，指定一个或者多个实体标记。资源的ETag不与列表中的任何一个条件匹配，操作才执行。<br/>例如：If-None-Match: '208f-419e-308dc99'<br/>If-Range<br/>指定资源的一个实体标记，客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。<br/>如果此实体自上次被客户端检索以来，还不曾修改过，那么服务器只发送指定的范围，否则它将发送整个资源。<br/>例如：Range: byte=0-499<CRLF>If-Range:'208f-419e-30f8dc99'<br/>If-Unmodified-Since<br/>只有自指定的日期以来，被请求的实体还不曾被修改过，才会返回此实体。<br/>例如：If-Unmodified-Since:Mon,10PR 18:42:51 GMT<br/>Last-Modified<br/>指定被请求资源上次被修改的日期和时间。例如：Last-Modified: Mon,10PR 18:42:51 GMT<br/>Location<br/>对于一个已经移动的资源，用于重定向请求者至另一个位置。<br/>与状态编码302（暂时移动）或者301（永久性移动）配合使用。<br/>例如：Location: <a href="http://www2.myweb.com/index.jsp" target="_blank">http://www2.myweb.com/index.jsp</a><br/>Max-Forwards<br/>一个用于TRACE方法的请求头标，以指定代理或网关的最大数目，该请求通过网关才得以路由。<br/>在通过请求传递之前，代理或网关应该减少此数目。例如：Max-Forwards: 3<br/>Pragma<br/>一个通用头标，它发送实现相关的信息。例如：Pragma: no-cache<br/>Proxy-Authenticate<br/>类似于WWW-Authenticate，便是有意请求只来自请求链（代理）的下一个服务器的认证。<br/>例如：Proxy-Authenticate: Basic realm-admin<br/>Proxy-Proxy-Authorization<br/>类似于授权，但并非有意传递任何比在即时服务器链中更进一步的内容。<br/>例如：Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=<br/>Public<br/>列表显示服务器所支持的方法集。例如：Public: OPTIONS,MGET,MHEAD,GET,HEAD<br/>Range<br/>指定一种度量单位和一个部分被请求资源的偏移范围。例如：Range: bytes=206-5513<br/>Refener<br/>一种请求头标域，标明产生请求的初始资源。对于HTML表单，它包含此表单的Web页面的地址。<br/>例如：Refener: <a href="http://www.myweb.com/news/search.html" target="_blank">http://www.myweb.com/news/search.html</a><br/>Retry-After<br/>一种响应头标域，由服务器与状态编码503（无法提供服务）配合发送，以标明再次请求之前应该等待多长时间。<br/>此时间即可以是一种日期，也可以是一种秒单位。例如：Retry-After: 18<br/>Server<br/>一种标明Web服务器软件及其版本号的头标。例如：Server: Apache/2.0.46(Win32)<br/>Transfer-Encoding<br/>一种通用头标，标明对应被接受方反向的消息体实施变换的类型。例如：Transfer-Encoding: chunked<br/>Upgrade<br/>允许服务器指定一种新的协议或者新的协议版本，与响应编码101（切换协议）配合使用。<br/>例如：Upgrade: HTTP/2.0<br/>User-Agent<br/>定义用于产生请求的软件类型（典型的如Web浏览器）。<br/>例如：User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)<br/>Vary<br/>一个响应头标，用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体。例如：Vary: *<br/>Via<br/>一个包含所有中间主机和协议的通用头标，用于满足请求。例如：Via: 1.0 fred.com, 1.1 wilma.com<br/>Warning<br/>用于提供关于响应状态补充信息的响应头标。例如：Warning: 99 <a href="http://www.myweb.com" target="_blank">www.myweb.com</a> Piano needs tuning<br/>www-Authenticate<br/>一个提示用户代理提供用户名和口令的响应头标，与状态编码401（未授权）配合使用。响应一个授权头标。<br/>例如：www-Authenticate: Basic realm=zxm.mgmt</div></div><br/>Tags - <a href="http://blog.lioyu.com/tags/http/" rel="tag">http</a> , <a href="http://blog.lioyu.com/tags/%25E5%2593%258D%25E5%25BA%2594%25E7%25A0%2581/" rel="tag">响应码</a> , <a href="http://blog.lioyu.com/tags/%25E5%25A4%25B4%25E6%25A0%2587/" rel="tag">头标</a> , <a href="http://blog.lioyu.com/tags/%25E5%258F%2582%25E8%2580%2583/" rel="tag">参考</a> , <a href="http://blog.lioyu.com/tags/%25E8%25B5%2584%25E6%2596%2599/" rel="tag">资料</a>
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/342/</link>
<title><![CDATA[[转] Discuz! 模板常见语句分析及知识技巧]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Sun, 05 Feb 2006 14:57:32 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/342/</guid> 
<description>
<![CDATA[ 
	From: <a href="http://plugins.discuz.net/viewthread.php?tid=457" target="_blank">http://plugins.discuz.net/viewthread.php?tid=457</a><br/><br/>by Tea (阿茶)<br/><br/><hr/><br/><br/>以下原文:<br/><br/>　　为什么要写这个文章？<br/>　　想让大家都能制作好一个属于自己的风格模板。希望能帮助大家更好的编写和利用Discuz!的风格和模板技巧。是希望有更多的人参与制作 Discuz!风格。是为了提高大家对Discuz!的了解。是为了解除大家心中对Discuz!模板的疑惑。。。。。希望大家加油！<br/><br/><br/><strong><span style="color: red;">一、模板调用</span></strong><br/>比如在某个模板中，想调用另一个模板中的内容，可以用下面的语句：<br/>&#123;template xxx&#125;<br/>假设，建立了一个新模板名字叫 &quot;abc.htm&quot; ，在后台模板编辑时只会显示为 &quot;acb&quot;，需要在 index 中调用它，那么就在index 中适当位置加入 &#123;template abc&#125;<br/>那么就会自动代用它。<br/><br/><span style="color: blue;">相关实例：</span>index 模板中，最顶有 &#123;template header&#125;，最底有 &#123;template footer&#125;<br/><span style="color: blue;">相关疑问：</span>那么在这个 abc 模板中需要有 &lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt; 吗？<br/>不需要的！想要显示什么，就写什么，因为它只是整个网页的一部分！ &lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt; 都已经在header和footer模板中了。<br/><br/><br/><strong><span style="color: red;">二、固定参数</span></strong><br/>$seohead &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--- 后台设置的头部信息<br/>$charset &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--- config.inc.php中设置语言字符集，必不可少，不能删除！<br/>$extrahead &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--- 控制论坛自动跳转参数，必不可少，不能删除！<br/>&#123;eval updatesession();&#125; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--- 更新论坛 session 表的参数，必不可少，不能删除！<br/>&#123;eval output();&#125; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--- 结束论坛输出，必不可少，不能删除！<br/><br/>以上的参数以Discuz! 4.0为准，这些参数会因应不同版本而有所不同！<br/>还有一些 $xxx 的也是一些参数如非插件作者或程序开发请勿乱修改！<br/><br/><br/><strong><span style="color: red;">三、数据判断</span></strong><br/> &nbsp; 1、在模板中会经常见到&lt;!--&#123;if xx&#125;--&gt;xxx&lt;!--&#123;else&#125;--&gt;xx&lt;!--&#123;/if&#125;--&gt;的语句。<br/> &nbsp; &nbsp; &nbsp;这些并非普通HTML中的注释，而是Discuz!特有的模板判断语法，就好比php或者其他语法中的 if,else,then等等。<br/> &nbsp; &nbsp; &nbsp;通过这些语法，能够达到不同的模板效果。<br/><br/><span style="color: blue;">相关实例：</span><br/>header 模板中<br/><div class="code">&lt;!--&#123;if $discuz_uid&#125;--&gt; --- 如果获取了 $discuz_uid ，即显示下面资料(判断1)<br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;span class=&quot;bold&quot;&gt;$discuz_userss: &lt;/span&gt; &lt;a href=&quot;$link_logout&quot;&gt;&#123;lang logout&#125;&lt;/a&gt;<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;!--&#123;if $maxpmnum&#125;--&gt; --- 如果有 $maxpmnum，即显示下面资料，否则不显示(判断2)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &lt;a href=&quot;pm.php&quot; target=&quot;_blank&quot;&gt;&#123;lang pm&#125;&lt;/a&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;!--&#123;/if&#125;--&gt; --- 结束了这个判断(判断2)<br/> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;&lt;a href=&quot;memcp.php&quot;&gt;&#123;lang memcp&#125;&lt;/a&gt;<br/> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;!--&#123;if in_array($adminid, array(1,2,3))&#125;--&gt; --- 如果$adminid在1,2,3这三个范围内，即显示下面资料，否则不显示(判断3)<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &lt;a href=&quot;admincp.php&quot; target=&quot;_blank&quot;&gt;&#123;lang admincp&#125;&lt;/a&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;!--&#123;/if&#125;--&gt; --- 结束了这个判断(判断3)<br/><br/>&lt;!--&#123;else&#125;--&gt; --- 如果获取不了 $discuz_uid ，则显示下面资料<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;span class=&quot;bold&quot;&gt;&#123;lang guest&#125;: &amp;nbsp;&lt;/span&gt;&lt;a href=&quot;$link_register&quot;&gt;&#123;lang register&#125;&lt;/a&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp;| &lt;a href=&quot;$link_login&quot;&gt;&#123;lang login&#125;&lt;/a&gt;<br/><br/>&lt;!--&#123;/if&#125;--&gt; --- 结束这个判断(判断1)</div><br/><br/>2、在模板中会经常见到&lt;!--&#123;loop xx&#125;--&gt;xxx&lt;!--&#123;/loop&#125;--&gt;的语句。<br/> &nbsp; &nbsp; &nbsp;这个为循环语句，直到数据输出完毕，就会自动结束。<br/> &nbsp; &nbsp; &nbsp;通过这些语法，能够达到把同一系列的资料进行循环显示效果。<br/><br/><br/><span style="color: blue;">相关实例：</span><br/>header 模板中<br/><br/><div class="code">&lt;!--&#123;loop $plugins['links'] $plugin&#125;--&gt; --- 循环1开始，判断插件<br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;!--&#123;loop $plugin $module&#125;--&gt; --- 循环2开始，判断插件模组<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!--&#123;if !$module['adminid'] || ($module['adminid'] &amp;&amp; $adminid &gt; 0 &amp;&amp; $module['adminid'] &gt;= $adminid)&#125;--&gt;| $module[url] &lt;!--&#123;/if&#125;--&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp;&lt;!--&#123;/loop&#125;--&gt; --- 结束循环2<br/>&lt;!--&#123;/loop&#125;--&gt; --- 结束循环1</div><br/><br/><br/><strong><span style="color: red;">四、语言调用</span></strong><br/>在模板中，经常会看到&#123;lang xxx&#125;这样的语句。它就是调用语言包中的词语用的。<br/>而在模板中会调用的大部分都是 &nbsp;templates.lang.php 的。<br/>下面看看语言包的结构：<br/><br/><div class="code">&lt;? &nbsp;-- 宣布php语言开始<br/>$language = array<br/>( &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--- 以上宣布语言包定义开始<br/><br/> &nbsp; &nbsp; &nbsp; &nbsp;'title' =&gt; '标题',<br/> &nbsp; &nbsp; &nbsp; &nbsp;调用字符 &nbsp; &nbsp;显示文字<br/> &nbsp; &nbsp; &nbsp; &nbsp;'never' =&gt; '从未',<br/> &nbsp; &nbsp; &nbsp; &nbsp;调用字符 &nbsp; &nbsp;显示文字<br/> &nbsp; &nbsp; &nbsp; &nbsp;....<br/>); --- 宣告语言包定义结束<br/>?&gt; &nbsp;-- 宣布php语言结束</div><br/><br/><br/><span style="color: blue;">相关实例：</span><br/>假设，我们增加一个语言调用，在<br/>'title' =&gt; '标题',<br/>上一行添加<br/>'abc' =&gt; '这是测试语言调用',<br/>最后的 , 是比不可少的，还有调用字符和显示文字，都必须使用 '' 引起。<br/>增加以后，到模板中，就能调用它，模板中写&#123;lang abc&#125;<br/>那么显示出来就直接显示： 这是测试语言调用<br/><br/><br/><span style="color: red;">特别注意： 增加语言或修改语言包后，必须更新缓存哦！</span><br/><br/><br/><strong><span style="color: red;">五、风格参数调用</span></strong><br/>在模板中常见到&#123;XXXXX&#125;的语句。&#123;&#125;中的必须是大写。<br/><br/>这些都是调用风格配色方案中的参数。您可以可以自己添加，方法如下：<br/> &nbsp;1, 进入 界面风格 -&gt; 界面风格 -&gt; 您要添加参数的风格 点 [详情]<br/> &nbsp;2, 进入后最下面,有两栏可以填写,一个是变量,一个是替换内容<br/><br/><span style="color: blue;">相关实例1：</span><br/> &nbsp; 变量写 COPYRIGHT (注意这里必须大写)<br/> &nbsp; 替换内容写 &nbsp;这个是自定义风格变量<br/>提交后，修改模板，在模板文件中加上&#123;COPYRIGHT&#125;，那么就可以显示出 这个是自定义风格变量。<br/><br/><br/><span style="color: blue;">相关实例2：</span><br/> &nbsp; 变量写 FOOTERCOLOR (注意必须使用大写)<br/> &nbsp; 替换内容写 #003399<br/>提交后，修改模板，模板中写&lt;font color=&quot;&#123;FOOTERCOLOR&#125;&quot;&gt;测试风格自定义变量&lt;/font&gt;<br/>那么出来的效果，这个 测试风格自定义变量 就会按照填写的替换内容的颜色来显示了。<br/><br/><br/><br/>经过上面说了那么多，对于修改模板的时候需要注意或者可以应用到的应该让您了解不少了！<br/><br/>希望对您有帮助，Enjoy It!
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/334/</link>
<title><![CDATA[[转] 网页无法显示 的错误代码说明(IIS环境下)]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Thu, 02 Feb 2006 17:04:32 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/334/</guid> 
<description>
<![CDATA[ 
	From: <a href="http://forum.oray.net/viewthread.php?tid=2050" target="_blank">http://forum.oray.net/viewthread.php?tid=2050</a><br/><br/><br/> 一般来说，您可以使用IIS来完成自定义的操作。IIS 拥有一套自己独特的自定义错误，提供的反馈量较默认的 HTTP 1.1错误消息更大，而且更为&quot;友好&quot;。例如，默认的 HTTP 1.1 404 错误消息所包含的&quot;找不到对象&quot;语句已被扩展为：&quot;Web 服务器找不到要求的文件/脚本。请检查 URL 以确保路径正确。如果问题仍然存在，请与服务器管理员联系。&quot;默认情况下，在 IIS 管理单元的&quot;默认Web站点&quot;中设置这些详细的自定义错误消息。<br/><br/>自定义错误消息作为列表显示在 IIS 的管理单元中。IIS 将此管理单元看作单个属性。例如，在 Web 站点级配置一组自定义错误消息之后，该服务器下的所有目录都将继承整个自定义错误消息列表。也就是说，两个自定义错误消息列表（对于服务器和目录）并不合而为一。<br/><br/>--------------------------------------------------------------------------------<br/><br/>自定义错误消息分类说明<br/><br/>错误代码：400<br/><br/>400错误是由于不正确的请求造成的，说明正在搜索的网页可能已经删除、更名或暂时不可用。<br/><br/>错误代码：401.1<br/><br/>401.1错误是由于登陆失败造成的，说明没有权限查看该目录或网页。<br/><br/>错误代码：401.2<br/><br/>401.2错误是由于服务器配置问题而导致登陆失败，由于服务器端脚本未能正确发送 WWW 身份验证头文件字段。如果要通过 Active Server Pages 脚本完成此项任务，可以使用&quot;Response&quot;对象的&quot;AddHeader&quot;方法来要求客户端用特定身份验证方法访问资源。<br/><br/>错误代码：401.3<br/><br/>401.3错误是由于资源上的 ACL 导致未被授权而无权访问网页或目录。<br/><br/>错误代码：401.4<br/><br/>401.4错误是由于筛选器导致授权失败。如果Web 服务器安装了筛选器程序以检查连接到服务器的用户。该筛选器程序能够禁止通过连接到服务器的身份验证来访问资源。<br/><br/>错误代码：401.5<br/><br/>401.5错误是由于 ISAPI/CGI 应用程序导致授权失败。如果所要访问的 Web 服务器地址上安装了 ISAPI 或 CGI 程序用于在继续执行之前检验用户证书。该程序能够禁止通过连接到服务器的身份验证证书来访问资源。<br/><br/>错误代码：403.1<br/><br/>403.1错误是由于&quot;执行&quot;访问被禁止而造成的，若试图从目录中执行 CGI、ISAPI 或其他可执行程序，但该目录不允许执行程序时便会出现此种错误。<br/><br/>错误代码：403.2<br/><br/>403.2错误是由于&quot;读取&quot;访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览，或者要显示的 HTML 网页所驻留的目录仅标记为&quot;可执行&quot;或&quot;脚本&quot;权限。<br/><br/>错误代码：403.3<br/><br/>403.3错误是由于&quot;写入&quot;访问被禁止而造成的，当试图将文件上载到目录或在目录中修改文件，但该目录不允许&quot;写&quot;访问时就会出现此种错误。<br/><br/>错误代码：403.4<br/><br/>403.4错误是由于要求SSL而造成的，您必须在要查看的网页的地址中使用&quot;https&quot;。<br/><br/>错误代码：403.5<br/><br/>403.5错误是由于要求使用 128 位加密算法的 Web 浏览器而造成的，如果您的浏览器不支持128位加密算法就会出现这个错误，您可以连接微软网站进行浏览器升级。<br/><br/>错误代码：403.6<br/><br/>403.6错误是由于IP 地址被拒绝而造成的。如果服务器中有不能访问该站点的 IP 地址列表，并且您使用的 IP 地址在该列表中时您就会返回这条错误信息。<br/><br/>错误代码：403.7<br/><br/>403.7错误是因为要求客户证书，当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层 (SSL) 客户证书时会返回此种错误。<br/><br/>错误代码：403.8<br/><br/>403.8错误是由于禁止站点访问而造成的，若服务器中有不能访问该站点的 DNS 名称列表，而您使用的 DNS 名称在列表中时就会返回此种信息。请注意区别403.6与403.8错误。<br/><br/>错误代码：403.9<br/><br/>403.9错误是由于连接的用户过多而造成的，由于Web 服务器很忙，因通讯量过多而无法处理请求时便会返回这条错误。<br/><br/>错误代码：403.10<br/><br/>403.10错误是由于无效配置而导致的错误，当您试图从目录中执行 CGI、ISAPI 或其他可执行程序，但该目录不允许执行程序时便会返回这条错误。<br/><br/>错误代码：403.11<br/><br/>403.11错误是由于密码更改而导致无权查看页面。<br/><br/>错误代码：403.12<br/><br/>403.12错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书，而您的客户证书映射没有权限访问该 Web 站点时就会返回映射器拒绝访问的错误。<br/><br/>错误代码：403.13<br/><br/>403.13错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销，或者无法确定证书是否已吊销造成的。<br/><br/>错误代码：403.15<br/><br/>403.15错误是由于客户访问许可过多而造成的，当服务器超出其客户访问许可限制时会返回此条错误。<br/><br/>错误代码：403.16<br/><br/>403.16错误是由于客户证书不可信或者无效而造成的。<br/><br/>错误代码：403.17<br/><br/>403.17错误是由于客户证书已经到期或者尚未生效而造成的。<br/><br/>错误代码：404.1<br/><br/>404.1错误表明所访问 Web 站点的 IP 地址不接受对端口（请求的来源端口）的请求。一般来说，404.1 错误只会出现在具有多个 IP 地址的计算机上。如果在特定 IP 地址/端口组合上收到客户请求，而且在特定的端口上 IP 地址并没有设置为侦听，则 IIS 将返回 404.1 HTTP 错误。例如，如果一台计算机有两个 IP 地址，而只将其中一个 IP 地址配置为在端口 80 上侦听，则其它 IP 地址从端口 80 收到的任何请求都将导致 IIS 返回 404.1 错误。只应在服务级设置这一错误，因为只有当服务器上使用多个 IP 地址时它才返回给客户。<br/><br/>错误代码：404b<br/><br/>404b错误是由于无法找到文件而造成的，通常是由于正在搜索的网页可能已经删除、更名或暂时不可用。<br/><br/>错误代码：405<br/><br/>405错误是由于资源被禁止而导致的网页地址不正确，因此要寻找的网页无法显示。<br/><br/>错误代码：406<br/><br/>406错误是由于浏览器无法打开正在寻找的资源而导致的错误。<br/><br/>错误代码：407<br/><br/>407错误是由于代理服务器必须先验证身份，然后才处理请求。<br/><br/>错误代码：410<br/><br/>410错误要寻找的网页已被永久删除而导致的，这意味着资源永远无法使用。<br/><br/>错误代码：412<br/><br/>412错误是由于要查看的网页设置有先决条件，因此该请求无法完成。一般是网页中有一个或多个请求标题字段中具有先决条件，这些字段经服务器测试后被认为是&quot;FALSE&quot;。客户端为当前资源的 meta 信息（头文件字段数据）设置了先决条件，以便防止请求的方法被用于指定资源外的其他资源。<br/><br/>错误代码：414<br/><br/>414错误是由于请求的 URI 太长，服务器拒绝处理请求而造成的。一般的可能性有：<br/><br/>1）客户端错误地将 POST 请求转换为带有长查询信息的 GET 请求。<br/><br/>2）或者是客户端遇到重定向问题（例如，重定向 URL 的前缀指向自身的后缀）。<br/><br/>3）服务器遭到客户端的攻击，该客户端试图利用那些使用定长缓冲来读取或控制请求 URI 的服务器上的安全漏洞。<br/><br/>错误代码：500<br/><br/>500错误是由于内部服务器错误造成的。<br/><br/>错误代码：500.11<br/><br/>500.11错误是由于服务器关闭而造成的资源无法访问，Web 站点关闭期间无法处理请求。<br/><br/>错误代码：500.12<br/><br/>500.12错误是由于应用程序重新启动而造成的资源暂时无法访问，Web站点重新启动期间无法处理请求。<br/><br/>错误代码：500.13<br/><br/>500.13错误是由于服务器太忙而造成的，此时无法处理请求。通讯量超出 Web 站点的能力。<br/><br/>错误代码：500.14<br/><br/>500.14错误是由于应用程序无效而造成的，部分 Web 站点不可用。Web 站点应用程序配置存在问题，无法处理请求。<br/><br/>错误代码：500.15<br/><br/>500.15错误是由于请求了不不允许请求的 global.asa而造成的，你可以编辑&quot;地址&quot;栏中的网址，删除 global.asa，然后按 Enter。来解决这个问题。<br/><br/>错误代码：502<br/><br/>502错误是由于网关错误而造成的，当作为网关或代理的服务器与上层内容服务器联络时，收到无效的响应时就会出现502错误。<br/><br/>错误代码：500-100.asp<br/><br/>500-100.asp错误是指ASP错误，默认情况下，&quot;默认 Web 站点&quot;及其所有应用程序都将 ASP 错误进程传送到 500-100.asp 文件；但是，用户创建的任何新 Web 站点或其应用程序都将 500.100 错误进程传送到默认的（不是自定义的）错误文件。如果要为 .asp 文件开发附加的错误进程，可以将 500-100 错误映射到 .asp 文件，或者创建自己的错误进程 .asp 文件。<br/><br/>500-100.asp 文件处理 .asp 文件编译和运行期间发生的任何错误。当发生 ASP 错误时，IIS 返回 500-100.asp 文件并附带详细的错误信息，如发生错误的行号和对错误的描述。<br/><br/>如果文件 500-100.asp 本身包含 ASP 错误，ASP 就不会返回另一个 500-100.asp 文件；这样，报告错误时就好象根本没有与 500-100 错误对应的自定义错误文件似的。<br/><br/>如果错误处理文件（默认是 500-100.asp）包含运行时错误，则只显示此错误，而不考虑请求的 .asp 文件中的错误类型。如果错误处理文件有预处理和编辑错误，则在浏览器中显示这两种错误（即，显示 500-100.asp 文件中的错误和请求的 .asp 文件中的错误）。
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/331/</link>
<title><![CDATA[[转]PHP做WAP的总结]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Tue, 31 Jan 2006 17:37:54 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/331/</guid> 
<description>
<![CDATA[ 
	From: <a href="http://www.xjtusky.com/article.asp?id=185" target="_blank">http://www.xjtusky.com/article.asp?id=185</a><br/><br/><br/>这两天完成了一个WAP站，支持登陆，下载，分页这些功能都有了，简单记载一下<br/><br/>Introduction to WAP<br/><a href="http://www.w3schools.com/wap/wap_intro.asp" target="_blank">http://www.w3schools.com/wap/wap_intro.asp</a><br/><br/>Hello World<br/><div class="code">&lt;?xml version=&quot;1.0&quot; encoding=&quot;GB2312&quot;?&gt;<br/>&lt;!DOCTYPE wml PUBLIC &quot;-//WAPFORUM//DTD WML 1.1//EN&quot;<br/>&quot;http://www.wapforum.org/DTD/wml_1.1.xml&quot;&gt;<br/>&lt;wml&gt;<br/>&lt;card id=&quot;card1&quot; title=&quot;Title&quot;&gt;<br/>&lt;P&gt;<br/>&lt;!--Write your card implementation here.--&gt;<br/>Hello World!!<br/>&lt;/P&gt;<br/>&lt;/card&gt;<br/>&lt;/wml&gt;</div><br/><br/>可以用opera来查看和校验你的代码，通过校验一般用手机访问就没问题了<br/><br/>下面是一个应用例子<br/>wap_list.html<br/><div class="code">&lt;!DOCTYPE wml PUBLIC &quot;-//WAPFORUM//DTD WML 1.1//EN&quot;<br/>&quot;http://www.wapforum.org/DTD/wml_1.1.xml&quot;&gt;<br/>&lt;wml&gt;<br/><br/>&lt;card title=&quot;&#123;typename&#125;&quot;&gt;<br/>&lt;p align=&quot;center&quot;&gt;<br/>&lt;img src=&quot;./logo.gif&quot; alt=&quot;img&quot; /&gt;<br/>&lt;br/&gt;<br/>&lt;/p&gt;<br/> &lt;p align=&quot;center&quot;&gt;<br/> &#123;typename&#125;(&#123;total&#125;)<br/> &lt;br/&gt;&lt;br/&gt;<br/> &lt;/p&gt;<br/><br/>&lt;p&gt;<br/>&lt;!-- BEGIN list --&gt;<br/> &lt;a href=&quot;show.php?id=&#123;id&#125;&quot;&gt;&#123;name&#125;&lt;/a&gt; (&#123;hit&#125;)<br/> &lt;br/&gt;<br/>&lt;!-- END list --&gt;<br/> &lt;/p&gt;<br/><br/>&lt;p&gt;<br/>&#123;pagebar&#125;<br/> &lt;/p&gt;<br/><br/>&lt;p align=&quot;center&quot;&gt;<br/>&lt;br/&gt; &lt;br/&gt;<br/>&lt;a href=&quot;index.php&quot;&gt;返回首页&lt;/a&gt;<br/>&lt;br/&gt; &lt;br/&gt;<br/>&#123;time&#125;<br/>&lt;br/&gt;<br/>@2006 xjtusky.com<br/> &lt;/p&gt;<br/>&lt;/card&gt;<br/>&lt;/wml&gt;</div><br/><br/><br/>对应的list.php<br/><div class="code">&lt;?php<br/><br/>// --------------------------------------------------------------------------<br/>// File name : list.php<br/>// Description : 列表<br/>// Requirement : PHP4 (http://www.php.net)<br/>//<br/>// Copyright(C), Langyufeng, 2005, All Rights Reserved.<br/>//<br/>// Author: Langyufeng (langyufeng@hotmail.com)<br/>//<br/>// --------------------------------------------------------------------------<br/>define('ROOT_PATH', '../');<br/>require_once(ROOT_PATH . 'Includes/Global.php');<br/><br/>header('Content-Type: text/vnd.wap.wml');<br/>echo '&lt;?xml version=&quot;1.0&quot; encoding=&quot;GB2312&quot;?&gt;';//这东西不能放到 php 外面<br/><br/>$id = $_GET['id'];<br/>if($id == '')&#123;<br/> echo &quot;分类ID不存在&quot;;<br/> exit;<br/> &#125;<br/><br/>// 分页<br/>$page = $_GET['page'];<br/><br/> if (!empty($page))&#123;<br/> $start_limit = ($page - 1) * $Config['pagePer'];<br/> &#125;else<br/> &#123;<br/> $start_limit = 0;<br/> $page = 1;<br/> &#125;<br/><br/>$SQL = &quot;SELECT `id` , `name` , `hit` FROM &quot; . GAME_TABLE . &quot; WHERE `typeid` =$id &quot;;<br/><br/>$Result = $DB -&gt; query($SQL);<br/>$total = $DB -&gt; _GetNumRows($Result);<br/><br/>$SQL .= &quot; ORDER BY id DESC LIMIT $start_limit, $Config[pagePer]&quot;;<br/><br/>$Result = $DB -&gt; query($SQL);<br/>while($Row = $DB -&gt; queryArray($Result))&#123;<br/> $list[] = array(<br/> &nbsp; &nbsp; 'id' =&gt; $Row['id'],<br/> 'name' =&gt; $Row['name'],<br/> &nbsp; &nbsp; 'hit' =&gt; $Row['hit']<br/> );<br/> &#125;<br/><br/>// 分页<br/>$cont = ceil($total / $Config['pagePer']);<br/>if($cont &gt; 1 &amp;&amp; $num % $Config['pagePer'] == 0)<br/> $pagebar = paginationtxt (floor($cont), $page, 'list.php?id=' . $id . '&amp;amp;page');<br/> elseif($cont &gt; 1)<br/> $pagebar = paginationtxt (floor($cont) + 1, $page, 'list.php?id=' . $id . '&amp;amp;page');<br/><br/>$typename = typename($id);<br/><br/>$time = date(&quot;H:i:s&quot;);<br/><br/>//$qc = &quot;?&quot;;<br/> $page = new SmartTemplate(&quot;wap_list.html&quot;);<br/><br/> //$page -&gt; assign('sitename', $Config['sitename']);<br/> $page -&gt; assign('typename', $typename);<br/> $page -&gt; assign('pagebar', $pagebar);<br/> $page -&gt; assign('total', $total);<br/> $page -&gt; assign('list', $list);<br/> $page -&gt; assign('time', $time);<br/> $result = $page -&gt; result();<br/> //$page -&gt; output();<br/> echo $result;<br/>?&gt;</div><br/><br/><br/>分页函数<br/><div class="code">function paginationtxt ($count,$page,$url)&#123;<br/> <br/> if($page&gt;1)<br/> &#123;<br/> $re=&quot;\n&lt;a href=\&quot;$url=1\&quot;&gt;首页&lt;/a&gt; &lt;a href=\&quot;$url=&quot;.($page-1).&quot;\&quot;&gt;上一页&lt;/a&gt;&quot;;<br/> &#125;<br/> if($page&lt;$count)<br/> &#123;<br/> $re.=&quot;\n&lt;a href=\&quot;$url=&quot;.($page+1).&quot;\&quot;&gt;下一页&lt;/a&gt; &lt;a href=\&quot;$url=$count\&quot;&gt;尾页&lt;/a&gt; &quot;;<br/> &#125;<br/> return $re;<br/>&#125;</div><br/><br/>这个是放在下载目录下的，具体的自己看了<br/>.htaccess<br/><div class="code">AddType text/vnd.sun.j2me.app-descriptor .jad<br/>AddType application/java-archive .jar<br/>AddType application/vnd.symbian.install .sis</div><br/><br/>有一个地方必须注意：链接中不能这么用?id=**，而应该这么用xx.php?id=**<br/>呵呵，第一次搞这个玩意，出了不少错，感谢phpe的wsjakey指点<br/><br/>以下摘自：<a href="http://www0.ccidnet.com/school/web//2001/05/25/70_4286.html" target="_blank">http://www0.ccidnet.com/school/web//2001/05/25/70_4286.html</a><br/><br/>WML程序的结构形式及组成：<br/><br/>1)语法。WML是一种标记语言，延续了XML的语法规则。<br/><br/>2)文件声明。所有的WML程序必须在文件的开头处声明XML文件类型，包括XML的版本，WML的文档类型、所用规范等。<br/><br/>3)标签。在WML语言中需要使用标签（Tag），使用形式与HTML和XML等标记语言中的形式是完全一致的。<br/><br/>4）元素。WML的元素（Element）用于描述卡片组（Deck）的标记信息即结构信息。一个元素通常有一个首标签、内容、其它元素及一个尾标签组成，具有下述两种结构之一：<br/><br/>&lt;首标签&gt;内容&lt;/尾标签&gt;<br/>或<br/>&lt;标签/&gt;<br/><br/>元素包含的内容中还可以有元素，这些元素也是有首标签、相应内容、其它元素及尾标签组成。不包含内容的元素成为空元素。它为一个单独的标签。或者说，单独的标签也是一种元素。<br/><br/>5)属性。WML与XML一样，其标签可以包含很多属性。属性用于给标签提供必要的附加信息，且属性内容通常在起始标签内使用。不过，属性内容不会被浏览器显示，它至作为参数为标签提供必要的信息。<br/><br/>指明属性值的时候，需要把该值用引号扩起来，可以是单引号或者双引号，引号通常成对嵌套使用。属性名称必须小写。例如：&lt;card id=&quot;card 1&quot; ontimer=&quot;#card2&quot; title=&quot;Toolkit Demo&quot;&gt;<br/><br/>而且，单引号的属性中还可以包含双引号的属性。实体字符也可以作为属性值。实体字符是指诸如&amp;、&lt;、&gt;、'、&quot;的特殊字符，在WML程序中显示着类字符需要特殊处理，后面我们介绍具体方法。<br/><br/>6) 注释。WML程序中也可以加入注释。注释内容用于给开发人员顺利阅读源代码提供方便，它不会被浏览器显示出来。注释内容在标签中用感叹号（！）引出，并用于&lt;!--注释内容--&gt;的形式。例如：&lt;!-- Write your card implementation here.--&gt;。需要说明的是，XML程序中不支持注释的嵌套。<br/><br/>7)文档结构。WML文档是由“卡片（Card）”和“卡片组（Deck）”构成的，一个Deck是一个或多个Card的集合。当客户端发出请求之后，WML即从网络上把Deck发送到客户浏览器，这是用户就可以浏览Deck内包含的所有Card，而不必从网上单独下载每一个Card，程序中的第一个Card是缺省得可见的Card。<br/><br/>注意：Deck 是一副纸牌的意思，这里是指一叠卡片，所以我们在这里称之为它为“卡片组”。另外，Card指的是WAP手机屏幕大小的网页，尽管有时一个Card可能需要多屏才能显示完，但我们也可以把它翻译成“页面”，不过这样与HTML中的页面容易混合。因此我们在这里称之为卡片。<br/><br/>WML字符使用基本规则<br/>WML是一种比较严格的语言，字符使用必须遵守相应的规则，这些基本规则主要包括以下几个方面：<br/><br/>1）大小写敏感。在WML中，无论是标签元素还是属性内容都是大小写敏感的，这一点继承了XML的严格特性，任何大小写错误都可能导致访问错误。<br/><br/>一般来说，WML的所有标签，属性，规定和枚举及它们的可接受值必须小写，Card的名字和变量可大写和小写，但它是区分大小写的。包括参数的名字和参数的数值都是大小写敏感的，例如variable1、Variable1和vaRiable1都是不同的参数。 2）空格。对于连续的空字符，程序运行时只需要一个空格。属性名、符号（=）和值之间不能有空格。<br/><br/>3）标签。标签内属性的值必须使用双引号（&quot;）或单引号（'）括起来。对于不成对出现的标签，必须在大于号（&gt;）前加上顺斜杠（/），比如换行标签必须写成&lt;br/&gt;才正确。<br/><br/>4）不显示的内容。在WML中，不显示的字符主要包括换行符、回车符、空格和水平制表符，它们的8位十六进制内码分别为10、13、32及9。<br/><br/>程序执行时，WML将忽视所有的多于一个以上的不显示字符，即WML会把一个或多个连续的换行、回车、水平制表符及空格转换成一个空个。<br/><br/>5）保留字符。这是WML的一些特殊字符，如小于号（&lt;）、大于号（&gt;）、单引号“'”、双引号“&quot;”、和号（&amp;）。<br/><br/>6）显示汉字。如果希望WML程序执行时能够显示汉字，则只需要程序开头使用encoding指定汉字字符集即可。例如：&lt;?xml version=&quot;1.0&quot; encoding=&quot;gb2312&quot;&gt;。<br/><br/>注意：指定汉字字符集的形式和方法可能因为开发工具或WAP手机的不同而不同。 
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/322/</link>
<title><![CDATA[新春贺喜风格 for Bo-Blog V1.7.0108]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Sat, 28 Jan 2006 09:13:43 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/322/</guid> 
<description>
<![CDATA[ 
	新春贺喜风格 for Bo-Blog V1.7.0108 by taiyuan123<br/><br/><br/>演示见:<br/><br/><a href="http://www.lioyu.com/blog/index.php?tem=newyear" target="_blank">http://www.lioyu.com/blog/index.php?tem=newyear</a><br/><br/><br/>说明:<br/><br/>这个模板是在 Clean 的基础上修改陪色并用图片修饰的,今天凌晨想起来做才做好的,所以时间有些晚了~呵呵~<br/><br/>另外,如果有什么问题,建议自行修改,因为我不能经常上网了,建议使用 EditPlus 修改~<br/><br/><br/>安装方法:<br/><br/>1,下载最下面的压缩包;<br/>2,将文件进行解压;<br/>3.1,将解压得到的文件夹完整上传到 blog/template/ 目录下;<br/>3.2,<span style="color: red;">注意common.js文件需要用二进制上传( binary 模式)</span>;<br/>4,到后台&quot;模板管理&quot;添加新模板,名称为 newyear ,提交后选择它为默认模板到 blog 中刷新即可看到;<br/><br/><br/>点击这里下载:<br/><br/><a href="up/1138439181.rar" target="_blank">up/1138439181.rar</a> 
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/284/</link>
<title><![CDATA[[转]ICP备案的详细教程]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Mon, 19 Dec 2005 10:14:35 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/284/</guid> 
<description>
<![CDATA[ 
	From: <a href="http://siyu.0575.org/archives/2005/911.shtml" target="_blank">http://siyu.0575.org/archives/2005/911.shtml</a><br/><br/><br/>ICP备案的详细教程..其实在 <a href="http://www.miibeian.gov.cn" target="_blank">http://www.miibeian.gov.cn</a> 是有的<br/><br/>只是很难找到.所以就自己的抄下来.收藏啦...也给没有备过案的朋友看看<br/><br/> ICP备案，收不到短信或没有手机的朋友进来吧，对你肯定有帮助：）<br/><br/>现在在ICP备案时经常会有朋友抱怨手机上收不到短信，很着急吧：）<br/>下面将公开收不到短信或没有手机的朋友如何进行备案！<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1：登陆：<a href="http://www.miibeian.gov.cn/" target="_blank">http://www.miibeian.gov.cn/</a><br/>2：注册（注册完了手机上收不到短信，没有验证码）<br/>3：退回主页（<a href="http://www.miibeian.gov.cn/" target="_blank">http://www.miibeian.gov.cn/</a> ）<br/>4：输入用户名、密码、验证码后点击登陆<br/>5：此时需输入“手机验证码”和“邮箱验证码”----不要输入<br/>6：在地址栏里输入“<a href="http://www.miibeian.gov.cn/index_icp.jsp" target="_blank">http://www.miibeian.gov.cn/index_icp.jsp</a><br/>7：回车<br/>8：进行备案吧<br/></div></div>
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/203/</link>
<title><![CDATA[[转]使用HttpModule实现多个域名分别“绑定”到子目录]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Sat, 15 Oct 2005 09:18:21 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/203/</guid> 
<description>
<![CDATA[ 
	目前虚拟主机商提供将多个域名绑定到站点根目录，但是不提供类似CPanel那样可以将域名绑定到站点的子目录。<br/>而当你手上有多个域名，网站空间和流量又有闲置的时候，是很希望<br/>将这些资源利用起来，而且要做到降低做站的成本。而网络上流传的多域名绑到子目录多为判断HTTP_HOST再使用Asp的Response.Redirect或者php的header方法重订向到子目录去。这种方法在地址的请求上发生了变化，大家都知道Redirect的定向是很不友好的，在服务器端控制自动跳转会令访问者感到不安。<br/>所以我需要的是对这个域名下面的所有请求都转接到对应的子目录里去<br/>比如<br/><br/><a href="http://www.xaradio.com/default.aspx" target="_blank">http://www.xaradio.com/default.aspx</a><br/>实际访问的是<a href="http://www.3pub.com/xaradio/default.aspx" target="_blank">http://www.3pub.com/xaradio/default.aspx</a><br/><br/><a href="http://www.xaradio.com/album.aspx?id=722" target="_blank">http://www.xaradio.com/album.aspx?id=722</a><br/>实际访问的是<a href="http://www.3pub.com/xaradio/album.aspx?id=722" target="_blank">http://www.3pub.com/xaradio/album.aspx?id=722</a><br/><br/><a href="http://www.xaradio.com/" target="_blank">http://www.xaradio.com/</a>*.aspx<br/>实际要访问到<a href="http://www.3pub.com/xaradio/" target="_blank">http://www.3pub.com/xaradio/</a>*.aspx<br/><br/>而绑定到该站点根目录的其他域名和地址仍然不受影响<br/>如: <a href="http://www.3pub.com/" target="_blank">http://www.3pub.com/</a> 和<a href="http://3pub.com/" target="_blank">http://3pub.com/</a><br/> <a href="http://www.3pub.com/default.aspx" target="_blank">http://www.3pub.com/default.aspx</a> 和<a href="http://3pub.com/default.aspx" target="_blank">http://3pub.com/default.aspx</a><br/><br/><br/><a href="http://www.aspxboy.com/484/default.aspx" target="_blank">http://www.aspxboy.com/484/default.aspx</a> 该文章详细的描述了在Asp.Net中使用HttpModule和HttpHander来重写Url,读懂他特别是<a href="http://www.aspxboy.com/484/archive.aspx#ekaa" target="_blank">http://www.aspxboy.com/484/archive.aspx#ekaa</a> 节将是我们下面工作的前提朋友们可以下载该文章附带的代码研究。<br/><br/>如果您对HttpModule的编成非常熟悉那么可以向下进行了<br/><br/>一。 先把配置文件从web.config内移出为了不让web.config变的非常臃肿，我们将配置文件从web.config内移出<br/>假设我们的多域名绑定配置文件为“MulitDomain.config”<br/>将RewriterConfiguration.cs的public static RewriterConfiguration GetConfig()方法<br/>修改如下:<br/><br/><br/><div class="code">/// <br/>/// 从XML配置文件中返回重写信息<br/>/// <br/>/// RewriterConfiguration<br/>public static RewriterConfiguration GetConfig()<br/>&#123;<br/>RewriterConfiguration config = (RewriterConfiguration) BoovooCache.Get(CacheKey);<br/>if(config == null)<br/>&#123;<br/>// 2005-08-18 wu meibo update the config file to SiteUrls.config<br/>// HttpContext.Current.Cache.Insert(&quot;RewriterConfig&quot;, ConfigurationSettings.GetConfig(&quot;RewriterConfig&quot;));<br/><br/>///************************************************************************************<br/>/// &nbsp;<br/>/// &nbsp;Author:活靶子，huobazi<br/>///　Date:2005-08-18<br/>///<br/>/// &nbsp;Description:将配置文件移到单独的文件内，更新以下代码，原代码（上一行）停止工作<br/>///<br/>///************************************************************************************<br/><br/>string filePath = String.Empty;<br/>if(HttpContext.Current != null)<br/>&#123;<br/>filePath = HttpContext.Current.Server.MapPath(&quot;~/MulitDomain.config&quot;);<br/>&#125;<br/>else<br/>&#123;<br/>filePath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + &quot;MulitDomain.config&quot;;<br/>&#125;<br/><br/>XmlSerializer ser = new XmlSerializer(typeof(RewriterConfiguration)); <br/>FileStream fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); <br/>StreamReader reader = new StreamReader(fileReader); <br/>config = (ser.Deserialize(reader)) as RewriterConfiguration; <br/>reader.Close(); <br/>fileReader.Close(); <br/>if (File.Exists(filePath)) <br/>&#123; <br/>CacheDependency dep = new CacheDependency(filePath); <br/>BoovooCache.Max(CacheKey,config,dep); <br/>BoovooCache.ReSetFactor(config.CacheFactor);<br/>&#125; <br/>&#125;<br/><br/>return config;<br/>&#125; </div><br/>二。做一些修补<br/>RewriterModule.cs内<br/><div class="code">public virtual void Init(HttpApplication app) <br/>&#123;<br/><br/>///**********************************************************************************<br/>/// &nbsp;Author:活靶子，huobazi<br/>///　Date:2005-08-18<br/>/// &nbsp;Description:增加BeginRequest,在内增加防止黑客可能利用的某些Url漏洞攻击的代码<br/>///**********************************************************************************<br/><br/>app.BeginRequest += new EventHandler(this.RewriterModule_BeginRequest);<br/><br/>// 警告！此代码不适用于 Windows 身份验证！<br/>// 如果使用 Windows 身份验证，<br/>// 请改为 app.BeginRequest<br/><br/>app.AuthorizeRequest += new EventHandler(this.RewriterModule_AuthorizeRequest);<br/><br/><br/>&#125; <br/>protected virtual void RewriterModule_BeginRequest(object o , EventArgs e)<br/>&#123;<br/>HttpApplication app = ((HttpApplication)(o)); <br/>HttpServerUtility Server = app.Server; <br/>HttpRequest Request = app.Request; <br/><br/>///************************************************************<br/>/// &nbsp;Author:活靶子，huobazi<br/>///　Date:2005-08-18<br/>///　Description:修补黑客可能采用&quot;..&quot;的方法进入其他目录的问题<br/>///************************************************************<br/><br/>string strURL = Server.UrlDecode(Request.RawUrl); <br/>if (strURL.IndexOf(&quot;..&quot;) != -1) <br/>&#123; <br/>throw new HttpException(404, &quot;Not Found&quot;); <br/>&#125; <br/><br/>///**********************************************************************************<br/>/// &nbsp;Author:活靶子，huobazi<br/>///　Date:2005-08-18<br/>///　Description:修补&quot;规范化&quot;问题　see: http://support.microsoft.com/?kbid=887459<br/>///***********************************************************************************<br/><br/>if (Request.Path.IndexOf('\\') &gt;= 0 ||<br/>Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath) <br/>&#123;<br/>throw new HttpException(404, &quot;Not Found&quot;);<br/>&#125;<br/>&#125; <br/></div><br/>三。开始匹配域名<br/><div class="code">protected void Rewrite(string requestedPath, System.Web.HttpApplication app)<br/>&#123;<br/>string host = app.Context.Request.Url.Host.ToString().ToLower();<br/><br/>app.Context.Trace.Write(&quot;RewriterModule&quot;, &quot;Entering ModuleRewriter&quot;); &nbsp; <br/>RewriterRuleCollection rules = RewriterConfiguration.GetConfig().Rules; <br/>for(int i = 0; i &lt; rules.Count; i++)<br/>&#123;//将MulitDomain.config内定义的规则LookFor的值逐个匹配当前主机名判断否被定义了需要重写<br/>//如果匹配则需要重写，那将请求重写到SendTo定义的目录内的该文件<br/>string lookFor = &quot;^&quot; + rules[i].LookFor + &quot;$&quot;;<br/>//string lookFor = &quot;^&quot; + Rewriter.ResolveUrl(app.Context.Request.ApplicationPath, rules[i].LookFor + requestedPath) + &quot;$&quot;;<br/>Regex re = new Regex(lookFor, RegexOptions.IgnoreCase);<br/>if (re.IsMatch(host))<br/>&#123;<br/>string sendToUrl = Rewriter.ResolveUrl(app.Context.Request.ApplicationPath, &nbsp;rules[i].SendTo + requestedPath);<br/>app.Context.Trace.Write(&quot;RewriterModule&quot;, &quot;Rewriting URL to &quot; + sendToUrl);<br/>Rewriter.RewriteUrl(app.Context, sendToUrl);<br/>break;<br/>&#125;<br/>&#125; <br/>app.Context.Trace.Write(&quot;RewriterModule&quot;, &quot;Exiting ModuleRewriter&quot;);<br/>&#125;<br/></div><br/>四。写规则文件<br/>MulitDomain.config的匹配规则如下：<br/><div class="code">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt; <br/> &lt;RewriterConfig&gt;<br/> &lt;Rules&gt;<br/> &nbsp;&lt;RewriterRule&gt;<br/> &nbsp; &lt;LookFor&gt;www\.xaradio\.com&lt;/LookFor&gt;<br/> &nbsp; &lt;SendTo&gt;~/xaradio&lt;/SendTo&gt;<br/> &nbsp;&lt;/RewriterRule&gt;<br/> &nbsp;&lt;RewriterRule&gt;<br/> &nbsp; &lt;LookFor&gt;xaradio\.com&lt;/LookFor&gt;<br/> &nbsp; &lt;SendTo&gt;~/xaradio&lt;/SendTo&gt;<br/> &nbsp;&lt;/RewriterRule&gt;<br/> &lt;/Rules&gt;<br/> &nbsp;&lt;/RewriterConfig&gt;</div><br/><br/>最后说明一下，根目录下一定要有一个Default.aspx如果你的所有域名都按照这种方式“绑定”那么根目录下放置一个空Default.aspx就可以，该文件来“欺骗IIS” ，防止直接使用域名访问的时候IIS查找不到default或者index文件就报404错误，等到该检查过去之后权利已经移交到aspnet_isapi.dll那里了。<br/><br/>
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/164/</link>
<title><![CDATA[PA的一个特别版本 phparticle201special]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Sat, 24 Sep 2005 06:55:04 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/164/</guid> 
<description>
<![CDATA[ 
	<a href="up/phparticle_2.0.1_special.rar" target="_blank">up/phparticle_2.0.1_special.rar</a>
]]>
</description>
</item><item>
<link>http://blog.lioyu.com/post/94/</link>
<title><![CDATA[一个自动跳转的代码,抄自FD首页~]]></title> 
<author>LiuYu &lt;taiyuan123@gmail.com&gt;</author>
<category><![CDATA[网络建站]]></category>
<pubDate>Sun, 14 Aug 2005 03:18:32 +0000</pubDate> 
<guid>http://blog.lioyu.com/post/94/</guid> 
<description>
<![CDATA[ 
	&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Access denied!&lt;/TITLE&gt;<br/>&lt;META http-equiv=Content-Type content=&quot;text/html; charset=gb2312&quot;&gt;&lt;/HEAD&gt;<br/>&lt;BODY bgColor=#ffffff&gt;<br/>&lt;SCRIPT language=j avascript type=text/j avascript&gt;<br/>window.location=&quot;<a href="http://www.lioyu.com/&quot;;" target="_blank">http://www.lioyu.com/&quot;;</a><br/>&lt;/SCRIPT&gt;<br/>&lt;/BODY&gt;&lt;/HTML&gt;<br/><br/><br/>主要部分是:<br/><br/>&lt;SCRIPT language=j avascript type=text/j avascript&gt;<br/>window.location=&quot;<a href="http://www.lioyu.com/&quot;;" target="_blank">http://www.lioyu.com/&quot;;</a><br/>&lt;/SCRIPT&gt;<br/><br/>插入到&lt;body&gt;里~
]]>
</description>
</item>
</channel>
</rss>