Akismet(防Spam垃圾留言)的ASP类

今天将原来的日志评论审核机制换成了Akismet识别的方式。

AkismetWordPress中的一个优秀的防止Spam的插件,使用Akismet必须要去申请一个WordPress的Key,这个Key只要注册WordPress官方的用户就可以免费得到。但并不是只可以在WordPress中使用,只要你去阅读Akismet的API,你就可以整合到其他的博客程序中了。我这里提供一个Akismet的ASP类和一些API说明,想在自己的ASP程序中整合的话不妨看一看。

请先下载Akismet(ASP),废话不多说了,先看一段下面的代码:

最后,你可以根据 isSpam 这个变量返回的值来执行相应的操作。

我的这个类中,在类初始化函数中自动获取了用户的IP,你也可以自己来写一个函数,然后在调用类的时候来指定IP地址。类中“submitSpam()”函数是用来向Akismet报道一个Spam,报告后要通过审核,所以并不是会立即生效,所以你也可以在自己的程序中加入相应的屏蔽操作。“submitHam()”函数是来向Akismet说明提交的是一个标记错误的Spam,也要经过相应的审核。

PS,发现做为一个网民,不翻墙不行,所以今天下载了最新的Tor,终于又可以顺利的翻墙了:)

让IIS 7显示ASP的详细错误信息

由于要调试一些ASP程序,所以今天安装了IIS,安装时要注意展开“Internet 信息服务”——“万维网服务”——“应用程序开发功能”,在里面勾选“ASP”选项,IIS 7默认安装是不启用ASP的。

安装完成后调试页面时,当ASP代码出现问题后不会提示详细的错误信息,无论什么样的代码错误,只显示“500 – 内部服务器错误。”。因为IIS 7.5和IIS 6的管理方式完全不同,所以也无从下手,不知道在哪里设置显示详细错误信息,所以就去网上搜索相关的问题。

看来有很多网友也遇到这个问题了,解决方法很简单:

打开Internet 信息服务(IIS)管理器(运行——inetmgr),然后双击“ASP”打开属性页,如图一

Internet 信息服务(IIS)管理器
图一(Internet 信息服务(IIS)管理器)

然后展开“调试属性”,将“将错误发送到浏览器”的值改为“True”,然后点击右侧的“应用”以保存设置。如图二

“ASP”属性页
图二(“ASP”属性页)

最后双击打开“错误页”属性页,然后点击右侧的“编辑功能设置”,选择“详细错误(D)”。如图三

编辑错误页设置
图三(编辑错误页设置)

 

最后只需要在IE的“Internet 选项”中将“显示友好 HTTP 错误信息”勾选掉,这样就可以显示ASP的详细错误信息了。

确实,这样设置后IIS就已经设置好了,可是还有的网友显示“无法显示页面,因为发生内部服务器错误。”的提示,其实这是在你调试的网站的根目录下有一个名为“web.config”的文件,原来是这个文件在做怪,只要将其删除就就可以了。

这个问题让我足足费了3个小时的时间,可网上没有任何这种解决方法的资料,所以记录下来以便以后使用,也希望可以帮到遇到同样问题的朋友。

这是一篇用Windows Live Writer发布的日志

