Profil de 我是猪,哼哼我是豬,哼哼!PhotosBlogListesPlus Outils Aide

Blog


24 avril

[转]英文网站不可缺少的六个页面

英文网站不可缺少的六个页面包括:首页、关于我们、FAQ、隐私保护、条款声明、联系我们。

Home Page (首页)

首页的作用是吸引用户注意,特别是Web2.0网站。首页决定了用户是往下点还是关闭窗口,务必保持整洁、清爽且内容明确。

* 如果网站提供的是一个Web服务,应该让用户能测试或者有Demo可以观看,切忌不要强迫必须先注册,这等于是把用户赶跑。

*如果网站是销售产品或服务的话,首页应该包括这些信息:你在卖什么,产品/服务给用户的价值,信用保证,在线客服。

About us (关于我们)

这个页面是建立网站的信任度的,也是整个网站第二重要的页面了。我们的经历告诉我们首次登录网站的用户经常点击“关于我们”的页面,例如:在完成订单前,进行注册前都需要全面了解你的公司。

千万不要把这个页面用一个模板来凑合,诚实地将网站拥有者的私人信息、为什么建这个网站、建站的背景及目的是什么等信息表明清楚将获得更多的信任。具体包括:公司的地理位置,建立时间及公司规模模式,最直接的联系方式(当然,“联系我们”页面将会更详细)等。

FAQ (常见问题问答)

当用户浏览首页及阅读了关于我们的内容后,不一定对你的产品/服务完全弄明白的时候,他们往往去找FAQ页面。如果没有的话,你可能就失去了他们。

FAQ页面最简单的目的就是回答用户反馈(潜在)的重点问题,更好地说明网站。

Privacy Policy (隐私保护)

很不起眼,但毫无疑问是必须的,你甚至可以使用一份标准的模板。用户一般不会专门去阅读,而是与产品/服务联系起来阅读。

Terms and Conditions(条款声明)

不要忽视它,它可以保护你。尽可能详细点,有可能的话找个律师代你写内容,也可以模仿与你站点相似的T&C声明,一切都是为了少吃官司。

Contact us (联系我们)

为了加强信任感,这个页面也不要做的太懒了,至少包括你的联系方式的一种(如:手机号、邮件地址、即时通、在线客服),并且保证这些联系有效并能即时得到回复。

 
23 avril

[转载]30步建立网站信任度

网站信任度有2方面的意义,一方面指浏览者对于站点的信任程度,另一方面指搜索引擎对于网站的信任值(TrustRank)。网站信任度对于企业站点更为重要。下面主要针对用户体验,分享一些我的看法,假设我是用户,我希望看到下面的内容。
信任度的建设体现在以下方面:
1.  关于我们页面:详细、真实的说明公司背景、历史、业务范围等等情况。
2.  网站备案:获得ICP的备案许可。
3.  服务流程:让客户充分了解整个过程,让服务更透明。
4.  报价列表:根据不同服务,分别给出相应报价范围。
5.  客户案例:客户更愿意接收第三方的评价。
6.  联系方式:详细、完整、多途径的联系方式,并提供所在地地图指示。
7.  网页数量:充实的网页数量,企业站点至少50页以上。
8.  原创内容:客户不喜欢到处流传的论调。
9.  版权信息:正确书写版权信息。声明本站内容受法律保护,拒绝转载等。
10. 隐私保护:声明对客户信息、网友信息给予隐私保护。
11. 无错别字:客户看见错别字,会想“网页都不校对,服务质量也悬。”
12. 合作伙伴:合作伙伴的链接及合作方站内报道。
13. 专业名词:适当的使用专业名词,但不要影响用户阅读,并给予简单易懂的解释。
14. 企业新闻:列举第三方给予的各类报道。
15. 链接检查:使整个网站没有无效链接。
16. 广告适当:不要放无关的广告。
17. 友情链接:只和客户、政府以及行业知名网站作链接。
18. 免费咨询:提供400或800免费电话咨询,至少要有在线咨询或留言本。
19. 访问速度:别让用户和搜索引擎感觉网站很慢。
20. 网页配色:建议使用公司LOGO中的颜色。
21. 营业证明:提供公司营业执照、行业执照、相关检查证书、法人照片等。
22. 公司博客:多人维护一个博客,类似Google黑板报。用户更信任博客上的内容。
23. 常见问题:以客户关心的问题为导向,制作1个页面,页面不要太多,别作成说明书。
24. 员工照片:公司活动集体照,体现公司活力。
25. 保持更新:时不时的来篇专业文章、媒体报道、公司趣事等等。
26. 风格一致:如果是集体公司,总公司、国外公司、地方公司网站排版要一致,域名格式统一。不同语言的网站区别不能太大。
27. 原创图片:别用网上到处都有的图像,特别是客服打电话的图片。有能力最好购买专业图库。
28. 域名续费:最好一次注册10年,不要每年续费。
29. 导航结构:别让用户因为不知道怎么继续,而按“返回键”。
30. 最后,转载的文章一定要注明出处及作者
 
转自 点石互动
14 novembre

偷吃带宽的迅雷

经秋的推荐,昨天安装了迅雷.

当时就发现,如果启动了迅雷,其他机器的下载速度就迅速下降,电驴无法与其他的机器建立连接.

今天,安装了带宽监控软件,重新测试了一下,即使在迅雷不下载,而只是在后台运行的状态下也要占用10~12K的带宽.

同时,犹豫它自身的BT和Emule组件的原因,会对LAN内部的其他在下载的软件有严重的干扰.

不过,可笑的是,今天它没有干过flashget,自己崩溃了...

15 septembre

同时运行PHP4&5的配置方法

