2008年4月28日星期一

baiaogu原创文章:ip138.com太粗糙

百奥谷原创文章:首发站长网。转载请注明出处:百奥谷

大凡站长中没有不知道http://www.ip138.com/这个网站的,不仅是因为其主人李兴平的传奇经历和对草根站长的楷模精神,更因为这个网站的实用方便,成为站长甚至普通网民必不可少的网络工具。

本人使用ip138多年,他的方便实用性这里就不多说了,在这里,我分别从一个普通使用者和一个程序员的角度,来谈谈ip138的粗糙之处和纠正方法。

站长们使用ip138恐怕最多的就是查询域名的IP地址。在ip138中,输入域名后点查询,就可查询到这个域名的IP。在输入域名时,可能出现以下几种情况:

第一种情况:用户输入域名时,可能是直接从IE地址栏复制的网址,然后在ip138中粘帖,但抱歉,ip138却不接受包含“http://”的网址(见图一)。

图一:ip138不接受包含“http://”的网址

第二种情况:如果用户当前的输入法状态正好是大写状态,那他输入的域名就会是大写。抱歉,ip138也不接受大写域名(图二)。

图二:ip138不“认识”大写域名

第三种情况:如果用户输入的过程中前后有空格,或者是从网页中复制的域名后面带有空格(实际上这种情况非常普遍),抱歉,ip138也不“认识”前后有空格的域名(图三)

图三:ip138不“认识”前后有空格的域名

诚然,严格的讲,ip138对用户的要求并没有错,但是,一个网站应该考虑一定的容错性(例如域名前后带空格),为了用户的方便,更要考虑到用户的使用习惯(例如前面加http://)和不同的使用环境(例如大写环境下输入的域名)。

针对上述三种不友好情况,作为网站开发者,其实只要稍微花一点点功夫就可以解决。下面以asp为例介绍上述三种情况的容错代码。

一、允许域名前面带“http://”。只需判断一下用户输入的域名前面有没有“http://”,如果有就用replace删除。

ip=lcase(request.form("ip"))

if left(ip,7)="http://" then ip=replace(ip,"http://","")

二、允许大写或大小写混合输入域名。只要用lcase将用户输入的内容全部转换为小写即可。

ip=lcase(request.form("ip"))

三、允许域名前后带有空格。使用trim()函数可删除用户输入内容前后的空格。

ip=trim(lcase(request.form("ip")))

甚至,允许用户输入的域名中间也带空格,这种情况可使用replace来清除空格。

ip=replace(lcase(request.form("ip"))," ","")

结语:本文并不是要对ip138拍砖,而是从一个站长或程序员角度讲一下,如何从方便用户的角度去开发网站或程序。希望本文对广大站长、程序员有所启发。

没有评论: