<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Now Here I Stand.</title><link>http://www.flyz.com.cn/</link><description>在蒼白青春的反光中 性命本體與生活表相之差異 眾人胡話金屬疲憊字衰竭</description><generator>RainbowSoft Studio Z-Blog 1.8 Spirit Build 80722</generator><language>zh-CN</language><copyright>Copyright 2004-2008 Lucien Won. All Rights Reserved.</copyright><pubDate>Thu, 20 Nov 2008 11:50:27 +0800</pubDate><item><title>网站设计之合理架构css</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/13.html</link><pubDate>Tue, 18 Nov 2008 15:35:14 +0800</pubDate><guid>http://www.flyz.com.cn/post/13.html</guid><description><![CDATA[<br/><a href="http://www.im286.com/viewthread.php?tid=1687104&extra=page%3D2"  target="_blank">http://www.im286.com/viewthread.php?tid=1687104&extra=page%3D2</a><br/>架构css<br/>在当前浏览器普遍支持的前提下，css被我们赋予了前所未有的使命。然而依赖css越多，样式表文件就会变得越大越复杂。与此同时，文件维护和组织的考验也随之而来。<br/>(曾几何时)只要一个css文件就够了——所有规则(rule)汇聚一堂，增删改都很方便——可这种日子早已远去。(现在)建立新网站时，必须花点时间好好筹划怎么组织和架构css。<br/>文件的组织<br/>构建css系统的第一步是大纲的拟定。(我认为)css组织规划的重要性堪比网站目录结构。(htmlor注:用词夸张一点，让你加深记忆) 没有哪种方案放之四海而皆准，因此我们会讨论一些基本的组织方案，以及它们各自的利弊。<br/>主css文件<br/>通常可以使用一个主css文件，来放置所有页面共享的规则。这个文件会包含默认的字体、链接、页眉和其他等样式。有了主css文件之后，我们开始探讨高级组织策略。<br/>方法一:基于原型<br/>最基本的策略是基于原型页面(archetype page)分离css文件。假如一个网站的首页、子页面和组合页设计不同，就可以采用基于原型的策略。(这种策略下)每个页面都会有专属的css文件。<br/>在原型数量不多的情况下，这个方法简单明了、行之有效。然而，当页面元素并不按部就班的位于各个原型页时，问题就出现了。如果子页面和组合页共享某些元素，而首页却没有，我们应该怎么做呢?<br/>把共享元素放入主css文件。这虽不是最纯正的解决办法，却适用于某些具体情况。可是如果网站庞大，(这样做的话)主css文件会迅速膨胀——这就违背了分离文件的初衷:避免导入不必要的大文件。<br/>在组合页和子页面的css文件里各放一份样式代码。(这么做)就意味着要维护冗余代码，很显然我们不想这样。<br/>创建一个新的文件，由这两种页面共享。这听起来不错。不过假如只有10行代码，我们创建这个文件仅仅是为了共享这10行代码?(htmlor注:杀鸡用牛刀?) 这方法很纯粹，但如果网站庞大有很多对页面共享很少量元素时(htmlor注:比如30对页面分别共享10行代码)，就显得很笨重了。<br/>创建一个单独的css文件，包含所有共享元素的样式。这方法可能比较简单，却要取决于网站的大小和共享元素的多少。有种情况会很烦:导入了一个很大的css文件，但页面只用到一小部分样式——还是那句话，这违背了分离文件的初衷。<br/>这就是我所说的重叠的两难(overlap dilemma)。零碎css规则的重叠不一而足，并没有一个完全清晰无误的方案来组织它们。<br/>方法二:基于页面元素/块<br/>如果网站使用服务器端include，这个方法会很不错。举例说明，如果使用页眉include，它会有自己相应的css文件。页脚或者其他部分的include可以如法炮制，只须导入自己的css文件。这个方法简单干净，不过可能会产生很多小css文件。<br/>举例来说，假如页脚的样式只需要20行css代码，单独创建一个文件就划不来了。而且这个方法会导致每个页面都包含一堆css文件——因为有多少include，就得有多少css文件。<br/>方法三:基于标记<br/>这个方案直观实际，与前一个类似。如果网站共有30个页面，其中10个含有form，那么可以创建一个css文件专门处理form的样式，只在这10个页面导入它。如果另外10个页面含有table，就创建一个文件专门处理table样式……诸如此类。<br/>另外的组织技巧<br/>除了用主观的方法组织文件，我们还要考虑如打印、手持设备和屏幕等多种媒体类型。这虽然已经很清楚的定义过，可依旧是建立文件结构时应该考虑的一个因素。一旦必须支持多种媒体类型，主css文件里的某些规则可能就得重新考虑。<br/>另外，品牌联合也可能是一个重要因素。(htmlor注:如google和nike联手推出的joga) 如果涉及品牌联合，你就得考虑哪些元素应该调整以适应另一品牌。比如分别使用不同的css文件等。<br/>还有一个常被忽略的技巧:使用嵌套的@import语句。只包含一连串@import语句，或者再加几句css规则，就能创建一个css文件。用这个方法完全可以创建网站的主css文件(用@import导入各部分的样式文件)。假如网站的每个页面都导入了4到5个不同的css文件，无疑你应该考虑使用这个技巧。<br/>规则和选择器的组织<br/>谈完了文件组织，接着讨论一下怎么组织文件里的东西吧。很自然，我们希望在文件里畅通无阻的浏览，迅速找到要编辑的选择器(selector)或规则。<br/>冗余 vs. 附属<br/>正如Dave Shea在其文章《冗余 vs. 附属》(Redundancy vs. Dependency)里所说的，你必须不断了解级联(cascade)。你要决定是对选择器编组(意味着附属)，还是把它们分离(意味着冗余)。编组可以保持代码简洁扼要，可是会建立附属关系，导致维护开销增加。如果不编组，就会增加文件大小，让相似的选择器保持一致变得困难。只有做好这种权衡、取舍，才能每次都作出正确的决定。<br/>按相互关系/上下文编组<br/>既然文件组织可以是主观的，那么显然，按照规则和选择器与其他部分的相互关系来进行编组是最好的方法。举例说明，假设你用容器、页眉和页脚来完成布局，就应该把它们编成一组。<br/>这似乎很简单，其实不然。比如，把页眉中的导航加入css时，是将它跟父元素编组还是独立编组?这种情况下，要视乎规则的上下文。通常，页眉与页面布局相关，应该与其他布局元素一起编组。而导航是页眉的一块，应该和页眉的其他块编组，而不是页眉本身。<br/>使用注释<br/>跟大多数代码类似，注释是组织良好与否的关键。应该根据css的控制范围，清楚的标注每节(section)。最好确保注释视觉突出，以便在内容滚动、一目十行时快速定位。<br/>Doug Bowman在其文章《css组织技巧之一:标记》(CSS organization Tip #1: Flags)里把css注释玩得高明之极。他详细说明了在节名之前加上等号，以便使用文本编辑器的查找功能迅速跳到某节。<br/>别忘了<br/>你应该细致认真的了解了特异性、级联和继承，并善用它们。它们之中的每一项都可以是你最可怕的敌人，也可以是你最友善的朋友。当建立庞大的网站时，是否理解这些细微精妙之处，决定了你所构建的是坚如磐石的系统，还是经不起风雨的豆腐渣工程。(htmlor注:这句完全意译，比较爽)<br/>属性的组织<br/>现在我们了解了文件的组织，也知道了文件内规则的组织，但还有一个重要的组织环节(没有提到)，那就是属性(attribute)。虽然属性比前两个概念更简单，可是还有一些非常好的、能够保持规则整洁的方法很值得一提。<br/>按字母排序<br/>提到属性，如果说需要遵循什么原则的话，那就是:按-字-母-排-序。其实这招对于属性浏览帮助不大，不过可以防止属性值覆盖这种偶然事件的发生。<br/>举个例子吧，已经数不清有多少次，我为某个选择器定义过了margin值，之后的某天无意间又加了一个(或前或后)。(这种情况下)后一个属性自然会起作用。假设不知道第二个属性存在，不管我怎么调整第一个属性值、刷新浏览器，也看不到页面变化。(htmlor注:这个问题我深有体会) 如果按照字母顺序排列，你就会发现margin被定义了两次(因为它们挨在一起)，这个问题自然可以避免。<br/>优先项<br/>当网站复杂、牵涉太多css文件时，会建立大量的附属关系。一旦需要定制某个元素特有的样式，!important选项似乎是最佳选择。没错，!important是能解一时之需，但最好搞清楚导致问题的根源，然后根据级联关系决定是否真的需要用它。<br/>如果你对上文提到的特异性、级联和继承很熟悉，大可不必抱着!important一颗树不放。(htmlor注:整片森林等着你~) 当然它还是会派上用场，不过使用之前要对具体情况了然于胸。千万不要因为不知问题的症结所在而把!important当作捷径或是补救方案。<br/>小结<br/>当我们变得依赖css而使样式表日渐复杂时，就需要正确的计划来避免犯错，并使代码易于维护。既然完美无缺的方案并不存在，那么了解css的工作方式以及文件、选择器和属性的多种组织方案，无疑有助于我们写出优质的代码，经受住时间考验。 ]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/13.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=13</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=13&amp;key=36cca09e</trackback:ping></item><item><title>用CSS打造抽屉菜单</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/12.html</link><pubDate>Tue, 18 Nov 2008 15:26:04 +0800</pubDate><guid>http://www.flyz.com.cn/post/12.html</guid><description><![CDATA[来源：http://www.im286.com/viewthread.php?tid=1675285&extra=page%3D2 <br/><p class="code"><code>&lt;/p&gt;&lt;p&gt;&nbsp;&lt;!--ctype&nbsp;html&nbsp;public&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"&lt;a&nbsp;href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt&lt;/a&gt;--&gt;&lt;br&nbsp;/&gt;&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=utf-8"&nbsp;/&gt;&lt;br&nbsp;/&gt;&lt;meta&nbsp;content=""&nbsp;name="title"&nbsp;/&gt;&lt;br&nbsp;/&gt;&lt;meta&nbsp;content=""&nbsp;name="author"&nbsp;/&gt;&lt;br&nbsp;/&gt;&lt;meta&nbsp;content=""&nbsp;name="subject"&nbsp;/&gt;&lt;br&nbsp;/&gt;&lt;meta&nbsp;content="en"&nbsp;name="language"&nbsp;/&gt;&lt;br&nbsp;/&gt;&lt;meta&nbsp;content=""&nbsp;name="keywords"&nbsp;/&gt;&lt;style&nbsp;type="text/css"&gt;&lt;/p&gt;&lt;p&gt;&nbsp;&nbsp;&nbsp;#leftside{&nbsp;float:left;&nbsp;background-color:#00468C;&nbsp;width:150px;&nbsp;margin:0&nbsp;auto;&nbsp;text-align:center;&nbsp;padding:10px&nbsp;0;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside.show_about&nbsp;p.about{&nbsp;display:block;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside.meta&nbsp;p.meta{&nbsp;display:block;&nbsp;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside.ads&nbsp;p.ads{&nbsp;display:block;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside&nbsp;a{&nbsp;display:block;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside&nbsp;a{&nbsp;text-decoration:none;&nbsp;color:black;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside&nbsp;a:hover{&nbsp;background:#FFD7EB&nbsp;url(images/common/bb_url.gif)&nbsp;no-repeat&nbsp;10px&nbsp;center;&nbsp;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#leftside&nbsp;.class1&nbsp;a:hover{&nbsp;background:#FFD7EB&nbsp;url(images/common/bb_url.gif)&nbsp;no-repeat&nbsp;10px&nbsp;center;}&lt;/p&gt;&lt;p&gt;&nbsp;&nbsp;&nbsp;p.top{&nbsp;background-color:#F9E006;&nbsp;line-height:2;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;p.normal{&nbsp;background:#8CC6FF&nbsp;url(images/common/bb_url.gif)&nbsp;no-repeat&nbsp;10px&nbsp;center;&nbsp;margin:10px;&nbsp;font:16px/1.5&nbsp;宋体;&nbsp;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;p.about,p.meta,p.ads{&nbsp;display:none;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;.class1{&nbsp;display:block;&nbsp;margin:10px&nbsp;20px;&nbsp;background:#fff&nbsp;url(images/common/bb_url.gif)&nbsp;no-repeat&nbsp;10px&nbsp;center;&nbsp;font:14px/1.5&nbsp;宋体;}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/p&gt;&lt;p&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/style&gt;&lt;script&nbsp;language="JavaScript"&nbsp;type="text/javascript"&gt;&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shq={};&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shq.$=function(o){return&nbsp;typeof(o)=='string'?document.getElementById(o):o}&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--&gt;&lt;br&nbsp;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;&lt;br&nbsp;/&gt;&lt;div&nbsp;id="leftside"&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="top"&gt;&nbsp;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&gt;&lt;a&nbsp;href="#"&gt;首页&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&nbsp;onclick="shq.$('leftside').className=shq.$('leftside').className==''?'show_about':''"&gt;&lt;a&nbsp;href="#"&gt;关于宣广&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;!--宣广--&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;公司介绍&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;宣广结构&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;宣广优势&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;宣广历程&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;宣广荣誉&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;宣广团队&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="about&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;文化交流&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;!--宣广--&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&gt;&lt;a&nbsp;href="#"&gt;公司新闻&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&gt;&lt;a&nbsp;href="#"&gt;服务项目&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&nbsp;onclick="shq.$('leftside').className=shq.$('leftside').className==''?'meta':''"&gt;&lt;a&nbsp;href="#"&gt;宣广媒介&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;!--媒介--&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="meta&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;独家媒体&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="meta&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;其它媒体&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="meta&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;快客车载&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="meta&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;户外发布&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;!--媒介--&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&nbsp;onclick="shq.$('leftside').className=shq.$('leftside').className==''?'ads':''"&gt;&lt;a&nbsp;href="#"&gt;成功客户&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;!--客户--&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="ads&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;客户商标&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="ads&nbsp;class1"&gt;&lt;a&nbsp;href="#"&gt;成功案例&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;!--客户--&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&gt;&lt;a&nbsp;href="#"&gt;人才招聘&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;p&nbsp;class="normal"&gt;&lt;a&nbsp;href="#"&gt;联系我们&lt;/a&gt;&lt;/p&gt;&lt;br&nbsp;/&gt;&lt;/div&gt;&lt;br&nbsp;/&gt;&lt;div&nbsp;id="right"&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;</code></p>]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/12.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=12</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=12&amp;key=8e1869b4</trackback:ping></item><item><title>支持IE和FF的div＋css选项卡</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/11.html</link><pubDate>Tue, 18 Nov 2008 15:25:10 +0800</pubDate><guid>http://www.flyz.com.cn/post/11.html</guid><description><![CDATA[<p class="code"><code>&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN"&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;&nbsp;<br/>&lt;html&nbsp;xmlns="http://www.w3.org/1999/xhtml"&gt;&nbsp;<br/>&lt;head&gt;&nbsp;<br/>&lt;meta&nbsp;http-equiv="Content-Type"&nbsp;content="text/html;&nbsp;charset=gb2312"&nbsp;/&gt;&nbsp;<br/>&lt;title&gt;Tab&nbsp;-&nbsp;飞飞+PR&lt;/title&gt;&nbsp;<br/><br/>&lt;style&nbsp;type="text/css"&nbsp;media="all"&gt;&nbsp;<br/>/*TAB布局*/&nbsp;<br/>#tab&nbsp;*&nbsp;{font-size:12px;}&nbsp;<br/>#tab&nbsp;h3&nbsp;a&nbsp;{display:inline-block;}&nbsp;<br/>#tab&nbsp;h3&nbsp;a&nbsp;{display:block;}&nbsp;<br/>#tab&nbsp;{position:relative;}&nbsp;<br/>#tab&nbsp;h3,#tab&nbsp;ul,#tab&nbsp;div,#tab&nbsp;li&nbsp;{margin:0;padding:0;list-style-type:none;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;{position:absolute;left:0;top:0;float:left;display:block;width:100px;height:30px;font-size:0;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li#tab2&nbsp;{left:100px;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li#tab3&nbsp;{left:200px;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li#tab4&nbsp;{left:300px;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;div&nbsp;{position:absolute;clear:both;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;div#oDIV2&nbsp;{left:-100px;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;div#oDIV3&nbsp;{left:-200px;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;div#oDIV4&nbsp;{left:-300px;}&nbsp;<br/><br/>/*TAB-标题修饰*/&nbsp;<br/>#tab,#tab&nbsp;ul&nbsp;li&nbsp;div,#tab&nbsp;ul&nbsp;li&nbsp;div&nbsp;li&nbsp;{width:450px;}/*&nbsp;设置总宽度[width]&nbsp;*/&nbsp;<br/>#tab&nbsp;{height:200px;background:#ccc;overflow:hidden;}/*&nbsp;设置总高度[height]、标题背景颜色[background]&nbsp;*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;h3&nbsp;a&nbsp;{height:18px;padding:5px&nbsp;0&nbsp;2px;margin:5px&nbsp;0px&nbsp;0px&nbsp;5px;text-align:center;border:solid&nbsp;#ccc&nbsp;1px;border-bottom:none;color:#333;}/*&nbsp;标题默认状态&nbsp;*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;h3&nbsp;a:hover&nbsp;{background-color:#ddd;border-color:#fff;}/*&nbsp;鼠标经过状态&nbsp;*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li.up&nbsp;h3&nbsp;a&nbsp;{background:#999;border-color:#fff&nbsp;#999&nbsp;#999&nbsp;#fff;color:#fff;}/*&nbsp;当前窗口状态&nbsp;*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;div&nbsp;{border:solid&nbsp;#999;border-width:1px&nbsp;0;background:#f7f7f7;height:167px;}/*&nbsp;设置内容高度[height]、背景颜色[background]、上下分割线[border]&nbsp;*/&nbsp;<br/>/*TAB1效果[ol/li]*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;#oDIV1&nbsp;ol&nbsp;{margin:8px;padding:0;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;#oDIV1&nbsp;ol&nbsp;li&nbsp;{position:static;float:none;font-size:0;height:auto;}&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;#oDIV1&nbsp;ol&nbsp;li&nbsp;a&nbsp;{font-size:12px;display:block;padding:5px&nbsp;0&nbsp;1px;}&nbsp;<br/>/*TAB2效果[img]*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;#oDIV2&nbsp;img&nbsp;{margin:8px;border:none;}&nbsp;<br/>/*TAB3效果[iframe]*/&nbsp;<br/>#tab&nbsp;ul&nbsp;li&nbsp;#oDIV3&nbsp;iframe&nbsp;{border:none;width:440px;height:157px;margin:5px;}&nbsp;<br/>&lt;/style&gt;&nbsp;<br/><br/>&lt;script&nbsp;type="text/javascript"&gt;&nbsp;<br/>&lt;!--&nbsp;<br/>function&nbsp;toggleTo(img)&nbsp;<br/>{&nbsp;<br/>var&nbsp;ts=document.getElementById("tab").getElementsByTagName("div");&nbsp;<br/>for(i=1;i&lt;ts.length+1;i++){&nbsp;<br/>if(img==i)&nbsp;<br/>{&nbsp;<br/>document.getElementById("oDIV"+i).style.display&nbsp;=&nbsp;"";&nbsp;<br/>document.getElementById("oDIV"+i).parentNode.className+="&nbsp;up";&nbsp;<br/>}&nbsp;<br/>else{&nbsp;<br/>document.getElementById("oDIV"+i).style.display&nbsp;=&nbsp;"none";&nbsp;<br/>document.getElementById("oDIV"+i).parentNode.className="tab"+i;&nbsp;<br/>}&nbsp;<br/>}&nbsp;<br/>}&nbsp;<br/>--&gt;&nbsp;<br/>&lt;/script&gt;&nbsp;<br/><br/>&lt;/head&gt;&nbsp;<br/><br/>&lt;body&gt;&nbsp;<br/>&lt;div&nbsp;id="tab"&gt;&nbsp;<br/>&nbsp;&lt;ul&gt;&nbsp;<br/>&nbsp;&lt;li&nbsp;id="tab1"&nbsp;class="up"&gt;&lt;h3&gt;&lt;a&nbsp;href="####"&nbsp;onclick="javascript:toggleTo(1)"&gt;支付&lt;/a&gt;&lt;/h3&gt;&nbsp;<br/>&nbsp;&lt;!--&nbsp;onclick鼠标释放，onmousemove鼠标经过。&nbsp;--&gt;&nbsp;<br/>&nbsp;&lt;div&nbsp;id="oDIV1"&gt;&nbsp;<br/>&nbsp;&lt;ol&gt;&nbsp;<br/>&nbsp;&lt;li&gt;&lt;a&nbsp;href="####"&gt;&lt;span&gt;使该元素在FireFox下获得高度从而显示背景&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&gt;&lt;a&nbsp;href="####"&gt;&lt;span&gt;为了保证浏览器的兼容性&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&gt;&lt;a&nbsp;href="####"&gt;&lt;span&gt;文本对齐方式改回默认left&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&gt;&lt;a&nbsp;href="####"&gt;&lt;span&gt;左右自适应[FireFox居中方式]&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&gt;&lt;a&nbsp;href="####"&gt;&lt;span&gt;内容对齐方式为居中[IE居中方式]&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&gt;&lt;a&nbsp;href="####"&gt;&lt;span&gt;内容对齐方式为居中[IE居中方式]&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;/ol&gt;&nbsp;<br/>&nbsp;&lt;/div&gt;&nbsp;<br/>&nbsp;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&nbsp;id="tab2"&gt;&lt;h3&gt;&lt;a&nbsp;href="####"&nbsp;onclick="javascript:toggleTo(2)"&gt;软件下载&lt;/a&gt;&lt;/h3&gt;&nbsp;<br/>&nbsp;&lt;div&nbsp;id="oDIV2"&nbsp;style="display:none;"&gt;&nbsp;<br/>&nbsp;&lt;a&nbsp;href="####"&gt;&lt;img&nbsp;src="http://blogbeta.blueidea.com/images/img/Rerl.gif"&nbsp;alt="播放软件下载"&nbsp;/&gt;&lt;/a&gt;&nbsp;<br/>&nbsp;&lt;a&nbsp;href="####"&gt;&lt;img&nbsp;src="http://blogbeta.blueidea.com/images/img/linkedu.gif"&nbsp;alt="播放软件下载"&nbsp;/&gt;&lt;/a&gt;&lt;/div&gt;&nbsp;<br/>&nbsp;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&nbsp;id="tab3"&gt;&lt;h3&gt;&lt;a&nbsp;href="####"&nbsp;onclick="javascript:toggleTo(3)"&gt;问题答疑&lt;/a&gt;&lt;/h3&gt;&nbsp;<br/>&nbsp;&lt;div&nbsp;id="oDIV3"&nbsp;style="display:none;"&gt;&lt;iframe&nbsp;frameborder="0"&nbsp;scrolling="auto"&nbsp;src="http://pr.idcx.com"&gt;&lt;/iframe&gt;&lt;/div&gt;&nbsp;<br/>&nbsp;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;li&nbsp;id="tab4"&gt;&lt;h3&gt;&lt;a&nbsp;href="####"&nbsp;onclick="javascript:toggleTo(4)"&gt;客服&lt;/a&gt;&lt;/h3&gt;&nbsp;<br/>&nbsp;&lt;div&nbsp;id="oDIV4"&nbsp;style="display:none;"&gt;&lt;a&nbsp;href="####"&gt;22222&lt;/a&gt;&lt;/div&gt;&nbsp;<br/>&nbsp;&lt;/li&gt;&nbsp;<br/>&nbsp;&lt;/ul&gt;&nbsp;<br/>&lt;/div&gt;&nbsp;<br/>&lt;/body&gt;&nbsp;<br/>&lt;/html&gt;</code></p>]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/11.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=11</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=11&amp;key=8a0ca4ec</trackback:ping></item><item><title>IE地址栏的秘密</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/10.html</link><pubDate>Tue, 18 Nov 2008 15:24:34 +0800</pubDate><guid>http://www.flyz.com.cn/post/10.html</guid><description><![CDATA[完全打开页面后,在该页的在地址栏或按Ctrl+O输入以下代码,回车! <br/><br/>1.显示网页中的所有图片  <br/>javascript:Ai7Mg6P='';for%20(i7M1bQz=0;i7M1bQz<document.images.length;i7M1bQz++){Ai7Mg6P+='<img%20src="/+document.images[i7M1bQz].src+"><br>'};if(Ai7Mg6P!=''){document.write('<center>'+Ai7Mg6P+'</center>');void(document.close())}else{alert('No%20images!')} <br/><br/>2.显示网页中除图片的其他  <br/>javascript:for(jK6bvW=0;jK6bvW<document.images.length;jK6bvW++){void(document.images[jK6bvW].style.visibility='hidden')} <br/><br/>3.网页缩小0.5倍  <br/>javascript:void(s=document.body.style);void(z=s.getAttribute('zoom'));if(z){s.setAttribute('zoom',(parseInt(z)-50)+'%');}else s.setAttribute('zoom','50%') <br/><br/>4.网页放大1.5倍  <br/>javascript:void(s=document.body.style);void(z=s.getAttribute('zoom'));if(z){s.setAttribute('zoom',(parseInt(z)+50)+'%');}else s.setAttribute('zoom','150%') <br/>5.显示网页源代码(对于加密过的可以直接显示其加密前的源代码)  <br/>javascript:s=document.documentElement.outerHTML;document.write('');document.body.innerText=s; ]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/10.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=10</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=10&amp;key=14a94c19</trackback:ping></item><item><title>Win2003IIS6.0+PHP521+Mysql5037+Zend326+phpmyadmin2</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/9.html</link><pubDate>Tue, 18 Nov 2008 15:19:43 +0800</pubDate><guid>http://www.flyz.com.cn/post/9.html</guid><description><![CDATA[Win2003+IIS6.0+MySql 5.0.37+PHP 5.2.1+ZendOptimizer 3.2.6+phpMyAdmin 2.10.0.2环境配置安装教程<br/>本次安装所使用到的相关软件如下：<br/>操作系统：Windows 2003 server IIS6.0<br/>PHP版本：php 5.2.1<br/>Mysql版本：mysql 5.0.37<br/>Zend版本：ZendOptimizer 3.2.6<br/>phpMyAdmin版本：phpMyAdmin 2.10.0.2<br/>最终实现效果：实现在用户本机环境下测试与调试Discuz!5.0等产品<br/>如果你是新手请认真仔细看完教程~~<br/>如果你有一定的经验了，在出现错误后也可在本文中找到相应错误的解决方法！<br/>按照本教程安装设置后将保证你能够正常运行 Discuz!论坛程序以及Mysql数据库管理程序phpmyadmin，目前本文是Win2003+IIS6.0+MySql 5.0.37+PHP 5.2.1+ZendOptimizer 3.2.6+phpMyAdmin 2.10.0.2环境配置最全面的教程文章，值得收藏。<br/>说明：本文是我个人原创文章，如果转载请注明：本文来自188财富论坛网 bbs.188bbs.cn，作者：wenjian  QQ：80866888    谢谢合作~<br/>本文发部后，接下来作者本人将发表相关服务器上的安全设置教程，如目录权限设置（不同的目录需要哪些权限？以及Discuz!论坛在服务器的目录权限如何设置等），网络安全设置，希望网友们多多支持188财富论坛，如果你支持本站就到我的188财富论坛上发表吧！同时也可在官方论坛发表，我会尽快帮助大家一起解决问题；当然我的知识也是有限的，有很多问题我本人也是不能够解决的，我非常希望能够和大家一起共同讨论关于服务器方面的安全知识，188财富论坛愿与所有有志朋友一起成长，一起飞翔~~~<br/>安装开始：因IIS6.0已经安装好，这一步相信大家都会操作，所以本文略过！<br/>1、在本机D盘下创建wwwroot、php5、Mysql、Zend共四个文件夹<br/>2、安装PHP v5.2.1<br/>1) 将下载的php-5.2.1-Win32.zip解压缩到D:\php5目录中<br/>2) 将目录中的php.ini-dist文件改名为php.ini，并把php.ini文件剪切放到 c:\windows 目录下（如果是2000系统，就放到 c:\winnt 目录）<br/>3) 把php5根目录下的php5ts.dll、libmysql.dll、libmcrypt.dll这三个文件放到系统的system32目录下，注意这三个文件是必需的。<br/>4) 打开c:\windows\php.ini文件<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>extension_dir = "./"<br/>改为<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>extension_dir = "d:\php5\ext"<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>;extension=php_mbstring.dll<br/>改为<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>extension=php_mbstring.dll<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>;extension=php_gd2.dll<br/>改为<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>extension=php_gd2.dll<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>;extension=php_mysql.dll<br/>改为<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>extension=php_mysql.dll<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>;extension=php_mcrypt.dll<br/>改为<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>extension=php_mcrypt.dll<br/>以上就是修改去掉前面的";"符号，使之支持相应功能，最后保存。<br/>3、配置IIS使之支持PHP<br/>1) 在“控制面板”-“管理工具”中找到并打开“Internet信息服务(IIS)管理器”<br/>2）找到“网站”-“默认网站”，右键点击“默认网站”，然后点击“属性”<br/>3）点击“ISAPI筛选器”，再点击“添加”按钮，在弹出的“筛选器属性”对话框中，依次填入 筛选器名称“php”，可执行文件“d:\php5\php5isapi.dll”，如下图所示（其中php5isapi.dll的路径可以按“浏览”按钮来选择），然后点击“确定”退出<br/>4）点击“主目录”标签，再点击“浏览”，把网站目录指向到d:\wwwroot<br/>5) 在主目录标签下点击“配置”，出现“应用程序配置”对话框，再点击“添加”按钮，在弹出的“添加/编辑应用程序扩展名映射”对话框中，<br/>在可执行文件位置中输入 d:\php5\php5iaspi.dll，在扩展名处输入 php，然后确定<br/>6) 点击“文档”标签，再点“添加”按钮，在弹出的“添加默认文档”对话框中，填入：index.php，然后确定<br/>7) 点击“Web 服务扩展”，再点击“添加一个新的 Web 服务扩展”，接着在弹出的“新建 Web 服务扩展”对话框中“扩展名”处输入 php，再点“添加”，在“文件路径”下输入 d:\php5\php5isapi.dll 确定，然后在“设置扩展状态为允许”前打上钩，最后确定退出。<br/>8) 为了验证我们刚才配置的环境是否能够正常运行php，首先我们新建一个文本，并输入以下内容<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/><?php<br/>phpinfo();<br/>?><br/>保存为phpinfo.php，并放入网站根目录（我这里是d:\wwwroot），在IE浏览器中输入http://localhost/phpinfo.php，回车后出现如下图所示信息，就证明系统已经支持PHP<br/>9) 到此php环境全部配置完成，现在你的网站已经可以运行正常的php程序了。<br/>4、安装MySql v5.0.37<br/>1）执行下载的mysql-essential-5.0.37-win32.msi，安装过程请按照以下图示进行安装，完成后将确保你的mysql正常运行。<br/>2）检测MySQL，键盘的Win + R，弹出运行对话框，输入cmd后回车，进入命令提示符，<br/>然后输入：“mysql -uroot –p”，回车后要求输入密码，我设的密码是123456，输入密码后按回车即可。<br/>现在可以看到如下成功的提示，表示全部安装成功<br/>5、安装ZendOptimizer v3.2.6<br/>1）执行下载的ZendOptimizer-3.2.6-Windows-i386.exe，安装过程请按照以下图示进行安装，完成后将确保你的Zend正常运行。<br/>2) Zend安装已全部成功完成。<br/>5、安装ZendOptimizer v3.2.6<br/>1）执行下载的ZendOptimizer-3.2.6-Windows-i386.exe，安装过程请按照以下图示进行安装，完成后将确保你的Zend正常运行。<br/>2) Zend安装已全部成功完成。<br/>6. 安装phpMyAdmin-2.10.0.2<br/>1）将下载的phpMyAdmin-2.10.0.2-all-languages.zip解压缩到当前文件夹，更名为phpMyAdmin，然后移动到网站根目录下，这里我的就是D:\wwwroot目录下面<br/>2）编辑D:\wwwroot\phpMyAdmin\libraries下的config.default.php<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['PmaAbsoluteUri'] = ''<br/>改成<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/'       //请将localhost改成你的实际浏览网址，在目录后面一定要加上“/”<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['blowfish_secret'] = ''<br/>改成<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['blowfish_secret'] = 'gfehwwriewyi'         //这里随便填写内容，只要不留空就行了<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['Servers'][$i]['host']          = 'localhost'<br/>改成<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['Servers'][$i]['host']          = 'localhost'     //说明：如果你是连接本机的数据库这里无需修改，如果连接的是远程数据库，请把localhost改成数据库实际的IP地址<br/>找到<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['Servers'][$i]['auth_type']     = 'config'<br/>改成<br/>[Copy to clipboard] [ - ]<br/>CODE:<br/>cfg['Servers'][$i]['auth_type']     = 'cookie'<br/>3）保存退出，打开浏览器输入http://localhost/phpmyadmin，即可进行相关操作<br/>至此为止，你的服务器环境已经全部配置成功，如果你要运行Discuz!论坛程序，只要解压缩到网站根目录（D:\wwwroot），比如我解压缩到 D:\wwwroot\bbs 下，然后打开IE浏览器，在地址栏中输入http://localhost/bbs/install.php后即可开始你的建站之旅了，怎么样简单吧：）<br/>7、安装Discuz!论坛<br/>1）将下载的Discuz!_5.5.0_SC_GBK.zip右键解压缩到Discuz!_5.5.0_SC_GBK目录，再将Discuz!_5.5.0_SC_GBK\upload整个目录复制到D:\wwwroot\目录下，并更名为bbs；同时为了使我们的网站可以被外网的用户浏览，我们必须给D:\wwwroot目录加入“Internet 来宾账户”的匿名访问权限，详细操作请按如下图示说明进行：<br/>按照以上操作完成后，你的论坛就可以正常安装，并且可以被Internet网络访问了。]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/9.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=9</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=9&amp;key=354dd760</trackback:ping></item><item><title>几个ASP应用中的应用函数块</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/8.html</link><pubDate>Tue, 18 Nov 2008 15:19:02 +0800</pubDate><guid>http://www.flyz.com.cn/post/8.html</guid><description><![CDATA[1，经常写些系统，那么一般都是从登录程序开始，每接一个系统就写一次登录，好麻烦。<br/><br/>干脆直接做个登录验证函数吧，对我来说，大都情况可以胜任了：）<br/><br/><br/><%<br/>Function chk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)<br/>dim cn_name,cn_pwd<br/>cn_name=trim(request.form(""&requestname&""))<br/>cn_pwd=trim(request.form(""&requestpwd&""))<br/>if cn_name="" or cn_pwd="" then<br/>response.Write("<script language=javascript>alert(""请将帐号密码填写完整，谢谢合作。"");history.go(-1)</script>")<br/>end if<br/>Set rs = Server.CreateObject ("ADODB.Recordset")<br/>sql = "Select * from "&tablename&" where "&namefield&"='"&cn_name&"'"<br/>rs.open sql,conn,1,1<br/>if rs.eof then<br/>response.Write("<script language=javascript>alert(""没有该会员ID，请确认有没有被申请。"");history.go(-1)</script>")<br/>else<br/>if rs(""&pwdfield&"")=cn_pwd then <br/>session("cn_name")=rs(""&namefield&"")<br/>response.Redirect(reurl)<br/>else<br/>response.Write("<script language=javascript>alert(""提醒，您的帐号和密码是不吻合。注意数字和大小写。"");history.go(-1)</script>")<br/>end if<br/>end if<br/>rs.close <br/>Set rs = Nothing<br/>End Function<br/>%><br/><br/><br/><br/><br/>参数说明：<br/>chk_regist(requestname,requestpwd,tablename,namefield,pwdfield,reurl)<br/><br/>requestname 为接受HTML页中输入名称的INPUT控件名<br/>requestpwd 为接受HTML页中输入密码的INPUT控件名<br/>tablename 为数据库中保存注册信息的表名<br/>namefield 为该信息表中存放用户名称的字段名<br/>pwdfield 为该信息表中存放用户密码的字段名<br/>reurl 为登录正确后跳转的页<br/><br/>引用示例如下：<br/><br/><br/><%<br/>call chk_regist("b_name","b_pwd","cn_admin","cn_name","cn_pwd","admin.asp")<br/>%><br/><br/><br/><br/>调试地址：http://www.cnbruce.com/test/function/regist.asp <br/><br/><br/>2，经常有可能对某个事物进行当前状态的判断，一般即做一字段（数值类型，默认值为0）<br/>通过对该字段值的修改达到状态切换的效果。那么，我又做了个函数，让自己轻松轻松。<br/><br/><br/><%<br/>Function pvouch(tablename,fildname,autoidname,indexid)<br/>dim fildvalue<br/>Set rs = Server.CreateObject ("ADODB.Recordset")<br/>sql = "Select * from "&tablename&" where "&autoidname&"="&indexid<br/>rs.Open sql,conn,2,3<br/>fildvalue=rs(""&fildname&"")<br/>if fildvalue=0 then<br/>fildvalue=1<br/>else<br/>fildvalue=0<br/>end if<br/>rs(""&fildname&"")=fildvalue<br/>rs.update<br/>rs.close <br/>Set rs = Nothing<br/>End Function<br/>%><br/><br/><br/><br/><br/>参数说明：<br/>pvouch(tablename,fildname,autoidname,indexid)<br/><br/>tablename 该事物所在数据库中的表名<br/>fildname 该事物用以表明状态的字段名（字段类型是数值型）<br/>autoidname 在该表中的自动编号名<br/>indexid 用以修改状态的对应自动编号的值<br/><br/>引用示例如下：<br/><br/><br/><%<br/>dowhat=request.QueryString("dowhat")<br/>p_id=cint(request.QueryString("p_id"))<br/><br/>if dowhat="tj" and p_id<>"" then<br/>call pvouch("cn_products","p_vouch","p_id",p_id)<br/>end if<br/>%><br/><br/><%if rs("p_vouch")=0 then%><br/><a href=showpro.asp?dowhat=tj&p_id=<%=rs("p_id")%>>推荐</a><br/><%else%><br/><a href=showpro.asp?dowhat=tj&p_id=<%=rs("p_id")%>>取消推荐</a><br/><%end if%><br/><br/><br/><br/><br/>调试地址：http://www.cnbruce.com/test/function/showpro.asp <br/><br/>3，为很多中小企业写站点，一般产品展示是个大项目，那么做成的页面也就不同。<br/>要不就是横排来几个，要不就是竖排来几个，甚至全站要翻来覆去的搞个好几次，麻烦也很累。<br/>索性写个函数能缓解一下，于是就成了下面<br/><br/><br/><%<br/>function showpros(tablename,topnum,fildname,loopnum,typenum)<br/>Set rs = Server.CreateObject ("ADODB.Recordset")<br/>sql = "Select top "&topnum&" * from "&tablename<br/>rs.Open sql,conn,1,1<br/>if rs.eof and rs.bof then<br/>response.Write("暂时无该记录")<br/>else<br/>response.Write("<table width='100%'>")<br/>for i=1 to rs.recordcount<br/>if (i mod loopnum=1) then<br/>response.write"<tr>"<br/>end if<br/>select case typenum<br/>case "1"<br/>response.Write("<td><table width='100%'><tr><td bgcolor=red width='50%'>")<br/>response.Write(rs(""&fildname&""))<br/>response.Write("</td><td bgcolor=black>")<br/>response.Write("方式1之"&i&"记录")'此处的“方式1”可以替换显示为其余字段的值<br/>response.Write("</td></tr>")'如果字段比较多，继续添加新个表格行来显示<br/>response.Write("</table></td>")<br/>case "2"<br/>response.Write("<td><table width='100%'><tr><td bgcolor=red>")<br/>response.Write(rs(""&fildname&""))<br/>response.Write("</td></tr>")<br/>response.Write("<tr><td bgcolor=black>")<br/>response.Write("方式2之"&i&"记录")<br/>response.Write("</td></tr>")<br/>response.Write("</table></td>")<br/>end select<br/>if (i mod loopnum=0) then<br/>response.write"</tr>"<br/>end if<br/>rs.movenext<br/>next<br/>response.Write("</table>")<br/>end if<br/>rs.close <br/>Set rs = Nothing<br/>end function<br/>%><br/><br/><br/><br/><br/>参数说明：showpros(tablename,topnum,fildname,loopnum,typenum)<br/><br/>whichpro为选择何类型的产品种类<br/>topnum表示提取多少条记录<br/>fildname表示调试显示的字段，具体应用的时候可以省去该参数，在函数内部直接使用<br/>loopnum表示显示的循环每行的记录条数<br/>typenum表示循环显示的方法：目前分了两类，横向并列、纵向并列显示同一数据记录行的不同记录<br/><br/>引用示例如下：<br/><br/><br/><%<br/>if request.form("submit")<>"" then<br/>topnum=request.form("topnum")<br/>loopnum=request.form("loopnum")<br/>typenum=request.form("typenum")<br/>else<br/>topnum=8<br/>loopnum=2<br/>typenum=1<br/>end if<br/>%><br/><%call showpros("cn_products",topnum,"p_name",loopnum,typenum)%><br/><form action=index.asp method=post>显示的记录总数：<input name=topnum value=<%=topnum%>><br/>显示的行循环数：<input name=loopnum value=<%=loopnum%>><br/>显示的方式类型：<select name=typenum><option value="1">方式1</option><option value="2">方式2</option></select><br/><input type=submit name=submit value=Sure><br/></form> ]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/8.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=8</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=8&amp;key=845672ae</trackback:ping></item><item><title>心情小日记</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/7.html</link><pubDate>Tue, 18 Nov 2008 15:18:10 +0800</pubDate><guid>http://www.flyz.com.cn/post/7.html</guid><description><![CDATA[还是灰常郁闷。狗日的。<br/>于是我又来写一价钱我昨天的新发现。<br/>我昨天的昨天发现我带过来的那本发霉的初中日记。<br/>老子发现一个黑日白的日记。<br/>等于说是写于911事件的第二天。<br/>那一天只有一句话：<br/>美国被炸了，活该。。<br/>我真是个可爱的小青年。]]></description><category>日记</category><comments>http://www.flyz.com.cn/post/7.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=7</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=7&amp;key=640b6f0e</trackback:ping></item><item><title>很奇怪的问题</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/6.html</link><pubDate>Tue, 18 Nov 2008 15:10:07 +0800</pubDate><guid>http://www.flyz.com.cn/post/6.html</guid><description><![CDATA[国庆节回家的时候，有一天BOSS打电话来，说服务器又出问题了。<br/>上去看，C盘空间没有了，用批处理清除一下，清理出来1G多的垃圾，删除之，重启IIS，没问题了。<br/><p class="code"><code>@echo&nbsp;off<br/>pause<br/>echo&nbsp;正在清理系统垃圾文件，请稍等......<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\*.tmp<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\*._mp<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\*.log<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\*.gid<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\*.chk<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\*.old<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%systemdrive%\recycled\*.*<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%windir%\*.bak<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;%windir%\prefetch\*.*<br/>rd&nbsp;/s&nbsp;/q&nbsp;%windir%\temp&nbsp;&&nbsp;md&nbsp;%windir%\temp<br/>del&nbsp;/f&nbsp;/q&nbsp;%userprofile%\cookies\*.*<br/>del&nbsp;/f&nbsp;/q&nbsp;%userprofile%\recent\*.*<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;"%userprofile%\Local&nbsp;Settings\Temporary&nbsp;Internet&nbsp;Files\*.*"<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;"%userprofile%\Local&nbsp;Settings\Temp\*.*"<br/>del&nbsp;/f&nbsp;/s&nbsp;/q&nbsp;"%userprofile%\recent\*.*"<br/>echo&nbsp;清理系统垃圾完成！<br/>echo.&nbsp;&&nbsp;pause</code></p>可是没过多久又出问题了，这一次用批处理完全没用，这一次上面这个批处理完全没用了，随便怎么清除也都只有一点点空间。因为大概知道是IIS应用程序池出的问题，于是在C盘搜索w3wp看有没有日志，发现C:\WINDOWS\PCHEALTH\ERRORREP\UserDumps这个目录下有好几个扩展名为*.hdm的文件，开头为w3wp.exe，根据文件名格式可以分析出来大概是什么错误日志记录文件。删除之，一共清理出来6个多G。果然，没过一会，又看见这个文件冒出来了，而且体积增长速度飞快。<br/>没办法，只有写一个批处理任务，每隔5分钟清理一次。<br/><p class="code"><code>cd&nbsp;C:\WINDOWS\PCHEALTH\ERRORREP\UserDumps<br/>del&nbsp;*exe*.*</code></p>再看系统日志，发现大概是程序有问题，产生的，不过我难得管了。。。又不是我写的。]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/6.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=6</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=6&amp;key=dc151b96</trackback:ping></item><item><title>Typetree ASP目录树函数 V1.0.0</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/ASPtypetreev100.html</link><pubDate>Tue, 18 Nov 2008 15:05:30 +0800</pubDate><guid>http://www.flyz.com.cn/post/ASPtypetreev100.html</guid><description><![CDATA[自己无聊的时候写的，支持无限级别。<br/><p class="code"><code>&lt;%<br/>'------------------------------------------------------'<br/>'*&nbsp;Typetree&nbsp;ASP目录树函数&nbsp;V1.0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<br/>'*&nbsp;Copyright&nbsp;(c)&nbsp;2008&nbsp;Lucien&nbsp;Won&nbsp;(http://www.9box.net)&nbsp;'<br/>'*&nbsp;$Date:&nbsp;2008-10-18&nbsp;(Sta,&nbsp;18&nbsp;Oct&nbsp;2008)&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'<br/>'------------------------------------------------------'<br/>'连接数据库<br/>set&nbsp;conn=server.createobject("ADODB.CONNECTION")<br/>connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data&nbsp;Source="&nbsp;&&nbsp;Server.MapPath("tree.mdb")<br/>conn.open&nbsp;connstr<br/>'分类树函数<br/>function&nbsp;readtype(topid,level)<br/>set&nbsp;rsreadtype=&nbsp;Server.CreateObject("adodb.recordset")<br/>sql="select&nbsp;*&nbsp;from&nbsp;typetree&nbsp;where&nbsp;typetopid="&topid&"&nbsp;and&nbsp;typelevel="&level&""<br/>rsreadtype.open&nbsp;sql,conn,1,1<br/>for&nbsp;i=&nbsp;2&nbsp;to&nbsp;level<br/>li=li&"&nbsp;&nbsp;"<br/>next<br/>do&nbsp;while&nbsp;not&nbsp;rsreadtype.eof<br/>if&nbsp;rsreadtype("typelevel")=1&nbsp;then<br/>response.Write&nbsp;rsreadtype("typetitle")&"&lt;br&gt;"<br/>else<br/>response.Write&nbsp;li&"|-"&rsreadtype("typetitle")&"&lt;br&gt;"<br/>end&nbsp;if<br/>response.Write&nbsp;readtype(rsreadtype("typeid"),rsreadtype("typelevel")+1)<br/>rsreadtype.movenext<br/>loop<br/>rsreadtype.close<br/>set&nbsp;rsreadtype=nothing<br/>end&nbsp;function<br/>'读取分类树<br/>call&nbsp;readtype(0,1)<br/>%&gt;</code></p>点击下载此文件：<a href="http://www.flyz.com.cn/upload/TypeTreev1.0.0.rar" target="_blank">TypeTreev1.0.0.rar</a><br/>]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/ASPtypetreev100.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=5</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=5&amp;key=b628166d</trackback:ping></item><item><title>ASP与数据库链接的几种方法</title><author>a@b.com (lucienx)</author><link>http://www.flyz.com.cn/post/3.html</link><pubDate>Tue, 18 Nov 2008 14:59:51 +0800</pubDate><guid>http://www.flyz.com.cn/post/3.html</guid><description><![CDATA[一、MS Access 数据库<br/>1、OLE[推荐]<br/>Dim Conn,ConnStr,DBPath<br/>DBPath = "DataBase.mdb"<br/>ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "&Server.MapPath(DBPath)<br/>'当数据库设置过密码时用以下语句<br/>ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "& Server.MapPath(DBPath) &";<br/>Jet OLEDB:Database Password=Password"<br/>On Error Resume Next<br/>Set Conn = Server.CreateObject("ADODB.Connection")<br/>Conn.Open ConnStr<br/>If Err Then<br/>    Err.Clear<br/>    Conn.Close<br/>    Set Conn = Nothing<br/>    Response.Write("数据库链接出错，请检查链接字符串。")<br/>    Response.End()<br/>Else<br/>    Response.Write("数据库链接成功！")<br/>End If<br/><br/>2、ODBC<br/>Dim Conn,ConnStr,DBPath<br/>DBPath = "DataBase.mdb"<br/>ConnStr="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath(DBPath) &"" <br/>'当数据库设置过密码时用以下语句，以下PWD也可写成Password<br/>'ConnStr="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath(DBPath) &";<br/>PWD=Password" <br/>On Error Resume Next<br/>Set Conn = Server.CreateObject("ADODB.Connection")<br/>Conn.Open ConnStr<br/>If Err Then<br/>    Err.Clear<br/>    Conn.Close<br/>    Set Conn = Nothing<br/>    Response.Write("数据库链接出错，请检查链接字符串。")<br/>    Response.End()<br/>Else<br/>    Response.Write("数据库链接成功！")<br/>End If<br/><br/>3、DSN<br/>Dim Conn<br/>On Error Resume Next<br/>Set Conn = Server.CreateObject("ADODB.Connection")<br/>Conn.Open "DSN=YourDSNName"<br/>'当数据库设置过密码时可用以下语句，或在DSN中设置亦可<br/>'Conn.Open "DSN=YourDSNName","UserName","Password"<br/>'经测试UserName可以随便填[Win2KP+IIS5]测试通过<br/>If Err Then<br/>    Err.Clear<br/>    Conn.Close<br/>    Set Conn = Nothing<br/>    Response.Write("数据库链接出错，请检查链接字符串。")<br/>    Response.End()<br/>Else<br/>    Response.Write("数据库链接成功！")<br/>End If<br/><br/>二、MS SQL Server<br/>1、OLE[推荐]<br/>Dim Conn,ConnStr<br/>ConnStr="Provider=SQLOLEDB;Server=(local);UID=Username;PWD=Password;DataBase=DB;"<br/>On Error Resume Next<br/>Set Conn = Server.CreateObject("ADODB.Connection")<br/>Conn.Open ConnStr<br/>If Err Then<br/>    Err.Clear<br/>    Conn.Close<br/>    Set Conn = Nothing<br/>    Response.Write("数据库链接出错，请检查链接字符串。")<br/>    Response.End()<br/>Else<br/>    Response.Write("数据库链接成功！")<br/>End If<br/><br/>2、ODBC<br/>Dim Conn,ConnStr<br/>ConnStr="DRIVER={SQL Server};SERVER=(local);UID=Username;PWD=Password;DATABASE=DB"<br/>On Error Resume Next<br/>Set Conn = Server.CreateObject("ADODB.Connection")<br/>Conn.Open ConnStr<br/>If Err Then<br/>    Err.Clear<br/>    Conn.Close<br/>    Set Conn = Nothing<br/>    Response.Write("数据库链接出错，请检查链接字符串。")<br/>    Response.End()<br/>Else<br/>    Response.Write("数据库链接成功！")<br/>End If<br/><br/>3、DSN<br/>Dim Conn<br/>On Error Resume Next<br/>Set Conn = Server.CreateObject("ADODB.Connection")<br/>Conn.Open "DSN=YourDSNName;UID=Username;PWD=Password;DATABASE=DB"<br/>If Err Then<br/>    Err.Clear<br/>    Conn.Close<br/>    Set Conn = Nothing<br/>    Response.Write("数据库链接出错，请检查链接字符串。")<br/>    Response.End()<br/>Else<br/>    Response.Write("数据库链接成功！")<br/>End If ]]></description><category>刀记</category><comments>http://www.flyz.com.cn/post/3.html#comment</comments><wfw:comment>http://www.flyz.com.cn/</wfw:comment><wfw:commentRss>http://www.flyz.com.cn/feed.asp?cmt=3</wfw:commentRss><trackback:ping>http://www.flyz.com.cn/cmd.asp?act=tb&amp;id=3&amp;key=7a09fb99</trackback:ping></item></channel></rss>