用WLW好像给我的感觉更加专业:(,作为主流的博客功能,我的博客当然不能少了这么优秀的功能!

通过对XML-RPC协议的查看和对WP的XML-RPC API的研究,在自己的博客中也写了一个相应的WLW接口。WP的API功能算是比较全的了,可以设置关键字、摘要、自定义静态日志名、分类、发布日期等,所以我就选用这个API。

总体来说还算比较简单,现在只支持发布日志,其它功能也用不着,所以也不打算增加功能了。发布还存在小小的一点问题,发布成功后返回的应答请求错误的,在WLW总是显示“从日志服务器接收的对 metaWeblog.newPost 方法的响应无效”,暂时还没有找到什么原因。

WLW是非常不错,但相比我强大的后台发布还是有些逊色,当然这是从SEO的角度说的。

这只是一篇用来测试WLW的日志。

将Twitter整合到博客

xixuyishi的twitter

经过在网上查阅资料和一天的忙活,终于将Twitter整合到博客中了。如果没有被GFW的话,整合应该不难,找ASP的通过代理模拟浏览器访问网站的方法就找了很长时间,最后在一篇文章中看到 MSXML2.ServerXMLHTTP.6.0 可以设置代理,找到如果翻墙的方法,接下来的事情就容易多了。

现在博客中的唠叨数据来自我的Twitter,原本的唠叨内容仅做保留但没有显示出来。侧边栏的唠叨显示最新的10条信息,唠叨页面显示20条信息。

评论列表中增加Gravatar头像展示

今天去 Evance 的博客逛的时候,发现自己的头像可以显示了,突然“心血来潮”,想要在博客的评论列表中加入Gravatar(个人全球统一标识)的头像展示功能,于是便把博客程序的博客功能和评论列表布局都大改了一遍。

增加 Gravatar 还算简单,它是以 Email 地址作为唯一标识符来识别头像的。

基本格式:http://www.gravatar.com/avatar/32位MD5加密后的Email地址?d=默认图片地址(必须经过URL转码)&s=头像大小(单位:px)&r=头像等级(G 普通级、PG 辅导级、R 和 X 为限制级,一般为G)

把上面的地址经过处理后作为图片地址加入到<img>标签内就可以了,这样基于自己的博客程序的 Gravatar 头像展示功能就做好了。

除止之外,评论列表的布局也进行了改动:取消了原来使用<ol><li></li></ol>这样的有序列表标签进行布局,而是使用<div>标签来进行布局。因为用有序列表标签的话,我实在没办法控制好CSS样式。

提交评论后的显示方式也进行了改动,之前是使用JS的方式实现不刷新页面显示提交后的评论数据,但由于JS回显对有HTML格式的内容支持的不是很好,所以便改为了使用AJAX调用回显的方法来实现这个功能。

改动的时候还发现了几个小问题,原来JS保存Cookie的代码一直没有使用。这次改动还算顺利,虽然用了中午的时间,但改动后的效果还算不错。

ASP判断搜索引擎(bot,Spider,机器人,爬虫)的函数

最近用 PHP 做了一个 WAP 的站点,因为只想做个专注于 无线应用协议 的网站,所以没有做电脑客户端浏览的页面。但是为了让使用IE浏览器浏览网站的用户也可以浏览网站,所以就用了一个WAP模拟器的功能,以便使用IE浏览器的朋友也可以浏览到 WAP 站点中的内容。

我分别用了两个域名来指向两个不同的空间,IE浏览的站点其实是使用了一个模拟器模拟手机上网的方式来浏览WAP站点的,所以在输出时使用的JS。但我想让搜索引擎的机器人在浏览IE可以浏览的网页时也显示WAP站点的内容,因此,这个 is_bot 函数便产生了。

这样,当搜索引擎在索引供IE用户浏览的网址时,程序则会根据判断来进行301永久重定向。

ASP已经被淘汰了吗?

今年刚到太原的时候,我到太原市人才市场应聘了一次,想通过这个途径找一个待遇好点的公司。应聘的工作当然不会脱离我的专长,在人才市场转了一圈,看到两家公司招聘程序员的。前者说要招.NET程序员,后者则是让下午去应聘。

ASP.NET我没有接触过,也就没有准备应聘了,所以下午的时候我便到了另外一家网络公司。他们的办公面积大概在150平方米左右,大部分面积被有隔断的桌子占了,大概有20台电脑,这是我见过的硬件设备比较多的一个网络公司了。

面试的时候可能是公司的一个主管,问了下我以前就职的公司。后对我说:“我们只是想招个高级网管,负责一下局域网的维护以及维护曾经做过的一些ASP网站网站,待遇700元。其实我们要求ASP不用懂的太多,只要会点就行了,因为我们现在已经不使用ASP了,现在客户就主动要求使用ASP.NET开发网站,所以可能我们的工作不太适合你。”

我当时心里鄙视的很可以说,先不说ASP.NET与ASP相比哪个好,就他们的这种认识就很可笑,没有一点自知知明,自己ASP运用不好就不要说ASP被淘汰了。51啦便是ASP的,但是运行速度和稳定性都很不错;天涯社区也是ASP的,但是却很成功。

确实,网上关于ASP注入漏洞的文章不少,但这并不是ASP本身的漏洞,就算你用ASP.NET,如果语句写的不妥当,也会很容易产生注入。这只能说明ASP比较普及,因为ASP简单易学,所以关于ASP的漏洞人们便也研究的比较多。回想06年的时候,用挖掘鸡可以挖到一大堆有漏洞的站点,但现在几乎是没有了,程序员都知道了程序安全的重要性,所以比较常见的漏洞也就不会再存在。

去年的时候我问了一下海平一船为什么你们那里不用ASP,而用PHP来做网站呢。他的回答让我很吃惊:“ASP是微软的东西,要收费。”我这才明白了,在港澳地区和其他的部分国家,版权问题很敏感,再加上PHP、jspapache、mysql是开源的而且是跨平台的,所以就成了主流,并不是因为ASP安全性和稳定性不好而没有太多的人使用。

ASP不会成为主流,也不会被淘汰。

所以如果是要做中小型的网站,而且也不考虑跨平台,ASP已经够了,因为它低成本、投入少,完全可以用来完成一些小型的网站,如果数据库比较大,可以使用MSSQL数据库。如果考虑到跨平台,PHP+Mysql完全可以胜任。如果要做大型的网站,那们我建议使用JSP。

利用ASPJpeg组件来做动态图片

在以前看到很多网友的论坛签名中放置着一张可以显示IP信息的图片,当时非常好奇。

今天自己动手也做了一个类似的功能——显示博客中的最新日志,很不错的一个想法,多谢网友“fjfndfjf”提供这个创意。以后就可以在自己的论坛签名中贴上这张图片了,让更多的人可以更大范围的看到我博客的文章。

详细的代码解释就不说了,提供一个压缩包,有兴趣的朋友可以自己研究研究!

这个附件用于ASBlog 2.5的插件中,可以直接在后台进行安装。

包含附件: [File]/uploadfiles/200810/200810187ndklj.rar[/File]

利用Jmail来对友情链接申请者发送邮件

随着博客建立时间的增加,越来越多的朋友提交了友情链接交换申请。

然后我对友情链接的处理却没办法通过申请者,为了让申请者可以得到我对链接的处理结果,我采用了Jmail发送邮件的方法对申请者进行通知。

首先,要使用这个方法,必须让申请者填写Email(即邮箱地址)。所以我便在友情链接申请的表单中加入了“邮箱地址”这一项,这样就可以使用Jmail来对申请友情链接的网站站长进行自动邮件回复了。

当我在后台进行审核友情链接时,如果通过了审核便会发送一个主题为“友情链接通过审核”的邮件到申请者的邮箱里,如果要是删除的话会发送一个主题为“友情链接删除通知”的邮件到申请者的邮箱里,这个过程完全是自动的,不需要我一封一封的对申请者进行回复。

下面是简单的实现代码:

调用:

用这个方法还可以来实现对评论的管理,如果你回复了网友发表的评论,然后使用这个方法自动将一个报道形式的邮件发送到发表评论的作者的邮箱里。

博客中的3个改进

      一旦有了好的改进方案,我便开始对博客程序进行改进。我现在用的博客程序是由“傲胜工作室”编写的“ASBlog 2.1”,当初之所以选用这个程序是因为它后台操作很人性化,但这个程序在我看来还有很多的不足。

      我之前对博客的评论、友情链接显示方式日志评论的审核机制以及模版进行过改进,这些改进的目的都是为了让访客更加方便的浏览我记录的这些信息。

      之前我想过自己编写博客程序,一部分功能也已经编写完成了,但由于时间原因先打消了这个念头,这样我便可以把更多的时间放到对现有博客程序的功能改进上。

1、日志正文表情增加Alt标识

      这是对Fckeditor编辑器的一个修改。后台发表日志时可以在日志中插入各种各样的预设表情,从而使日志变的生动化。
      原先插入这些预设表情时并没有Alt标识,而为图片加入Alt标识不论对于搜索引擎还是访客都是有必要的,所以我在预设的表情加入了预设的Alt标识。

2、增加最新日志功能

      这个功能是用Ajax的方法实现的。在日志浏览页中的左侧加入了“最新日志”这一项,这里将调用最新发表的20篇文章,可以让访客在没有打开博客首页的情况下了解到我发表的最新日志,很大程度上方便了访客对博客的浏览,可以提高访客在我博客中的停留时间。

3、增加相关文章功能

      在日志浏览页正文的下方,增加了一个可以让访客延伸阅读的功能,那就是“相关文章”。
      这个功能是根据日志的标签(Tag)来对文章进行匹配,运用SQL语句中的Like方式来完成程序的实现。

      对博客进行改进的过程中,我尝试了一些以前没有用过的编写方式,使我编写程序的能力有了很大的提高。每当自己想要的效果实现时,心里就感到会有很大的成就感,这就是在学习ASP时的乐趣所在,也是最大的动力所在。