WordPress反垃圾评论插件SidXSpam 2.0发布

    由于读书太累,很长时间没写程序,没做插件了,昨天在网上看到网友对我的SidXSpam有些评论,由于SidXSpam存在一些问题需要改进,所以就赶紧对SidXSpam做了小幅度修改。

网友反映的问题有:

Q:如果验证码输入错误,返回页面后评论没有缓存,所有的评论都白写了,会打击访客的积极性。
A:这是PHP本身的程序特点造成的,不单是WP会这样,很多PHP程序都会这样,虽然有解决的办法,但我尝试了似乎不成功。

Q:打开很多页面后输入正确的验证码却被告知错误。
A:SidXSpam采用服务器SESSION记录访客的Sid,所以你每一次打开一个该博客的页面,唯一的SESSION就会被重新刷新一次,只有你最后打开的那个页面输入验证码才有用。

本版本改进:
1.优化了部分代码;
2.修改了界面,如果验证码错误,将会给出刚才输入的评论让你复制到剪贴板。

将来可以改进的地方包括:
1.如果输入验证码错误后直接再重新输入一次而不要返回或重新填写之类的。这个可以用Javascript实现,预计将在下一版本提供;
2.打开多个页面后每个页面的Sid不会错误。实现的原理是用双重Sid验证。
由于是在没时间,我也不知道什么时候会做好..

下载:http://photozero.net/sidxspam

该文章发布在 wordpress,标签:, , 。收藏该永久链接

有 22 条《WordPress反垃圾评论插件SidXSpam 2.0发布》的回复

  1. SunQ 说到:

    其实并不喜欢加验证码……

  2. neekey 说到:

    我想验证码是最好的反垃圾评论工具

  3. yacca 说到:

    验证码主要还有个失效的问题

  4. 9NPC 说到:

    加驗證碼。。。我不喜歡加也~

  5. jogocun 说到:

    改成加法的更好~

  6. jogocun 说到:

    点击 Copy to clipboard 并没有把内容复制到剪贴版呀~

  7. jogocun 说到:

    有问题,如果当前日志你是第一个发布评论的,你输入验证码错误,出来的错误提示页面会覆盖当前错误页面啊,这不好的~

  8. jogocun 说到:

    还是有问题:

    即使你在当前日志下已经不是第一个评论情况下,验证码错误提示页面出来了,如果不刷新页面,再次在评论框中发表,页面会一直显示:
    new comment is submiting, please wait a comment…

  9. shamas 说到:

    博主你好,我如果想把这个验证码放到其它位置,要改哪里啊,因为在评论模板里面没有这个参数

    • neekey 说到:

      修改主题的评论页面,找到评论框,在评论框下面添加

      < ?php
      show_sxs();
      ?>

      • shamas 说到:

        好像不行,改了还是在老地方,我想放在website这个框的下面

        • neekey 说到:

          这个得看你的访客有没有登陆了,当前版本暂时无法做到用户登陆后免填验证码,估计以后会做的。否则请不要轻易改动,只要后台开启验证码以后评论都会进行验证,没有验证框根本没法回复。

          • shamas 说到:

            终于明白,改了代码后要登出,就正常了,为什么你这个回复邮件默认就是勾选的呢,结果我一下子收到四封关于这个日志的评论邮件呵

  10. lanqiufeng 说到:

    验证码实在是无奈之举

  11. 数据恢复网 说到:

    请教验证码显示的是error该如何处理?

  12. 纪小年 说到:

    http://xnian.com/?page_id=117#comment-134
    呼呼搞定了。哇哈哈~~~
    跟主题完全融合到一起了~(*^__^*) 嘻嘻……

    • 纪小年 说到:

      还有个问题能不能,把数字的字体改下 好丑。。

      • neekey 说到:

        目前的字体是系统内置字体,换字体需要另外增加字体包,目前暂无计划,以后可能会考虑

        • 纪小年 说到:

          你的插件好像是用imagestring绘制,上网查了下,那个函数不能调用字体,要用到ImageTTFText,可是我把你的插件改了下,图片不出来了。╯﹏╰
          下面的是一个例子
          <?php
          Header("Content-type: image/gif");
          $im = imagecreate(400,30);
          $black = ImageColorAllocate($im, 0,0,0);
          $white = ImageColorAllocate($im, 255,255,255);
          ImageTTFText($im, 20, 0, 10, 20, $white, "/somewhere/arial.ttf", "I am NUMBER ONE !!");
          ImageGif($im);
          ImageDestroy($im);
          ?>