在PHP的开发中,经常要在4和5之间来回切换,为了方便只好配置了一套可以同时运行的环境。
因为php4.X不支持Apache 2.2.X,所以,只能用Apache 2.0.X来带php4.X了,:(。

I、软件准备
1.1首先去Apache.org下载Apache 2.0.X和Apache 2.2.X,
1.2然后去PHP.net下载php 4.4.X和php 5.2.X。

II、Apache2.2.X+php 5.2.X的安装
2.1安装Apache2.2.X,没啥说得,msi文件,step By step就好了。
2.2装好了,http一下本地的80,OK,通过。
2.3根据需要修改httpd.conf。
2.4在vhost目录下简历一个新的index.html和index.php。
index.php里面写上:
<?php
phpinfo();
?>
注意:如果没有在后面的php.ini里开放短标签的话,必须在第一行里面加上php的标签说明。
2.5解压PHP 5.2.X,根据需要修改php.ini。
2.6修改httpd.conf加入PHP支持
在<IfModule mime_module>的末尾加上:
# For PHP 5
LoadModule php5_module "/PATH of My PHP 5.2.X/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "/PATH of My PHP 5.2.X"
2.7启动服务,在浏览器里面运行一下index.php
2.8在服务里面把apache2停掉
2.9在运行窗口,到apache2.2.X的bin下面,运行下面两条:
httpd.exe -k uninstall -n "apache2"
httpd.exe -k install -n "apache22"
同时,要是想用开始菜单里面的那些link,想着把里面的服务名从“apache2”改成“apache22”

III、Apache2.0.X+php 4.4.X的安装
3.1与2.1到2.3一样,安装Apache2.0.X
3.2如果vhost是指到一起的,那么可以跳过简历index文件这步,与2.4相同
3.3解压PHP 4.4.X,根据需要修改php.ini。
3.4修改httpd.conf加入PHP支持
# For PHP 4:
LoadModule php4_module "/PATH of My PHP 4.4.X/php4apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "/PATH of My PHP 4.4.X"
3.5复制sapi目录下的php4apache2.dll到上一级的目录里面,即与php.exe同目录
3.6启动服务,在浏览器里面运行一下index.php
3.7在服务里面把apache2停掉
3.8在运行窗口,到apache2.0.X的bin下面,运行下面两条:
apache.exe -k uninstall -n "apache2"
apache.exe -k install -n "apache20"
同时,要是想用开始菜单里面的那些link,想着把里面的服务名从“apache2”改成“apache20”

经过以上三步以后,现在启动apache20服务就启动了php4的环境,而启动apache22就启动了php5的环境。
如果想同时启动的话,只需要把端口分配成不同的就可以了。

注意:
1、默认服务安装完了是自动启动的,最好,将其设置为手动启动,用的时候随用随启。
2、不需要复制任何的ini、dll文件到系统目录下,也不要设置PATH变量。

12 septembre

ThinkPad R61 安装 XP 流程

终于,经不住本本的诱惑,对R61下手了,买了一台7738A16,顺手加了一下配置,终于达到我的要求。

默认的系统是Vista Home,本来还想忍受一下,但是发现里面还安装了一堆乱七八糟的软件:office2007试用版本、NIS2008试用版本等等,而且,只有一个C分区,立刻狠心痛下杀手,用WinPE工具盘直接重新分区,准备安装XP。

问题立即出现了,没法找到硬盘。。。

晕死,马上用台式机上网,查询,发现是硬盘的设置问题,更改后,可以正常安装XP了。

立刻装上sofeware install,升级驱动程序,结果,更郁闷的事情发生了:不支持R61。

只好,上网google,居然找到一篇宝岛人民写的文章,解决了大问题,根据自己的情况修改了一下,留个纪念。

期间还在安装UAA的时候出现了一些问题,打电话给技术支持,居然也搞不定,狂汗。

最汗的是,因为型号太新,居然大陆的支持站点都不认,只能在英文的站点上找到相关的资料。

看来,ThinkPad必将死在Lenovo的手里。。。

 

ThinkPad R61的XP安装流程

ThinkPad服务电话:8009908888

ThinkPad 全机种驱动程式矩阵列表
http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TPAD-MATRIX

准备动作、设定SATA硬盘

自从T60/R60/X60开始改用SATA界面硬盘,手动安装WinXP便遇到一个问题:「要选择Compatibility还是AHCI模式?」,这问题的主因源自于设定为AHCI模式时,必须在安装时按下「F6」,然后预先载入晶片组驱动程序。但现在拥有USB软驱的使用者实在太少了。在没有USB软驱的状况下,有的使用者便设定成「Compatibility模式」,却发现硬盘效能不佳,接着去BIOS调回AHCI模式之后,就会发生蓝底白字的系统当机惨剧。因此很多人想到要重装WinXP就头大。但根据Lenovo原厂提供的资料,以及亲身体验,其实手动安装WinXP并不困难!不需要准备USB软驱;不用忍受「Compatibility模式」效能不佳问题,更不会发生蓝底白字惨剧,关键只在于「安装流程的顺序!」

请跟着本文的流程依序安装,相信大家都能顺利重返WinXP环境!

1.按下电源开关,开机时请按「F1」键,之后会进入BIOS画面。

2.进入BIOS之后,进入「Config」页面

3.再进入「Serial ATA(SATA)」页面

4.将原先的「AHCI」改成「Compatibility」

换言之,手动安装WinXP时,先采用「Compatibility模式」,屏蔽掉需要通过USB软驱安装驱动程式的困扰,然后在后面的「步骤三」请大家务必按照说明安装Intel Matrix Storage Manager Driver,同时将硬碟更改為AHCI模式。

一、安装Windows XP

1.先用Windows XP安装光盘进行安装,如果安装的是Windows XP SP1的话,请务必升级到SP2,SP2可以从微软网站(http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=049c9dbe-3b8e-4f30-8245-9e368d3cdb5a)取得,或是透过WindowsUpdate下载,切记!如安装的是简体中文版Windows XP,务必安装「简体中文版」的SP2

2.安装的档名为「WindowsXP-KB835935-SP2-CHS.exe」,下载存至硬盘后,双击执行。

先解压缩文档
接着出现Windows XP Service Pack2安装向导 ,按「下一步」
出现授权合约画面。请在「我同意」方格上打勾,代表接受相关的授权合约。然后按「下一步」
勾选「备份档案」,然后按「下一步」
此时Windows XP Service Pack安装程式会检视Windows XP的设定,并准备下载必要的档案。需要花上一些时间,请稍后…………。
安装完成,请按「完成」以重新开机。

二、安装Intel Chipset Support for Windows Vista, XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67818下载。

2.所安装的版本是8.2.0.1012版,2007/05/17发布。档名為oss704ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\INTELINF」,如不想变更请直接按「Next」
按「Finish」

3.到C:\DRIVERS\WIN\INTELINF,双击「infinst_autol.exe」

出现安装画面「Intel晶片组装置软体」,按「下一步」
授权合约画面,按「是」
Readme画面,按「下一步」
接下来的画面显示将开始安装驱动程式
按「下一步」
安装完成后,选择「是,我想现在重新启动电脑」,按「完成」。

三、安装Intel Matrix Storage Manager Driver for Windows 2000, XP, Vista (32bit)

1.可以http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=migr-62909下载。

2.所安装的版本是7.0.0.1020版,2007/05/08发布。档名为7kim06ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\IMSM」,如不想变更请直接按「Next」
按「Finish」

3.到C:\DRIVERS\WIN\IMSM\PREPARE,双击「install.cmd」

会快速出现DOS BOX安装画面,接着请将电脑「关机」。
按下电源开关,开机时请按「F1」键,之后会进入BIOS画面。
进入BIOS之后,进入「Config」页面
再进入「Serial ATA(SATA)」页面
将原先的「Compatibility」改成「AHCI」
按「F10」键存档并离开BIOS,选「Yes」后重新开机
进入WinXP之后,会出现「寻找新增硬体精灵」,点选「不,现在不要」,按「下一步」
选择「从清单或特定位置安装(进阶)」,按「下一步」
先点选「在这些位置中搜寻最好的驱动程式」,然后勾选「搜寻时包括这个位置」,按下「浏览」键,将路径指向「C:\DRIVERS\WIN\IMSM」,按「下一步」
按「完成」
如果系统显示须安装「BCM2045B」设备的驱动程式,先取消安装。
出现「系统设定变更」视窗,按「是」重新开机。

四、安装Intel PRO/1000 LAN adapter software for Windows 2000, XP

1. 可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67829下载。

2.所安装的版本是9.7.37.0版,2007/05/17发布。档名为7kra14ww.exe

下载此档於硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\ETHERNET」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.在桌面上的「我的电脑」上按右键,选「属性」,请在「硬件」里点选「设备管理器」,请双击其中的「其他设备」,展开后请双击「Ethernet控制卡」,会进入属性。

注:大家会发现有两个「Ethernet控制卡」,请先试第二张,也就是下面的Ethernet控制卡,拒绝安装的话再选另一个即可。

在属性进入「驱动程序」页,并点选「更新驱动程序」
此时会出现硬体更新向导,点选「否,暂时不」,按「下一步」
选择「从列表或指定位置安装(高级)」,按「下一步」
先点选「在这些位置中搜寻最好的驱动程式」,然后勾选「在搜索中包括这个位置」,按下「浏览」键,将路径指向「C:\Drivers\WIN\Ethernet\PRO1000\Win32」,按「下一步」
系统显示找到「Intel(R) 82566M Gigabit Network Connection」,按「完成」
关闭相关的画面。

4.到「C:\DRIVERS\WIN\ETHERNET\APPS\PROSETDX\Win32」 里,双击DxSetup.EXE

出现欢迎画面,按「下一步」
授权合约画面,选「我接受该授权合约中的条款」,按「下一步」
选择安装类型,点选「驱动程式、Intel PROSet与进阶网路服务」,按「下一步」
按「安装」
安装完成,请按「完成」

五、安装Wireless LAN adapter software (ThinkPad 802.11bg, 802.11abg) for Windows 2000 and XP

注1:如果ThinkPad内建的是 ThinkPad 802.11abgn wireless LAN ,请至http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-66449下载驱动程式。

注2:如果ThinkPad内建的是 Intel 3945abg, 4965ag, and 4965agn,请至http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62875下载驱动程式。

注3:如果没有使用WPA加密功能,原厂建议删除微软先前发布的两个修正档,分别是Q826942 (WPA Supplicant update in Windows XP )及 Q815485 (WPA Wireless Security Update in Windows XP)。大家可以到「控制面板/添加删除程序」中察看是否有安装。

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-52527下载

2.所安装的版本是5.3.0.35版,2007/05/16发布。档名为7rwc06ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「"C:\DRIVERS\WIN\WLLANATH」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WIN\WLLANATH」,双击「setup.exe」

出现安装画面,按「下一步」
选择程式资料夹,预设名称为「Wireless Configuration」,按「下一步」
接下来的画面显示将开始安装驱动程式
安装完成后,选择「是,立即启动电脑」,按「完成」,并且重新开机

六、安装ThinkVantage Access Connections for Windows 2000 and XP (without wireless drivers)

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4ZLNJB下载。

2.所安装版本是4.41版,2007/05/21发佈,档名为7mcn26ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选择「I accept the terms in the license agreement」,按「Next」
档案预设解压缩路径为「C:\DRIVERS\W2K\ACCON」,如不想变更请直接按「Next」
解压缩完成,按「Finish」

3.到「C:\DRIVERS\W2K\ACCON」,双击「Setup.exe」

出现欢迎画面,按「下一步」
预设安装到「C:\Program Files\ThinkPad\ConnectUtilities」,请按「下一步」
大家可视需求勾选「启用Access Connections视窗登入使用者名称及密码功能」,预设是不勾选,按「下一步」
按「下一步」
安装完成后,选择「是,立即启动电脑」,按「完成」,并且重新开机

七、安装DirectX 9.0c End-User Runtime

1.可以从微软网站(http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3)上面下载。

2.使用者必须先从网站下载281 KB的先导安装程式,然后再从网路下载完整的档案。

2.安装的档名为「dxwebsetup.exe」,下载存至硬盘后,双击执行之。

出现授权合约画面,请在「我接受合约」方格上打勾,代表接受相关的授权合约。然后按「下一步」
按「下一步」
此时下载必要的档案。需要花上一些时间,请稍后……。
安装完成,请按「完成」并重新开机。

八、安装Display (Intel GL960, GM965) driver for Windows XP, 2000

1.GMA X3100可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67838下载。

2.所安装的版本是6.14.10.4860版,2007/08/29发布。档名为7ld133ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreemen」按「Next」
档案预设解压缩路径为"C:\DRIVERS\WIN\DISPLAY",如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WXP\DISPLAY」里,双击「Setup.exe」

出现欢迎画面,按「Next」
License Agreement画面,按「Yes」
接下来的画面显示将开始安装驱动程式
安装完成后,选择「是,立即启动电脑」,按「完成」,并且重新开机

九、安装Monitor file for Windows 2000, XP, Vista

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-62923下载。

2.所安装的版本是4.00版,2007/01/22发布。档名为79oi05ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\Drivers\WIN\MONITOR」,如不想变更请直接按「Next」
按「Finish」

3.在桌面上按右键,选"属性"

选「设置」
点选右下角的「高级」
点选「监视器」后,进入「属性」
选「驱动程式」
点选「更新驱动程式」
出现「软体更新向导」,点选「否,暂时不」,按「下一步」
选「从列表或指定位置安装(高级)」,按「下一步」
点选「不要搜寻,我要自己选择要安装的驱动程序」,按「下一步」
先点「从磁盘安装……」,按下「浏览」键,将路径指向「C:\Drivers\WIN\MONITOR」,按「下一步」
系统显示安装了「ThinkPad Display」,按「完成」,后按「关闭」

十、安装Universal Audio Architecture (UAA) High Definition Audio class driver (Q888111) for Windows XP with Service Pack 2

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-65456下载。

2.所安装的版本是20040219版,2006/08/15发布。档名为kb888111xp2cht.exe(选择英文或简体中文版)

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,按「Agree」
出现欢迎画面,按「下一步」
出现授权合约画面,点选「我同意」后,按「下一步」
安装完成后,请按「完成」

十一、安装Audio Features for Windows XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67816下载。

2.所安装的版本是5.10.1.5370版,2007/05/17发布。档名为7ka110ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩在路径为「C:\DRIVERS\WIN\Audio」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WIN\Audio」里,双击「Setup.exe」

出现欢迎画面,按「下一步」
授权合约画面,按「是」
接下来的画面显示开始安装驱动程式
安装完成后,请选择「是,立即重新启动电脑」,并按「完成」准备重新开机。

4.如果失败,可以进入设备管理器手动更新驱动程序

十二、安装Modem driver for Windows 2000, XP, Vista (32 and 64bit)

1. 可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-61454下载。

2.所安装的版本是7.62.00.00版,2006/05/11发布。档名为7fma09ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\HDAMODEM」,如不想变更请直接按「Next」。
解压缩完成后按「Finish」

3.到「C:\DRIVERS\HDAMODEM」里,双击SETUP.exe

首先出现「驱动程式安装向导」,按「确定」
画面会显示安装进度
出现「NetWaiting 安装向导」,按「下一步」
授权合约画面,按「是」
预设安装路径为「C:\Program Files\NetWaiting」,按「下一步」
接下来为选择程式安装夹,如果不想变更,直接按「下一步」
安装完毕后选,按「完成」
出现「Digital Line Detection安装向导」,按「下一步」
授权合约画面,按「是」
预设安装路径为「C:\Program Files\Digital Line Detect」,按「下一步」
接下来为选择程式安装夹,如果不想变更,直接按「下一步」
安装完毕后选,按「完成」
全部安装程式完成,按「确定」

十三、安装Power manager driver for Windows 2000, XP

1. 可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-61583下载。

2.所安装的版本是1.15版,2007/06/04发布。档名为7ku703ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\W2K\PWRMGR」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\W2K\PWRMGR」里,双击「Setup.exe」

首先选择安装的语系,例如中文(简体),按「确定」
按「下一步」
预设安装路径为「C:\Program Files\ThinkPad\Utilities」,按「下一步」
选择安装类型,预设是「默认安装」,如不想变更, 按「下一步」
选择程式资料夹,默认会安装到「ThinkVantage」, 如不想变更, 按「下一步」
安装完成后,请选择「是,立即重新启动电脑」,并按「完成」准备重新开机。

十四、安装ThinkPad Power Management driver for Windows Vista, XP, 2000, Me, 98SE

1. 可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4GXPEG下载。

2.所安装的版本是1.42版,2007/05/22发布。档名为7kku03ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\IBMPM」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WIN\IBMPM」里,双击「Setup.exe」

出现欢迎画面,按「Next」
安装完成后,请选择「Yes, I want to restart my computer now.」,并按「Finish」

十五 、安装UltraNav driver for Windows 2000, XP

1. 可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42487下载。

2.所安装的版本是7.5.17.20版,2006/05/27发布。档名为77gu08ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\UNAV」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WIN\UNAV」里,双击「Setup.exe」

首先出现「选取安装语言」,选「英语」,按「确定」
按「Next」
按「Next」
安装完毕后选「Yes, I want to restart my computer now」,按「Finish」

十六、安装Hotkey driver for Windows Vista, XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-68000下载。

2.所安装版本是2.03.0705版,2007/05/16发布,档名为7kvu13ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选择「I accept the terms in the license agreement」,按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\HOTKEY」,如不想变更请直接按「Next」
解压缩完成,按「Finish」

3.到「C:\DRIVERS\WIN\HOTKEY」,双击「Setup.exe」

出现欢迎画面,按「安装或升级驱动程式」,按「下一步」
点选「On Screen Display」、「ThinkPad FullScreen Magnifier」,按「安装」
按「确定」
按「关闭」
按「是」,重新开机

十七、安装Bluetooth with Enhanced Data Rate Software for Windows XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-61425下载。

2.所安装的版本是5.1.0.3100版,2007/05/17 发布。档名为7jba08ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\TPBTooth」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.要开始安装驱动程序前,请「务必」遵守以下几点规则,以免安装失败!

Bluetooth软件安装时,「不要」任意碰触键盘、TrackPoint、TouchPad。
将ThinkPad的「无线硬体开关」打开,确认LCD下方蓝牙标志灯亮。或是按下「Fn+F5」热键,确定闭蓝芽无线通讯功能已开启

4.到「C:\DRIVERS\TPBTooth」里,双击Setup.exe

出现欢迎画面,按「下一步」
选择「我接受该授权合约中的条款」,按「下一步」
默认安装到「C:\Program Files\ThinkPad\Bluetooth Software」,请直接按「下一步」
按「安装」
当「Driver Signature Notice 」画面出现时,按「OK」
稍待一会之后,按「完成」
手动重新开机

十八、安装四合一读卡机

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-68053下载。

2.所安装的版本是3.51.01版,2007/06/26发布。档名为7kss52ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\4IN1」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WIN\4IN1」,双击「Setup.exe」

出现欢迎画面,按「下一步」
按「安装」
按「完成」
按「是」,重新开机。

十九、安装ThinkVantage Active Protection System for Windows Vista 32-bit, XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-53150下载。

2.所安装的版本是1.52版,2007/04/04发布。档名为7ksa10ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\HPROTECT」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\WIN\HPROTECT」,双击「Setup.exe」

出现欢迎画面,按「下一步」
按「安装」
按「完成」
按「是」,重新开机。

二十、安装Atmel TPM (Trusted Platform Module) device driver for Windows Vista 32-bit, XP, 2000

1. 可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-58054下载。

2.所安装的版本是3.0.0.15版,2006/03/15发布。档名为79za05ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\TPM」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.在桌面上的「我的电脑」上按右键,选「属性」,请在「硬件」里点选「设备管理器」,请双击其中的「其他设备」,展开后请双击「无法辨识的装置」,会进入属性。

在属性进入「驱动程序」页,并点选「更新驱动程序」
此时会出现硬体更新向导,点选「否,暂时不」,按「下一步」
选择「从列表或指定位置安装(高级)」,按「下一步」
先点选「在这些位置中搜索最佳的驱动程序」,然后勾选「在搜索中包括这个位置」,按下「浏览」键,将路径指向「C:\DRIVERS\WIN\TPM」,按「下一步」
系统显示找到「Atmel TPM」,按「完成」
关闭相关的画面。

二十一、安装EasyEject Utility for Windows Vista, XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-44035下载。

2.所安装的版本是2.33版,2007/06/19发布。档名为7ku208ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\W2K\EZEJECT」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\W2K\EZEJECT」,双击「Setup.exe」

首先选择安装的语系,例如中文(简体),按「确定」
按「下一步」
预设安装路径为「C:\Program Files\ThinkPad\Utilities」,按「下一步」
选择安装类型,是「一般安装」,如不想变更, 按「下一步」
选择程式资料夹,默认会安装到「ThinkVantage」, 如不想变更, 按「下一步」
安装完成后,请选择「是,立即重新启动电脑」,并按「完成」准备重新开机。

二十二、安装Presentation Director for Windows Vista, XP, 2000

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67364下载。

2.所安装的版本是3.03a版,2007/06/06发布。档名为7rua05ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选「I accept the terms in the license agreement」按「Next」
档案预设解压缩路径为「C:\DRIVERS\W2K\PDIRECT」,如不想变更请直接按「Next」
解压缩完成后按「Finish」

3.到「C:\DRIVERS\W2K\PDIRECT」,双击「Setup.exe」

首先选择安装的语系,例如中文(简体),按「确定」
按「下一步」
预设安装路径为「C:\Program Files\Lenovo\NPDIRECT」,按「下一步」
选择程式资料夹,默认会安装到「ThinkVantage」, 如不想变更, 按「下一步」
按「下一步」
安装完成后,请选择「是,立即重新启动电脑」,并按「完成」准备重新开机。

二十三、安装Keyboard Customizer Utility for Windows 2000, XP

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-44185下载。

2.所安装版本是1.3.52.0版,2007/05/15发佈,档名为1qkcb7ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选择「I accept the terms in the license agreement」,按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\KEYCUSTM」,如不想变更请直接按「Next」
解压缩完成,按「Finish」

3.到「C:\DRIVERS\WIN\KEYCUSTM」,双击「Setup.exe」

出现欢迎画面,按「Next」
默认安装到「C:\Program Files\ThinkPad\Utilities」,请按「Next」
接下来为「Select Program Folder」,如果不想变更,直接按「Next」
按「Next」
安装完成,请点选「Yes, I want to restart my computer now.」,并按「Finish」

注:安装此程式之后,使用者便能自行关闭方向键上方的两个「Browser Keys」,避免在论坛发表文章时不慎按到「上一页」导致辛苦键打的文章全没了。选项位置在「Key Sensitivity」页左下方。

二十四、安装Access Help online User's Guide

1.安装Access Help(英文版),程序如下:

可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67828下载。

2.所安装的英文版本是2.01版,2007/05/17发佈,档名为7kta06us.exe

下载此档于硬盘后,双击执行后,出现欢迎画面,按「Next」
License Agreement画面,点选「I accept the terms in the license agreement.」,然后按「Next」
预设安装到「C:\DRIVERS\WIN\AHLP」,请按「Next」
按「Finish」
首先选择安装的语系,例如中文(简体),按「确定」
按「下一步」
预设安装路径为「C:\Program Files\ThinkVantage\AHLP」,按「下一步」
选择程式资料夹,默认会安装到「ThinkVantage」, 如不想变更, 按「下一步」
按「完成」

二十五、安装Help Center for Windows Vista, XP, 2000

1.可以http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67244下载。

2.所安装版本是2.00c版,2007/05/16发佈,档名为7kth08ww.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选择「I accept the terms in the license agreement」,按「Next」
档案预设解压缩路径为「C:\DRIVERS\WIN\ALRN」,如不想变更请直接按「Next」
解压缩完成,按「Finish」

3.到「C:\DRIVERS\WIN\ALRN」」,双击「Setup.exe」

出现欢迎画面,按「下一步」
预设安装到「C:\Program Files\ThinkVantage\ALRN」,请按「下一步」
选择程式资料夹,默认会安装到「ThinkVantage」, 如不想变更, 按「下一步」
按「完成」

二十六、安装ThinkVantage Productivity Center

1.可以从http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-61378下载。

2.所安装版本是2.02版,2007/05/14发佈,档名为7kuy03cw.exe

下载此档于硬盘后,双击执行后,按「Next」
License Agreement画面,选择「I accept the terms in the license agreement」,按「Next」
档案预设解压缩路径为「C:\DRIVERS\W2K\PRDCTR」,如不想变更请直接按「Next」
解压缩完成,按「Finish」

3.到「C:\DRIVERS\W2K\PRDCTR」,双击「Setup.exe」

出现欢迎画面,按「安装或升级驱动程序」,按「下一步」
点选「Productivity Center Supplement for ThinkPad」、「ThinkVantage Productivity Center」,按「安装」
按「确定」
按「关闭」
按「是」,重新开机

二十七、安装PCMCIA Power Policy Registry Patch

下载http://www.tpuser.idv.tw/files/PCMCIAPW.zip于硬盘后,双击执行「Install.bat」即可。

21 mai

从Norton骂到Kaspersky,国产杀毒软件,能不能干点正事

2007年5月18日,上午9:10分,在升级完新的NIS补丁之后,系统提示某个系统文件版本不对,要求恢复,犹豫了一下,断网,把XP镜像装载,恢复了这个文件,重启以后,不能正常进入系统,提示硬件问题,无奈,从启动菜单里面选择使用上次正常启动的配置文件,一切恢复正常。
 
此后在机房忙活了一上午,午后上网发现,同样的事情已经在N多中文XP用户的机器上出现,并逐渐演化为所谓的“杀错门”事件。
 
与此同时,瑞星,一个也就技术上略比金山强点的公司,勾搭上一众国产杀毒软件,利用媒体,借助“民族情绪”,开始了一场让人觉得无聊的口水攻击。
 
之所以不说口水战,是因为,在此次口水攻击中,攻击方用出多种解数,泼似流氓,而被攻击方则坦诚的面对,好似君子。
 
而国内很多论坛、网站也以攻击 N & K 为乐趣,让人感觉大跌眼睛。
 
就个人感觉而言,我在96年购买江民,97年购买瑞星,99年开始用D版Norton,直到现在我一直在用Norton系列产品。
 
诚然,Norton系列产品有自己很多的缺点:系统消耗大,空间占用多,针对国内病毒查杀能力不足,对很多恶意软件只能查不能杀。
 
不过相比部分其他杀毒软件,对真的病毒恶意软件既不能杀也不能查,只能自己造点东西,自己来杀,并借此造势,Norton还是不错的。
 
为什么国内杀毒软件要对外来的群起而攻之呢?我想不外乎金钱的原因。
 
企业用户,我所经历的数间公司,其中有国内的也有国外的,在服务器上,杀毒软件全部选择的是Norton企业版本,简单的设置,强大的功能,是最好的概括。
 
个人用户,越来越多的,在品牌机厂商以及还是很流氓的360safe的帮助下,卡巴斯基占领了越来越多的用户。
 
总体来讲,一个字:钱。
 
以前被国内杀毒软件忽悠的晕头转向的用户们,慢慢的发现杀毒软件的世界原来不是他们(国内杀毒软件)宣传的那么回事。是继续被忽悠,还是选择别的解决方案?
 
最后,讲一个真实事例,2002年,曾经有一个病毒,搞掉了很多的个人用户,当时金山毒霸号称是可以完全查杀,借了朋友公司为此事专门购买的金山毒霸,给公司里每台机器都装了一下,最后。。。被金山的人员嘲笑:我们都不用金山毒霸,用Norton。。。
 
一个连自己的开发人员都不用的杀毒软件,如何让人信任?
 
 
 
9 avril

刪除谷歌拼音更新系统软件

终于忍不住,把谷歌拼音删了。
 
这东西,做的太中国化了,就像在donews上说的:这东西是谷歌的,不是google的。
 
记得毕业以后去的第一家美资公司,老板交我的第一件事情就是:面对错误,敢于承认错误。
 
谷歌用中国化的办事方法,中国化的对待错误的态度,让人伤心,更重要的是,丫的一个拼音输入法,没事狂连网络干什么呀,我又不允许你上传我的使用习惯。
 
周末下RHEL不小心都下成64位版本了,郁闷!
 
结果今天上网重新搜索,终于找到32位版本,同时发现用的软件基本都升级了,只好一个个再更新上来,累的荒。
 
8 avril

safe360不safe--流氓的本色果然是改不了的!

昨天跟哥们吃饭的时候还说起safe360,还挺好用的。
 
今天,就被丫的忽悠了一把,提示升级以后,告诉我系统有漏洞要从微软下载,正在差异昨天刚刚升级的windows update,想了想还是让系统自己来办事:直接从微软下载比较安全。
 
惊诧随之而来,windows update上居然根本没有丫提到的补丁,还怕冤枉了丫的,重要、软件、硬件,都看了一边,就是没发现,:(。
 
真的是改不了流氓本色,safe360不safe!
 
7 avril

在Sybase PowerDesign中设置自增型字段的起始值

PowerDesign是个好东东,不过因为能设置的地方太多,反而有时候让人找不到地方。
 
就拿mysql的自增型int字段来说,选中“Identity”是就呈现auto-incremented很容易找到,但是如何设置起始值就让我找了半天。
 
在网上找了半天,大都是指到“Identity”为止,也有用Script来实现的,复杂,麻烦,还不如手动改sql。
 
其实,就sql语句来说,加上auto_increment = 起始值;就可以了,但是在PowerDesign里面,这个属性是作为表属性存在而不是字段属性存在的。
 
明白了这点以后,就知道怎么处理了。
 
以12.1为例,打开需要修改的表,选择“physical options”,选中左边的auto_increment,在下面的输入框中输入起始值。
点击一下“Preview”,看看,是不是sql语句里面相应的语句已经出现了。
 
生成一下数据脚本,在mysql里面source一下,大功告成。
 
22 mars

Tomcat5.5 UTF-8 乱码问题解决办法

关于java的乱码,一直是双字节字符环境开发者的问题,不同的服务,不同的版本,甚至不同的系统环境,都有很大的影响。
今天说一下,在中文windows下,Tomcat5.5服务下的,UTF-8的乱码解决问题。
首先要需要了解的是web容器默认编码是iso-8859-1,一个汉字占用两个字节,而在utf-8中一个汉字占用三个字节。所以在数据传递过程中,必须手动设定容器编码格式,否则会出现字符位丢失的情况。即3个字节变为两个字节,自然会变成乱码。
其次,Tomcat 5以后,对post和get方法的编码控制分开了,像以前那样,仅仅
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
不能解决问题了。
 
明白了这个以后,再来看
第一步,修改tomcat。
找到对应站点的server.xml后,在里面的Connector标签里面添加
useBodyEncodingForURI="true"
这句的话告诉tomcat用页面的编码去处理post,推荐使用。
这块有句更狠的就是
URIEncoding="utf-8"
不过是强制指定编码了,所以一旦有其他编码的页面存在,就会出问题,所以不建议用。
第二步,修改jsp页面头。
我是偷懒,全都加上了
<%@ page language="java"  pageEncoding="UTF-8"%>
,然后在html标签的head标签里加上
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
第三步,修改指定编码。
在jsp头部分,任何request和response被使用前,加上
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
经过以上三步后,post过来的文字就可以正常的用request.getParameter()取得并使用了。
 
第四步,修改用get方法传出的连接参数。
new String(java.net.URLEncoder.encode("输入文字","UTF-8"));
记得try一下,我是封装的一下用的。
 
经过以上几步,基本上乱码的问题解决了。
 
有篇文章写的不错,可惜,在我解决了问题以后才看到,很是遗憾,提供给后人吧
 
 
 
 
21 mars

联动的droplist

写了好几次这种联动的下拉菜单了,有用ajax的,有用javascript,每次都偷懒,写了就丢,这回,留个种吧。
 
<html>
 <head>
  <script>
   <!--
   var mymoblist = new Array();
   var catelist = new Array(16);
   catelist[0]="101001|中餐";
   catelist[1]="101002|西餐";
   catelist[2]="101003|日餐";
   catelist[3]="101004|韩餐";
   catelist[4]="101005|越南餐";
   catelist[5]="101006|白餐";
   catelist[6]="102010|汽车";
   catelist[7]="102011|机械";
   catelist[8]="102012|轮船";
   catelist[9]="102013|武器";
   catelist[10]="102014|导弹";
   catelist[11]="102015|火车";
   catelist[12]="103007|端茶";
   catelist[13]="103008|倒水";
   catelist[14]="103009|扫地";
   catelist[15]="103016|打劫";
 

   function changecate1()
   {
    var cate1id = document.forms['reg'].cate1.options[document.forms['reg'].cate1.selectedIndex].value;
    var i = 0;
    if (cate1id == "0")
    {
     i = catelist.length;
    }
    for(var j = 0; j<catelist.length; j++)
    {
     var cateid = catelist[j].substr(0,3);
     if (cate1id == cateid)
     {
      i++;
     }
    }
    reg.cate2.length = i;
    var k=0;
    for(var j = 0; j< catelist.length; j++)
    {
     var cateid = catelist[j].substr(0,3);
     if (cate1id == "0")
     {
      mymoblist[k]=catelist[j].split("|")[0];
      reg.cate2.options[k].value = catelist[j].split("|")[0];
      reg.cate2.options[k].text = catelist[j].split("|")[1];
      k++;
     }
     else
     {
      if (cate1id == cateid)
      {
       mymoblist[k]=catelist[j].split("|")[0];
       reg.cate2.options[k].value =  catelist[j].split("|")[0];
       reg.cate2.options[k].text = catelist[j].split("|")[1];
       k++;
      }
     }
    }
    if (k==0)
    {
     reg.cate2.length=1;
     reg.cate2.options[k].value = "";
     reg.cate2.options[k].text ="请择行业";
    }
 
   }
    -->
   </script>
  </head>
  <body>
   <form name="reg">
    <select name="cate1" onChange="javascript:changecate1();" >
     <option value=0>全部行业</option>
     <option value="101">餐饮业</option>
     <option value="102">制造业</option>
     <option value="103">服务业</option>
    </select>
    <select name="cate2" >
     <option value="101001">中餐</option>
     <option value="101002">西餐</option>
     <option value="101003">日餐</option>
     <option value="101004">韩餐</option>
     <option value="101005">越南餐</option>
     <option value="101006">白餐</option>
     <option value="102010">汽车</option>
     <option value="102011">机械</option>
     <option value="102012">轮船</option>
     <option value="102013">武器</option>
     <option value="102014">导弹</option>
     <option value="102015">火车</option>
     <option value="103007">端茶</option>
     <option value="103008">倒水</option>
     <option value="103009">扫地</option>
     <option value="103016">打劫</option>
    </select>
   </form>
  </body>
 </html>

dotproject更新了

老大们今天想起了很久不用的项目管理软件,要它重出江湖。
 
莫名的,老版本的dotproject已经不能安装了,一堆堆的sql错误提示。
无奈,直奔它的老窝http://www.dotproject.net/,NND,居然已经更新到2.1rc1了,下了e文的,在插件里没找到新的GBK中文的,只得作罢。
 
在google上找到http://blog.jiu8.com/archives/306,可惜,要密码,都是出来混的,人家用的虚拟主机,加加密也没话说。
http://blog.indelphi.net/dotproject%E6%B1%89%E5%8C%96%E7%89%88/,看到有公布密码的,直接download,拿出里面的zh-CN目录。不是我不想直接用,可惜,这些自己汉化以后打包的,我都装不起来,看来我人品问题最近真的大大的,:(。
 
剩下就没啥了,把英文的dotproject解压,把拿到的zh-CN放到locales下,开始安装,想着自己建个专门的sql用户,把权限限制了就行了,别的没啥了。
 
进去以后,设置一下把默认en改到zh-CN,把用户默认语言,货币格式等等修改一下,用去吧。
 
默认的admin密码是passwd,嘿嘿,都忘光了,居然看了文档才想起来,丢人,丢人。
20 mars

用Jakarta Commons Fileupload 1.2上传文件

已经有小4年没写java了,所有的东西都要从最下层重新写过,痛并快乐着,不过也被人指责说“你java行不行呀”,:(。
 
文件上传是基础科目之一,Lucifer给了建议用smartupload或struct。
最终为了适应项目的需要,1、简单方便2、不用写服务器文件(实际Jakarta Commons Fileupload 还是可能写服务器的物理文件的)3、对服务器影响小,我选择了Jakarta Commons Fileupload 1.2。
最主要的一点:丫是apache这边出来的东西,应该没有太多让人窝心的事。
没选择smartupload的原因是它需要把文件全部放入服务器物理内存。
没选择struct的原因是我还没有掌握它(够让自己汗的理由,呵呵)。
 
http://jakarta.apache.org/commons/fileupload/下载了1.2版的jar,并配置到classpath里,发现不能用,@-@,原来它还需要beanutils 和 commons-io,没啥说的,都是apache自家兄弟,上吧。
 
痛苦终于开始了。。。
在google找的例子,居然都是1.0和1.1的,而且,因为1.2较前变化比较大,没有一个例子能用的,而且大都是互相抄来抄去的。
 
找到了1.2例子,虽然有些小问题,但是,改改能用,^_^。而且Guy Bowerman的回复也是很迅速的。
 
下面是整理过的最后代码:
****************
upload1.jsp
[code]
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>Upload 1</title>
 </head>
 <body>
  <form action="upload2.jsp" method="post"
   enctype="multipart/form-data">
   <input type="file" name="docfile1" />
   <input type="file" name="docfile2" />
   <input type="file" name="docfile3" />
   <input type="submit"  value="Upload" />
  </form>
 </body>
</html>
[/code]
*************************
upload2.jsp
[code]
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>Upload 2</title>
 </head>
 <body>
  <%
   String docfilename = "";
   long docsize = 0;
   String contenttype = "";
   String content = "";
   DiskFileItemFactory factory = new DiskFileItemFactory();
   ServletFileUpload fu = new ServletFileUpload(factory);
   List fileItems = fu.parseRequest(request);
   
   out.println("TOTALFILES:" + fileItems.size() + "<br>");
   
   Iterator itr = fileItems.iterator();
   fu.setSizeMax(1000000); // throw exception if > 1 Mb
   
   while (itr.hasNext()) {
    FileItem fi = (FileItem) itr.next();
    
     if (!fi.isFormField()) {
      // only process files here, not form fields
      docfilename = fi.getName();
      docsize = fi.getSize();
      content = fi.getString();
      contenttype = fi.getContentType();
      
      
     }
     if (docsize > 0) {
      out.println("FILENAME:" + docfilename + "<br>");
      out.println("CONTENTTYPE:" + contenttype + "<br>");
      out.println("FILESIZE:" + docsize + "<br>");
      out.println("FILECONTENT:" + content + "<br>");
     }
    }
  %>
 </body>
</html>
[/code]
 
一些使用中的问题:
1、因为fileItems里面得到的是前一个页面传过来的input全部控件数,所以,如果在upload1.jsp里面的submit按键有name属性的话,在后面的页面里面会多得到一个值,这个值会重复前一个页面的最后一个input,类型为file的值,所以,不要给submit按键设置name属性。
2、如果你上传的文件里面有的需要用二进制上传,那么请用getInputStream()而不是fi.getString(),至于怎么用,请参考Guy Bowerman的文章。
 
Thank Bowerman again!
 
4 décembre

《游戏创造》倒了么?

本来这题目要写成《骗了人就跑的游戏创造》的,只是在写之前,11月的杂志寄到了,虽然书角已经磨的的不成样子,虽然晚到了半个月,NND,总是到了。

10月底,11月初的时候,接到《游戏创造》杂志社的前台MM的电话,继续征订明年的杂志,上月初刚刚把一年的钱汇过去,不想杂志就收不到了,打电话过去,早上的时候还是没人接,9点多就变成了空号,真是够呛!

也公布一下他的信息,有住在附近的哥们给看看这地方还有人没有!

电话:

010-62044843 (打了一天了,没人接)

010-82084889(现在变空号了)

地址:

北京西城区黄寺大街24号院明湖大厦A621室

 

有人替我拍砖,没人替我

28 novembre

阴魂不散的腾讯通

公司里开始安装自称RTX,别名腾讯通的IM软件。
NND,现在大家都开始装IM通讯加密软件的时代了,装这狗屁东西的用心,用冬天里左脚的小脚趾都能想出来。不过,人在矮檐下。。。忍了。
 
不想,这东西装上以后,除了正常启动以外,即使是在启动组里面del了,也会时不常的自动启动,登陆。无奈,在防火墙设置里面把它归为不允许通信的一类。
 
一天后,还会自动启动,无语了,只能uninstall了,在反安装的时候,注意了一下日志,自我显示是没在除了安装路径下安别的东西,但是,腾讯的东西,呵呵,还不如阿扁放的pi靠谱呢。
 
基本上这东西,跟前一段的注册替换dll组件的病毒一样么,建议Norton把腾讯的东西当病毒,直接del了就对了。
 
Go Hell,Tencent!
27 novembre

越做越差劲的Space和越做越精的病毒贩子

很久没用MsnSpaces了,今天想起来发个东东,缺发现越来越不好用了。
简洁是美,想来做Spaces的兄弟们没听过这句话,非要把一个个功能做的跟考用户智商似的。
 
看看人家@iinet.net.au发出来的病毒邮件,伪造的跟email系统发送的退信一样,牛吧。
只是,装成系统管理员发送木马就不怎么样了,那个bat和src还有点意思,不知所谓的用户还有可能上当。
 
 
26 octobre

[转载]谁动了我们的DNS

谁动了我们的DNS

2006-10-16
by 81d83889fb4a54b0d5d7e07d42c51422
本文遵从GPL协议,欢迎转载
|=------------------------------------------------------------------------=|
---------[ Table of Contents ]
  0x1   - 前言
  0x2   - 一些怪现象
    0x2.1   --    ping一些不存在的域名
    0x2.2   --    抓包分析
  0x3    - 浏览器浏览不存在域名被重定位
    0x3.1   --    现象
    0x3.2   --    抓包分析
  0x4    - xxxxxx.bobodogs.com的统计数据
  0x5    - www.bobodogs.com的统计数据
  0x6    - 一次被引导到3721网站的过程
  0x7    - 有必要看下www.jcdh.cn这个网站
  0x8    - 小结
    0x8.1   --    影响用户范围
    0x8.2   --    解决办法
|=------------------------------------------------------------------------=|
 
---------[ 0x1 - 前言 ]

一两年前,访问网站的时候经常被重定位到北京宽带智能纠错网站去,比较烦人。
后来一段时间好象也没有了,也就没有注意了。这几天,访问网站的时候又经常出现
一些奇怪的现象。初步判断网络有点问题,当然我能确保我的系统是干净的。
使用环境 winxp sp2 firefox,北京网通ADSL拨号上网,使用DHCP自动分配IP和获得DNS,
不使用IE是因为IE自身也内嵌了3721查询,正确的说是内嵌了auto.search.msn.com.

关键字:DNS查询 ,HTTP协议,WHOIS 查询,DNS轮循
 
---------[ 0x2 - 一些怪现象 ]

这里就不重述DNS是如何工作的,以及DNS在整个互联网中的重要性。
---------[ 0x2.1 - ping一些不存在的域名 ]
先来看看一些现象:
======================================================================
ping fuck12334566.com
Pinging fuck12334566.com [202.108.251.209] with 32 bytes of data:
Reply from 202.108.251.209: bytes=32 time=17ms TTL=247
Reply from 202.108.251.209: bytes=32 time=16ms TTL=247
Ping statistics for 202.108.251.209:
    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 16ms, Maximum = 17ms, Average = 16ms
Control-C
^C
ping fuck12334566.com
Pinging fuck12334566.com [202.108.251.209] with 32 bytes of data:
Reply from 202.108.251.209: bytes=32 time=15ms TTL=247
Ping statistics for 202.108.251.209:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 15ms, Maximum = 15ms, Average = 15ms
Control-C
^C
ping fuck12334567.com
Pinging fuck12334567.com [202.108.251.209] with 32 bytes of data:
Reply from 202.108.251.209: bytes=32 time=17ms TTL=247
Ping statistics for 202.108.251.209:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 17ms, Maximum = 17ms, Average = 17ms
Control-C
^C
ping fuck12334568.com
Pinging fuck12334568.com [202.108.251.207] with 32 bytes of data:
Reply from 202.108.251.207: bytes=32 time=18ms TTL=247
Reply from 202.108.251.207: bytes=32 time=17ms TTL=247
Ping statistics for 202.108.251.207:
    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 17ms, Maximum = 18ms, Average = 17ms
Control-C
^C
ping fuck12334569.com
Pinging fuck12334569.com [202.108.251.209] with 32 bytes of data:
Reply from 202.108.251.209: bytes=32 time=16ms TTL=247
Ping statistics for 202.108.251.209:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 16ms, Maximum = 16ms, Average = 16ms
Control-C
^C
ping fuck12334570.com
Pinging fuck12334570.com [202.108.251.206] with 32 bytes of data:
Reply from 202.108.251.206: bytes=32 time=16ms TTL=247
Ping statistics for 202.108.251.206:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 16ms, Maximum = 16ms, Average = 16ms
Control-C
^C
ping fuck12334571.com
Pinging fuck12334571.com [202.108.251.209] with 32 bytes of data:
Reply from 202.108.251.209: bytes=32 time=17ms TTL=247
Ping statistics for 202.108.251.209:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 17ms, Maximum = 17ms, Average = 17ms
Control-C
======================================================================
为什么会这样,明名胡乱打的一个域名为什么会返回一系列IP地址呢,是偶然
还是巧合?
dns服务器返回的一些ip地址
202.108.251.209
202.108.251.206
202.108.251.207
202.108.251.213
===============================================================
inetnum:      202.108.0.0 - 202.108.255.255
netname:      CNCGROUP-BJ
descr:        CNCGROUP Beijing province network
descr:        China Network Communications Group Corporation
descr:        No.156,Fu-Xing-Men-Nei Street,
descr:        Beijing 100031
country:      CN
admin-c:      CH455-AP
tech-c:       SY21-AP
mnt-by:       APNIC-HM
mnt-lower:    MAINT-CNCGROUP-BJ
mnt-routes:   MAINT-CNCGROUP-RR
changed:      hm-changed@apnic.net 20031017
status:       ALLOCATED PORTABLE
changed:      hm-changed@apnic.net 20060124
source:       APNIC
role:         CNCGroup Hostmaster
e-mail:       abuse@cnc-noc.net
address:      No.156,Fu-Xing-Men-Nei Street,
address:      Beijing,100031,P.R.China
nic-hdl:      CH455-AP
phone:        +86-10-82993155
fax-no:       +86-10-82993102
country:      CN
admin-c:      CH444-AP
tech-c:       CH444-AP
changed:      abuse@cnc-noc.net 20041119
mnt-by:       MAINT-CNCGROUP
source:       APNIC
person:       sun ying
address:      fu xing men nei da jie 97, Xicheng District
address:      Beijing 100800
country:      CN
phone:        +86-10-66030657
fax-no:       +86-10-66078815
e-mail:       suny@publicf.bta.net.cn
nic-hdl:      SY21-AP
mnt-by:       MAINT-CNCGROUP-BJ
changed:      suny@publicf.bta.net.cn 19980824
changed:      hm-changed@apnic.net 20060717
source:       APNIC
===============================================================

---------[ 0x2.2 - 抓包分析 ]
抓包分析下
===============================================================
Frame 3 (93 bytes on wire, 93 bytes captured)
Ethernet II, Src: Vmware_fc:4e:c4 (00:50:56:fc:4e:c4), Dst: Vmware_2b:e7:dd (00:0c:29:2b:e7:dd)
Internet Protocol, Src: 192.168.174.2 (192.168.174.2), Dst: 192.168.174.132 (192.168.174.132)
User Datagram Protocol, Src Port: domain (53), Dst Port: 1326 (1326)
Domain Name System (response)
    Transaction ID: 0xc627
    Flags: 0x8180 (Standard query response, No error)
    Questions: 1
    Answer RRs: 1
    Authority RRs: 0
    Additional RRs: 0
    Queries
        fuck123445452.com: type A, class IN
            Name: fuck123445452.com
            Type: A (Host address)
            Class: IN (0x0001)
    Answers
        fuck123445452.com: type A, class IN, addr 202.108.251.213
            Name: fuck123445452.com
            Type: A (Host address)
            Class: IN (0x0001)
            Time to live: 1 minute
            Data length: 4
            Addr: 202.108.251.213
===============================================================
很显然dns服务器告诉我们的就是:fuck123445452.com的ip地址为202.108.251.213
 
---------[ 0x3 - 浏览器浏览不存在域名被重定位 ]

---------[ 0x3.1 - 现象 ]

  再来看看http协议上的问题,我们用firefox敲了一个网址进去
www.chinatesttesttest.com (特意查了下,这个域名是还没有被人注册的) ,
结果返回回来的是
===============================================================
无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器
设置。
请尝试以下操作:
    * ·单击 refresh.gif (82 字节) 刷新按钮,或稍后重试。
    * ·如果您已经在地址栏中输入该网页的地址, 请确认其拼
==============================================================
是不是觉得奇怪呢,是的,不奇怪才怪了呢

---------[ 0x3.2 - 抓包分析 ]
抓包分析吧
firefox的动作
★ 第一步
  查询www.chinatesttesttest.com的ip地址,如上一样dns服务器返回
  202.108.251.215
★ 第二步
  2.1 向202.108.251.215发送GET / HTTP/1.1\r\n请求。
  2.2 202.108.251.215返回数据
===============================================================
Hypertext Transfer Protocol
Line-based text data: text/html
    <html>
    <head>
    <style>body{margin:0px;padding:0px;overflow:hidden;}</style>
    <!--<script language="javascript" type="text/javascript" src="http://xxxxxx.bobodogs.com/"></script>-->
    </head>
    <body>
            <iframe name="iframe0" src="http://www.jcdh.cn/1.html?url=www.chinatesttestest.com/" WIDTH="100%" HEIGHT="100%" FRAMEBORDER="0" />
   
    <!--xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-->
    </body>
    </html>
    
===============================================================
ok这里出现了bobodogs.com和jcdh.cn这两个网站。
看看这两个网站分别是什么
jcdh.cn是北京宽带网网站。(后补:是乍看是)
bobodogs.com是博博狗。
他们俩什么关系??
===============================================================
jcdh.cn whois 信息
Domain Name     jcdh.cn
Domain Status    ok
Registrant Name    吕先生
Administrative Email    dayu2008@163.com
Sponsoring Registrar    北京万网志成科技有限公司
Name Server    dns11.hichina.com
Name Server    dns12.hichina.com
Registration Date    2006-09-15 14:11
Expiration Date    2007-09-15 14:11
===============================================================
bobodogs whois 信息
   Domain Name: BOBODOGS.COM
   Registrar: HICHINA WEB SOLUTIONS (HONG KONG) LIMITED
   Whois Server: grs.hichina.com
   Referral URL: http://whois.hichina.com
   Name Server: DNS12.HICHINA.COM
   Name Server: DNS11.HICHINA.COM
   Status: ACTIVE
   EPP Status: ok
   Updated Date: 18-Jul-2006
   Creation Date: 18-Jul-2006
   Expiration Date: 18-Jul-2008
[grs.hichina.com]
Domain Name ..................... bobodogs.com
Name Server ..................... dns11.hichina.com
                                  dns12.hichina.com
Registrant ID ................... hc468722731-cn
Registrant Name ................. HAICHUAN LI
Registrant Organization ......... LI HAICHUAN
Registrant Address .............. BEIJING
Registrant City ................. BEIJING
Registrant Province/State ....... BEIJING
Registrant Postal Code .......... 100029
Registrant Country Code ......... CN
Registrant Phone Number ......... +86.01058208009 -
Registrant Fax .................. +86.01058208005 -
Registrant Email ................ ponyring@gmail.com
Administrative ID ............... hc468722731-cn
Administrative Name ............. HAICHUAN LI
Administrative Organization ..... LI HAICHUAN
Administrative Address .......... BEIJING
Administrative City ............. BEIJING
Administrative Province/State ... BEIJING
Administrative Postal Code ...... 100029
Administrative Country Code ..... CN
Administrative Phone Number ..... +86.01058208009 -
Administrative Fax .............. +86.01058208005 -
Administrative Email ............ ponyring@gmail.com
Billing ID ...................... hichina001-cn
Billing Name .................... hichina
Billing Organization ............ HiChina Web Solutions Limited
Billing Address ................. 3/F., HiChina Mansion
                                  No.27 Gulouwai Avenue
                                  Dongcheng District
Billing City .................... Beijing
Billing Province/State .......... Beijing
Billing Postal Code ............. 100011
Billing Country Code ............ CN
Billing Phone Number ............ +86.01064242299 -
Billing Fax ..................... +86.01064258796 -
Billing Email ................... domainadm@hichina.com
Technical ID .................... hichina001-cn
Technical Name .................. hichina
Technical Organization .......... HiChina Web Solutions Limited
Technical Address ............... 3/F., HiChina Mansion
                                  No.27 Gulouwai Avenue
                                  Dongcheng District
Technical City .................. Beijing
Technical Province/State ........ Beijing
Technical Postal Code ........... 100011
Technical Country Code .......... CN
Technical Phone Number .......... +86.01064242299 -
Technical Fax ................... +86.01064258796 -
Technical Email ................. domainadm@hichina.com
Expiration Date ................. 2008-07-18 06:21:34
===============================================================
  ★ 第三步:
  根据返回回来的数据,firefox继续访问www.jcdh.cn ,GET 1.html?url=www.chinatesttestest.com
这次返回的数据如下:
===============================================================
Hypertext Transfer Protocol
Line-based text data: text/html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <html>
   
    <head>
    <style>
    a:link\t\t\t{font:9pt/12pt \313\316\314\345; color:red}
    a:visited\t\t{font:9pt/12pt \313\316\314\345; color:#4e4e4e}
    img\t\t\t\t\t{display:none;}
    img.dis\t\t\t{display:inline;}
    </style>
    <script language="javascript" type="text/javascript">window.status="\315\352\261\317";</script>
    <script language="javascript" type="text/javascript" src="http://xxxxxx.bobodogs.com/1.shtml"></script>
    <meta HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312">
    <title>bobodogs.com \325\322\262\273\265\275\267\376\316\361\306\367</title>
    </head>
   
    <body bgcolor="white">
    <table width="400" cellpadding="3" cellspacing="5">
      <tr>
        <td id="tableProps" valign="top" align="left"><img class="dis" id="pagerrorImg" SRC="res://shdoclc.dll/pagerror.gif"
        width="25" height="33"></td>
        <td id="tableProps2" align="left" valign="middle" width="360"><h1 id="textSection1"
        style="COLOR: black; FONT: 13pt/14pt \313\316\314\345"><span id="errorText">\316\336\267\250\317\324\312\276\315\370\322\263</span></h1>
        </td>
      </tr>
      <tr>
        <td id="tablePropsWidth" width="400" colspan="2"><font
        style="COLOR: black; FONT: 8pt/11pt verdana">\304\372\325\375\324\332\262\351\325\322\265\304\322\263\265\261\307\260\262\273\277\311\323\303\241\243
        \315\370\325\276\277\311\304\334\323\366\265\275\326\247\263\326\316\312\314\342\243\254\273\362\325\337\304\372\320\350\322\252
        \265\367\325\373\304\372\265\304\344\257\300\300\306\367\311\350\326\303\241\243</font></td>
      </tr>
      <tr>
        <td id="tablePropsWidth" width="400" colspan="2"><font id="LID1"
        style="COLOR: black; FONT: 9pt/12pt \313\316\314\345"><hr color="#C0C0C0" noshade>
        <p id="LID2">\307\353\263\242\312\324\322\324\317\302\262\331\327\367:</p><ul>
          <li id="instructionsText1">\265\245\273\367
          <a xhref="javascript:location.reload()" target="_self">
    \t     <img class="dis" border=0 src="res://shdoclc.dll/refresh.gif" width="13" height="16" alt="refresh.gif (82 \327\326\275\332)" align="middle"></a> <a xhref="javascript:location.reload()" target="_self">\313\242\320\302</a>\260\264\305
          </li>
         
          <li id="instructionsText2">\310\347\271\373\304\372\322\321\276\255\324\332\265\330\326\267\300\270\326\320\312\344\310\353\270\303\315\370\322\263\265\304\265\330\326\267\243\254
            \307\353\310\267\310\317\306\344\306\264\320\264\325\375\310\267\241\243<br>
          </li>
          <li id="instructionsText3">\322\252\274\354\262\351\304\372\265\304\315\370\302\347\301\254\275\323\243\254\307\353\265\245\273\367<b>\271\244\276\337</b>\262\313\265\245\243\254\310\273\272\363\265\245\273\367
            <b>Internet \321\241\317\356</b>\241\243\324\332<b>\301\254\275\323</b>\321\241\317\356\277\250\311\317\243\254\265\245\273\367<b>\311\350\326\303</b>\241\243
            \311\350\326\303\261\330\320\353\323\353\304\372\265\304\276\326\323\362\315\370 (LAN) \271\334\300\355\324\261\273\362 Internet \267\376\316\361\271\251\323\246\311\314 (ISP) \314\341\271\251\265\304\322\273\326\302\241\243 </li>
         <li ID="list4">\262\351\277\264\304\372\265\304 Internet \301\254\275\323\311\350\326\303\312\307\267\361\325\375\310\267\261\273\274\354\262\342\241\243\304\372\277\311\304\334\311\350\326\303\310\303 Microsoft Windows \274\354\262\3
            <OL>
            <li id="instructionText6">\265\245\273\367<b>\271\244\276\337</b>\262\313\265\245\243\254\310\273\272\363\265\245\273\367<B>Internet \321\241\317\356</b>\241\243 </li>
            <li id="instructionText7">\324\332<b>\301\254\275\323</b>\321\241\317\356\277\250\311\317\243\254\265\245\273\367<b>LAN \311\350\326\303</b>\241\243</li>
            <li id="instructionText8">\321\241\324\361<b>\327\324\266\257\274\354\262\342\311\350\326\303</b>\243\254\310\273\272\363\265\245\273\367<b>\310\267\266\250</b>\241\243</li>
            </OL>
          </li>
        <li id="instructionsText5">
           \304\263\320\251\325\276\265\343\322\252\307\363 128-\316\273\265\304\301\254\275\323\260\262\310\253\320\324\241\243\265\245\273\367<b>\260\357\326\372</b>\262\313\265\245\243\254\310\273\272\363\265\245\273\367<b>\271\330\323\332
        </li>
        <li id="instructionsText4">
           \310\347\271\373\304\372\322\252\267\303\316\312\304\263\260\262\310\253\325\276\265\343\243\254\307\353\310\267\261\243\304\372\265\304\260\262\310\253\311\350\326\303\304\334\271\273\326\247\263\326\241\243\307\353\265\245\273\367
        </li>
         <li id="list3">\265\245\273\367<a href="javascript:history.back(1)"><img class="dis" valign=bottom border=0 src="res://shdoclc.dll/back.gif">\311\317\322\273\262\275</a>\260\264\305\245\243\254\263\242\312\324\306\344\313\373\301\264\
        </ul>
        <p><br>
        </p>
        <h2 id="IEText" style="font:9pt/12pt \313\316\314\345; color:black">\325\322\262\273\265\275\267\376\316\361\306\367\273\362 DNS \264\355\316\363<BR> Internet Explorer</h2>
        </font></td>
      </tr>
    </table>
    <script language="javascript" type="text/javascript" src="http://js.users.51.la/549643.js"></script>
    <noscript><a href="http://www.51.la/?549643" target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/549643.asp" style="border:none" /></a></noscript>
    </body>
    </html>
===============================================================
这个页面就是上面我们看到了
===============================================================
无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器
设置。
请尝试以下操作:
    * ·单击 refresh.gif (82 字节) 刷新按钮,或稍后重试。
    * ·如果您已经在地址栏中输入该网页的地址, 请确认其拼
==============================================================
后面我们还看到有一个js脚本。
51.1a是免费统计流量的一个网站。
http://js.users.51.la/549643.js
里的内容如下
===============================================================
document.write ('<a href="http://www.51.la/?549643" target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1; VIP &#x7528;&#x6237;" src="http://icon.ajiang.net/icon_0.gif" style="border:none" /></a>\n');
document.write ('<script>var a549643tf="51la";var a549643pu="";var a549643pf="51la";var a549643su=window.location;var a549643sf=document.referrer;var a549643of="";var a549643op="";var a549643ops=1;var a549643ot=1;var a549643d=new Date();var a549643color="";if (navigator.appName=="Netscape"){a549643color=screen.pixelDepth;} else {a549643color=screen.colorDepth;}<\/script><script>a549643tf=top.document.referrer;<\/script><script>a549643pu =window.parent.location;<\/script><script>a549643pf=window.parent.document.referrer;<\/script><script>a549643ops=document.cookie.match(new RegExp("(^| )AJSTAT_ok_pages=([^;]*)(;|$)"));a549643ops=(a549643ops==null)?1: (parseInt(unescape((a549643ops)[2]))+1);var a549643oe =new Date();a549643oe.setTime(a549643oe.getTime()+60*60*1000);document.cookie="AJSTAT_ok_pages="+a549643ops+ ";expires="+a549643oe.toGMTString();a549643ot=document.cookie.match(new RegExp("(^| )AJSTAT_ok_times=([^;]*)(;|$)"));if(a549643ot==null){a549643ot=1;}else{a549643ot=parseInt(unescape((a549643ot)[2])); a549643ot=(a549643ops==1)?(a549643ot+1):(a549643ot);}a549643oe.setTime(a549643oe.getTime()+365*24*60*60*1000);document.cookie="AJSTAT_ok_times="+a549643ot+";expires="+a549643oe.toGMTString();<\/script><script>a549643of=a549643sf;if(a549643pf!=="51la"){a549643of=a549643pf;}if(a549643tf!=="51la"){a549643of=a549643tf;}a549643op=a549643pu;try{lainframe}catch(e){a549643op=a549643su;}document.write(\'<img style="width:0px;height:0px" src="http://36.db.51.la/s.asp?id=549643&tpages=\'+a549643ops+\'&ttimes=\'+a549643ot+\'&tzone=\'+(0-a549643d.getTimezoneOffset()/60)+\'&tcolor=\'+a549643color+\'&sSize=\'+screen.width+\',\'+screen.height+\'&referrer=\'+escape(a549643of)+\'&vpage=\'+escape(a549643op)+\'" \/>\');<\/script>');
===============================================================
这段js将产生一个
    http://36.db.51.la/s.asp?id=549643&tpages=6&ttimes=1&tzone=8&tcolor=32&sSize=800,600&referrer=http%3A//www.chinatesttestest.com/&vpage=http%3A//www.jcdh.cn/1.html%3Furl%3Dwww.chinatesttestest.com/
    的请求,以增加xxx.dododogs.com的流量和PV。
  ★ 第四步
    firefox的访问那个36.db.51.la网站,增加其流量和PV.
 
---------[ 0x4 - xxxxxx.bobodogs.com的统计数据 ]

  到此,firefox的任务完成了,我们来看看这个用户ID为549643现在一些统计数据
基本情况
网站名称:    xxxxxx.bobodogs.com
( 享有我要啦 VIP 贵宾服务 )
网站地址:    http://xxxxxx.bobodogs.com
网站简介:    -
站长:    mohome
在线人数:    正在读取 人 [查看在线用户详情]
开始统计:    2006-9-6 14:00:00
已统计:    37.30 天
我要啦排名:    255 [最近3个月排名回顾]
基本流量状况
    访问量    浏览量
总量:    1136044 IP    4257828 PV
今日流量:    135122 IP    558541 PV
昨日流量:    135739 IP    544212 PV
本月合计:    355116 IP    1342385 PV
今年合计:    1136044 IP    4257828 PV
平均每日:    30457 IP    114151 PV
预计今日:    155220 IP    630867 PV
访问量排名 ( 独立IP排名 )
    2006-10-12     最近七天     最近三个月
IP 量     135739 IP     218861 IP     1000922 IP
访问量排名     第 42 名     第 255 名     第 735 名
浏览量排名 ( PV排名 )
    2006-10-12     最近七天     最近三个月
PV 量     544212 PV     781265 PV     3699287 PV
浏览量排名     第 83 名     第 429 名     第 970 名
xxxxxx.bobodogs.com 的流量100%的来自/1.html?url=
===============================================================
IP ( 点击 IP 追踪访问者 )      上站时间      来路      入口网址      回头客       浏览器      Alexa
61.50.170.145     北京市     21:17:09     mv.baidusp.co     /1.html?url=mv.baidusp.co/     1     MSIE 6.0     ×
219.236.152.177     北京市     21:17:13     newcrm.chinaren.com     /1.html?url=newcrm.chinaren.com/club     1     MSIE 6.0     ×
221.222.150.157     北京市崇文区     21:16:53     product1.chinadns.co     /1.html?url=product1.chinadns.com/cg     1     MSIE 6.0     ×
221.217.168.149     北京市朝阳区     21:17:14     cc.525354.com     /1.html?url=cc.525354.com/push.aspx?     1     MSIE 6.0     ×
219.238.4.189     北京市朝阳区     21:16:52     www.zhangxlei.com     /1.html?url=www.zhangxlei.com/     1     MSIE 6.0     ×
221.223.171.18     北京市海淀区     21:17:15     www.cn.dhl.cn     /1.html?url=www.cn.dhl.cn/     1     MSIE 6.0     ×
61.51.129.178     北京市海淀区     21:17:02     www.9002.     /1.html?url=www.9002./     1     MSIE 6.0     ×
221.220.130.220     北京市大兴区     21:17:14     prced.com     /1.html?url=prced.com/     1     MSIE 6.0     √
221.223.182.253     北京市海淀区     21:17:07     374.adsina.allyes.co     /1.html?url=374.adsina.allyes.com/ma     1     MSIE 6.0     ×
221.221.223.109     北京市海淀区     21:16:53     www.uuubbb.com     /1.html?url=www.uuubbb.com/     1     MSIE 6.0     ×
221.4.236.194     广东省惠州市     21:17:05     www.163com     /1.html?url=www.163com/     1     MSIE 6.0     ×
60.194.223.82     北京市     21:16:48     minisite.qq.com     /1.html?url=minisite.qq.com/all/alli     1     MSIE 6.0     ×
......
===============================================================

本身 http://xxxxxx.bobodogs.com/ 的网站访问过去的时候报了个http 404错误。
 
---------[ 0x5 - www.bobodogs.com的统计数据 ]

www.bobodogs.com本身自己定位是一个博客,美女,美图的这么一个网站。
来看看www.bobodogs.com的统计情况
基本情况
网站名称:    博博狗
网站地址:    http://www.bobodogs.com
网站简介:    -
站长:    bobodogs
在线人数:    正在读取 人 [查看在线用户详情]
开始统计:    2006-9-12 14:00:00
已统计:    31.90 天
我要啦排名:    11650 [最近3个月排名回顾]
基本流量状况
    访问量    浏览量
总量:    8059 IP    36861 PV
今日流量:    154 IP    1627 PV
昨日流量:    315 IP    2410 PV
本月合计:    3845 IP    16446 PV
今年合计:    8059 IP    36861 PV
平均每日:    253 IP    1156 PV
预计今日:    398 IP    3566 PV
访问量排名 ( 独立IP排名 )
    2006-10-13     最近七天     最近三个月
IP 量     315 IP     1851 IP     7905 IP
访问量排名     第 10188 名     第 11650 名     第 19536 名
浏览量排名 ( PV排名 )
    2006-10-13     最近七天     最近三个月
PV 量     2410 PV     8943 PV     35234 PV
浏览量排名     第 7003 名     第 10102 名     第 17594 名
 
---------[ 0x6 - 一次被引导到3721网站的过程 ]

  按照上面的分析,现在只要访问一个没有注册的域名的话,会经过一系列的过程后看
到一个网站不可访问的页面。也就是下面这个
===============================================================
无法显示网页
您正在查找的页当前不可用。 网站可能遇到支持问题,或者您需要 调整您的浏览器
设置。
请尝试以下操作:
    * ·单击 refresh.gif (82 字节) 刷新按钮,或稍后重试。
    * ·如果您已经在地址栏中输入该网页的地址, 请确认其拼
==============================================================
但是有几次这样的一个过程居然被引导到了3721的查询网站上去了。
我们再来看看这个过程的细节吧。
  ★ 第一步 进行dns查询 testtest3.localdomain
==============================================================
Domain Name System (response)
    Transaction ID: 0xccc1
    Flags: 0x8180 (Standard query response, No error)
    Questions: 1
    Answer RRs: 1
    Authority RRs: 0
    Additional RRs: 0
    Queries
    Answers
        testtest3.localdomain: type A, class IN, addr 61.51.18.112
            Name: testtest3.localdomain
            Type: A (Host address)
            Class: IN (0x0001)
            Time to live: 1 minute
            Data length: 4
            Addr: 61.51.18.112
==============================================================
  一个还没注册的域名,这次返回的IP是61.51.18.112.
  经过whois查询,这个IP地址信息如下:
==============================================================
inetnum:      61.51.16.0 - 61.51.31.255
netname:      TONGKE-NET
descr:        Beijing Tonek Information Telenology Company
country:      CN
admin-c:      LS39-AP
tech-c:       LS39-AP
mnt-by:       MAINT-CHINANET-BJ
mnt-lower:    MAINT-CHINANET-BJ-TK
status:       ASSIGNED NON-PORTABLE
changed:      hostmast@publicf.bta.net.cn 20020221
changed:      hm-changed@apnic.net 20040927
source:       APNIC
person:       Liu ShuAn
address:      West ChangAn Street 11,XiCheng District
address:      Beijing,  100031
country:      CN
phone:        +86-10-66054242
fax-no:       +86-10-66030434
nic-hdl:      LS39-AP
mnt-by:       MAINT-NULL
changed:      suny@publicf.bta.net.cn 19980827
source:       APNIC
==============================================================
  ★ 第二步 访问61.51.18.112这个网站 返回的数据为
==============================================================
Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
    Set-Cookie: JSESSIONID=8B31638C6757CB1337F65F6E21B6107E; Path=/\r\n
    Content-Type: text/html;charset=ISO-8859-1\r\n
    Content-Length: 652\r\n
    Date: Fri, 13 Oct 2006 09:17:26 GMT\r\n
    Server: Apache-Coyote/1.1\r\n
    \r\n
Line-based text data: text/html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
   
   
    <Script language="JavaScript">
    document.write("<HTML>");
    document.write("<meta HTTP-EQUIV=\"Content-Type\" Content=\"text-html; charset=gb2312\">");
    document.write("<head>");
    document.write("<META HTTP-EQUIV=\"refresh\" content=\"0.1;URL=/URLAsk\">")
    document.write("<title>No Page Found</title></head>");
    //document.write("<FrameSet border=\"0\" cols=\"*,0\">");
    //document.write("<Frame height=\"100%\" frameborder=\"0\" width=\"100%\" src=\"/URLAsk\">");
    //document.write("<Frame src=\"\">");
    //document.write("</FrameSet>");
    document.write("<body></body></HTML>");
    </Script>
==============================================================
    直接重新导向本网站的/URLAsk
 
  ★ 第三步 访问61.51.18.112 的/URLAsk 返回的数据为
==============================================================
Hypertext Transfer Protocol
    HTTP/1.1 302 Moved Temporarily\r\n
    Location: http://auto.search.msn.com/response.asp?MT=testtest3&rov=&utf8\r\n
    Content-Length: 0\r\n
    Date: Fri, 13 Oct 2006 09:17:26 GMT\r\n
    Server: Apache-Coyote/1.1\r\n
    \r\n
==============================================================
    又重新导向auto.search.msn.com,auto.search.msn.com会使用3721的东西来搜索,返回给用户看到的
就是yahoo的3721网站搜索。到此,通过dns的引导,网站的配合,最终引导到yahoo的3721搜索网站。
 
---------[ 0x7 - 有必要看下www.jcdh.cn这个网站 ]
下面是这个网站的首页面内容
==============================================================
<title>北京宽带网-纠错导航</title>
....
<td height="110" colspan="2"><table width="100%" height="110" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="140" height="90" valign="bottom"><img src="pop/bbn_logo.jpg" width="130" height="75" border="0"/><span class="STYLE2"> </span></td>
    <td width="209" valign="bottom"><span class="STYLE2"><span class="STYLE4">温馨提示</span><span class="STYLE5">:</span><br />
      <br />
      您输入的域名或网址无法访问!<br />
      可能是输入错误,或是网站访问超时!</span></td>
    <td width="450" align="right" valign="bottom"><div style="padding-bottom:10px"><img src="pop/g5.jpg" width="430" height="60" /></div></td>
  </tr>
  <tr>
    <td colspan="2" align="right" class="STYLE2">&nbsp;</td>
    <td><span class="STYLE3">&nbsp;&nbsp;&nbsp;&nbsp;我们为您真诚推荐以下精彩内容</span></td>
  </tr>
</table></td>
</tr>
  <tr>
    <td width="350"><table width="100%" height="500" border="0" cellpadding="0" cellspacing="0">
     
      <tr>
        <td valign="top"><table width="345" height="400" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td><iframe src="error.html" width="345" height="500" marginheight="0" marginwidth="0" frameborder="0" style="border:1px #D6E9F7 solid;"></iframe></td>
          </tr>
        </table></td>
      </tr>
     </table></td>
    <td><table width="100%" height="500" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td height="218" align="right" valign="top"><table width="430" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="430" height="34" background="pop/430-34.jpg"><table width="100%" height="34" border="0" cellpadding="0" cellspacing="0">
                  <tr>
                    <td width="20">&nbsp;</td>
                    <td width="73" align="center" class="STYLE6">焦点</td>
                    <td width="71" align="center"><div class="div_sub"><a href="http://www.bobodogs.com/sh/jujiaoshehui/" target="_blank">社会</a></div></td>
                    <td width="71" align="center"><div class="div_sub"><a href="http://www.bobodogs.com/lx/xingshizhenxinhua" target="_blank">两性</a></div></td>
                    <td width="71" align="center"><div class="div_sub"><a href="http://www.bobodogs.com/sp/" target="_blank">视频</a></div></td>
                    <td width="76" align="center"><div class="div_sub"><a href="http://www.bobodogs.com/tp" target="_blank">美图</a></div></td>
                    <td>&nbsp;</td>
                  </tr>
                 
                </table></td>
...
==============================================================
我们看到
  最上面的title是显示的北京宽带网-纠错导航,
  左上角使用的北京-宽带网-BNN的logo,还有“温馨提示:您输入的域名或网址无法访问!
      可能是输入错误,或是网站访问超时”,
  左下角是一个error.html页面 , http://www.jcdh.cn/error.html ,显示
      无法显示网页,模拟的是 Internet Explorer 找不到服务器或 DNS 错误 的错误。
      (我可是用的是firefox啊)
  右边是连接到www.bobodogs.com的内容。
 
---------[ 0x8 - 小结 ]
 
  本文是一篇技术文章,不想多说什么了......
 
 
  网上类试的文章
---------[ 0x8.1 - 影响用户范围 ]
 
  从51.la的统计上来看,影响的是北京网通的ADSL拨号用户

---------[ 0x8.2 - 解决办法 ]
  假如你比较厌烦这个东西的话,不要设置自动获得DNS服务器地址,自己手动添写非网通的DNS服务器。
  比如北京电信的 202.96.199.133  202.96.0.133  202.106.0.20  202.106.148.1  202.97.16.195   

---------EOF
22 juillet

灭除Roogoo

近日,惨遭Roogoo蹂躏,在Symantec找到了解决方案:
 
中招的状态下你在google搜索roogoo是没有结果的,不过,当你在hosts里面把show.roogoo.com指向本地以后,你就可以找到一堆资料了。
 
基本上,杀毒,删除注册表,外加重新安装网络协议,可以搞定它
14 juin

如何用MSSQL处理千万级的数据

在几十万数据量的时候,不管远程还是本地的速度都是很快的;
 
不过一旦到达五百万左右的时候,主键、索引的效果就比较明显了,不过网络的因素会造成跨平台的查询的最大消耗,甚至占60%以上的消耗;
 
当千万级的时候,噩梦开始了,硬盘已经成了最大的问题,即使在本地,单个文件4G的限制,造成日志不能流畅扩充的问题。同时服务器的内存也会经受严峻的考验,相对的CPU的负载还不是很大的,不过建议至少是双通的CPU,内存2G才好。
 
以上所说的数据量都是一次操作的时候,命中的最小记录集数量。
 
 
 
 

用存储过程模板构建存储过程

最近一直在处理存储过程的问题,一个很大的问题就是构建大量的类似结构、类似功能的存储过程,大部分都是重复性劳动,想要直接用程序通过存储过程去构建这类的存储过程,却由于开发体系的局限,不能完全的控制,只好用程序控制参数,由存储过程来构建具体的存储过程。
 
/******
Object:  Stored Procedure [dbo].[SMS_WEBADMIN_II_make_StoredProcedure] 生成存储过程
 ******/
IF EXISTS (SELECT * FROM dbo.sysobjects where id = object_id(N'[dbo].[SMS_WEBADMIN_II_make_StoredProcedure]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
 DROP PROCEDURE [dbo].[SMS_WEBADMIN_II_make_StoredProcedure]
GO
CREATE PROCEDURE [dbo].[SMS_WEBADMIN_II_make_StoredProcedure]
 @strName nvarchar(100) = '', --存储过程名
 @intTPL int = 0, --存储过程模板
 
 @strVar01 nvarchar(100) = '', --参数
 @strVar02 nvarchar(100) = '', --参数
 @strVar03 nvarchar(100) = '', --参数
 @strVar04 nvarchar(100) = '', --参数
 @strVar05 nvarchar(100) = '', --参数
 @strVar06 nvarchar(100) = '', --参数
 @strVar07 nvarchar(100) = '', --参数
 @strVar08 nvarchar(100) = '', --参数
 @strVar09 nvarchar(100) = '', --参数
 @strVar10 nvarchar(100) = '', --参数
 @strVar11 nvarchar(100) = '', --参数
 @strVar12 nvarchar(100) = '', --参数
 @strVar13 nvarchar(100) = '' --参数
AS
DECLARE @strSQL nvarchar(4000) --SQL语句
DECLARE @strSPLIT varchar(5) --分行符
SET @strSPLIT = ' ' + CHAR(13) + ' '
DECLARE @isDEBUG bit --DEBUG信息输出 0 不输出 1 输出
SET @isDEBUG = 1
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
SET NOCOUNT ON
IF (LEN(@strName)>0)
 BEGIN
  --清理以前的存储过程
  IF EXISTS (SELECT * FROM dbo.sysobjects where id = object_id(@strName) and OBJECTPROPERTY(id, N'IsProcedure') = 1)
   BEGIN
    SET @strSQL= N'DROP PROCEDURE ' + @strName + ' '
    IF (@isDEBUG>0)
     PRINT(@strSQL)
    EXEC(@strSQL)
   END 
  IF (@intTPL=1) 
   BEGIN
    --模板 分页列表
    IF (@isDEBUG>0)
     PRINT('TEMPLETE:'+CONVERT(varchar(11),@intTPL))
     
    SET @strSQL =  N'CREATE PROCEDURE ' + @strName + @strSPLIT +
        '@intPages int = 1,' + @strSPLIT + --页码,0 取出分页数据 1 取出具体页码信息
        '@intRecordPerPage int = 10,' + @strSPLIT + --每页记录数
        '@strOrderBy nvarchar(200) = '''',' + @strSPLIT + --排序条件
        '@strMobile varchar(15) = '''',' + @strSPLIT + --关键字 手机号
        '@dateBeginDate datetime = '''',' + @strSPLIT + --起始时间
        '@dateEndDate datetime = ''''' + @strSPLIT + --结束时间
        
       'AS' + @strSPLIT +
      
       'DECLARE @strSQL nvarchar(4000)' + @strSPLIT + --SQL语句
       'DECLARE @strSQLAddOn nvarchar(1000)' + @strSPLIT + --附加SQL语句
      
       'DECLARE @intRecordBegin int' + @strSPLIT + --开始记录数
       'DECLARE @intTotalRecord int' + @strSPLIT + --总记录数
       'DECLARE @intMaxPage int' + @strSPLIT + --最大页数
      
       'DECLARE @isDEBUG bit' + @strSPLIT + --DEBUG信息输出 0 不输出 1 输出
       'SET @isDEBUG = 0' + @strSPLIT +
      
       'SET @intTotalRecord = 0' + @strSPLIT +
       'SET @strSQLAddOn = ''''' + @strSPLIT +
      
       'IF (@intRecordPerPage<0)' + @strSPLIT +
        'SET @intRecordPerPage = 10' + @strSPLIT +
       'IF (LEN(@strMobile)>0)' + @strSPLIT +
        'SET @strSQLAddOn = @strSQLAddOn + ''AND ' + @strVar08 + ' ='''' + @strMobile + '''' ''' + @strSPLIT +
      
       'IF (@dateBeginDate < ''2000-01-01'')' + @strSPLIT +
        'SET @dateBeginDate = ''2000-01-01''' + @strSPLIT +
       'IF ((@dateEndDate < @dateBeginDate) OR (@dateEndDate > getdate()) )' + @strSPLIT +
        'SET @dateEndDate = getdate()' + @strSPLIT +
       'SET @strSQLAddOn = @strSQLAddOn + '' AND ( ' + @strVar06 + ' BETWEEN '''''' + CONVERT(varchar(22),@dateBeginDate,20) + '''''' AND '''''' + CONVERT(varchar(22),@dateEndDate,20) + '''''' ) ''' + @strSPLIT +
      
       'IF (LEN(@strOrderBy) < 1)' + @strSPLIT +
        'SET @strOrderBy = ''' + @strVar05 + ' DESC''' + @strSPLIT +
      
       'SET ANSI_NULLS ON' + @strSPLIT +
       'SET ANSI_WARNINGS ON' + @strSPLIT +
       'SET NOCOUNT ON' + @strSPLIT +
      
       'SET @strSQL = N''SELECT @intTotalRecord=ISNULL(COUNT(*),0) '' +' + @strSPLIT +
                       '''FROM ' + @strVar01 + @strVar03 + @strVar02 + @strVar04 +' '' + ' + @strSPLIT +
                       '''WHERE 1=1 '' + @strSQLAddOn' + @strSPLIT +
       'IF (@isDEBUG>0)' + @strSPLIT +
        'PRINT(@strSQL)' + @strSPLIT +
       'EXECUTE sp_executesql @strSQL,N''@intTotalRecord int OUTPUT'',@intTotalRecord OUTPUT' + @strSPLIT +
      
       'IF (@intPages < 1 )' + @strSPLIT +
        'BEGIN' + @strSPLIT +
         'SET @strSQL = ''SELECT '' + CONVERT(varchar(11),@intTotalRecord)+ '' AS TotalRecord ''' + @strSPLIT +
        'END' + @strSPLIT +
       'ELSE' + @strSPLIT +
        'BEGIN' + @strSPLIT +
         'SET @intMaxPage = (@intTotalRecord)/(@intRecordPerPage)' + @strSPLIT +
         'SET @intMaxPage = CAST(@intMaxPage AS int)' + @strSPLIT +
         'IF ((@intTotalRecord%@intRecordPerPage)>0)' + @strSPLIT +
          'SET @intMaxPage = @intMaxPage + 1' + @strSPLIT +
         'IF (@intPages>@intMaxPage)' + @strSPLIT +
          'SET @intPages = @intMaxPage' + @strSPLIT +
         'IF (@intPages<1)' + @strSPLIT +
          'SET @intPages = 1' + @strSPLIT +
         'SET @intRecordBegin=@intRecordPerPage*(@intPages-1)' + @strSPLIT +
         
         'SET @strSQL = ''SELECT TOP '' + CONVERT(varchar(11),@intRecordPerPage)+ ''  ' + @strVar05 + ',CONVERT(varchar(23),' + @strVar06 + ',21) AS ' + @strVar06 + ',' + @strVar07 + ',' + @strVar08 + ',' + @strVar09 + ',' + @strVar10 + ' '' +' + @strSPLIT +
                         '''FROM ' + @strVar01 + @strVar03 + @strVar02 + @strVar04 + ' '' +' + @strSPLIT +
                        '''WHERE (' + @strVar05 + ' NOT IN '' +' + @strSPLIT +
                               '''(SELECT TOP '' + CONVERT(varchar(11),@intRecordBegin) + '' ' + @strVar05 + ' '' +' + @strSPLIT +
                                  '''FROM ' + @strVar01 + @strVar03 + @strVar02 + @strVar04 + ' '' +' + @strSPLIT +
                                 '''WHERE 1=1 '' + @strSQLAddOn + '' '' +' + @strSPLIT +
                                 '''ORDER BY'' + @strOrderBy+'') ) '' + @strSQLAddOn +' + @strSPLIT +
                        '''ORDER BY'' + @strOrderBy + '' ''' + @strSPLIT +
        'END' + @strSPLIT +
        'IF (@isDEBUG>0)' + @strSPLIT +
        'PRINT(@strSQL)' + @strSPLIT +
        'EXECUTE(@strSQL)' + @strSPLIT +
      
       'SET NOCOUNT OFF'
      
    IF (@isDEBUG>0)
     PRINT('SQL:'+@strSQL)
    IF (@isDEBUG>0)
     PRINT('LENGTH:'+CONVERT(varchar(11),LEN(@strSQL)))
    EXEC(@strSQL) 
   END 
      
 END
SET NOCOUNT OFF
GO
 
调用时模板1的参数一个例子

SMS_WEBADMIN_II_make_StoredProcedure 'test_001',1,'[ip].', '[dbuser].','[dbname].','[dbtable]','[id]','[date]','[spnum]', '[mobile]','[content]','[city]'
 
其中的存储过程名字和参数,全部交给程序来控制,不管是再放到数据库里面还是简单的用array来控制,就是极为方便的。