2011年02月16日 198条评论

还是加上了“防止访客冒充博主发表评论”

我一直知道 WordPress 博客下访客是可以冒充博主发表/回复评论的,只要你知道博主的邮箱地址即可,但我一直懒得去加,因为开此博至今2年多几乎没有人在我这冒充博主发表/回复评论。

情人节前夜,不知道万戈是否耐不住寂寞还是为了即将来临的“爱要死”兴奋不己,特意来测试冒充一回(冒充评论可以点这里去围观一下),让我感觉到有点怕怕要是某天不是万戈而是超兴奋的spammer冒充一回不就要删到手软?于是我觉得还是加上这段“防止访客冒充博主发表评论”的代码比较好,防范于未然总是比较好的。

我记得我很早就收藏过这段代码(却不知道哪里出的了,去搜一下,一大把,个个都没说出自哪里……囧~),但是使用效果有点变态:可以防止访客冒充博主了,不过切把已经登陆的博主也禁止了,囧~这就是没有测试直接 Copy 代码的结果。

那么分析代码,原代码结构如下

// 防止访客冒充博主发表评论, 原出处: ? 知道者/原作者请告知一声
function z_user_check($incoming_comment) {
$isSpam = 0;
if ( trim($incoming_comment['comment_author']) == '这里填博主昵称' ) $isSpam = 1;
if ( trim($incoming_comment['comment_author_email']) == '这里填博主邮箱')     $isSpam = 1;
if(!$isSpam) return $incoming_comment;
wp_die('请勿冒充博主发表评论!');
}
global $user_ID;
if(intval($user_ID) == 0) add_filter( 'preprocess_comment', 'z_user_check' );

或许是引用变量 $user_ID 的问题,于是我改为如下,华丽的解决了

// 防止访客冒充博主发表评论, 原出处: ? edit by zwwooooo
function z_user_check($incoming_comment) {
global $user_ID;
$isSpam = 0;
if ( strtolower(trim($incoming_comment['comment_author'])) == '这里填博主昵称' ) $isSpam = 1;
if ( strtolower(trim($incoming_comment['comment_author_email'])) == '这里填博主邮箱') $isSpam = 1;
if (!$isSpam || intval($user_ID) > 0) { return $incoming_comment; } else { wp_die('请勿冒充博主发表评论!'); }
}
add_filter( 'preprocess_comment', 'z_user_check' );

折腾完,隐~

2011.2.17 Update:加入大小写验证。

zww
or
oooo

“还是加上了“防止访客冒充博主发表评论””有198条评论

  1. Mars says:

    相当的实用。

    1. zwwooooo says:

      @Mars
      有点用吧

  2. 1小俊 says:

    哈哈 以後就不怕別人冒認了 謝謝博主分享··

    1. zwwooooo says:

      @小俊
      稍微可以减少麻烦

  3. Tiger says:

    是加在那个文件下!!?

    1. zwwooooo says:

      @Tiger
      主题的functions.php

    2. Tiger says:

      @zwwooooo
      万分感谢

    3. zwwooooo says:

      @Tiger
      厄,你太客气了

  4. reizhi says:

    没人提这个的时候,大家都没想到去冒充
    有人弄出来了,好事者也出来了

    1. zwwooooo says:

      @reizhi
      的确如此

  5. 奚少 says:

    好东西,拿下~

  6. 奚少 says:

    额,我用上了以后提交后出错了鸟,样式貌似出问题了?zww哥有空麻烦去试一下吧~

    1. zwwooooo says:

      @奚少
      样式错误是你的主题问题(错误提示那部分)。

    2. 奚少 says:

      @zwwooooo
      嗯,好了,我用了willin大师的ajax评论,用了他的提示代码,把wp_die改成err(__好了。

    3. zwwooooo says:

      @奚少
      解决就好

  7. 谢谢博主的这个方法

  8. hensy says:

    这样也行啊。。

  9. 爱惜 says:

    我就懒得去整了。反正没什么所谓
    貌似原文出处在WP中文论坛?

    1. zwwooooo says:

      @爱惜
      一般不需要去整,呵呵

  10. Paran says:

    试试

  11. 秦大少 says:

    收藏了,等发现有人冒充我了就拿来用,哈哈! :mrgreen:

    1. zwwooooo says:

      @秦大少
      哈,一般很少人会这么无聊

  12. 久酷 says:

    很久没出来 冒个泡 哈哈

    1. zwwooooo says:

      @久酷
      的确是好久,看来你相当、不是一般地忙!

  13. 7cbt says:

    哈哈 冒充博主 这个创意不错

    1. zwwooooo says:

      @7cbt
      其实很无聊

  14. jalena says:

    :evil: 反正我博客也没几个人看,不管他,不过手机访问你网站还挺快的呢!

    不过文章开头的那个中副广告,好影响手机浏览哦,期待手机浏览版!!!!!

    1. zwwooooo says:

      @jalena
      我特意关了手机访问插件,看看能否实现手机访问无广告?哈哈哈

    2. jalena says:

      @zwwooooo
      我黑莓自带的浏览器访问你网站效果全有,广告也一个不差

    3. zwwooooo says:

      @jalena
      我说看看先,看能否实现而已。

  15. Demon says:

    呵呵。又可以折腾了。

    1. zwwooooo says:

      @Demon
      无折腾不WP嘛

    2. Demon says:

      @zwwooooo
      过几天来折腾一下。这阵子累死了

  16. 1杨宇成 says:

    应该没这个必要吧。

    1. zwwooooo says:

      @杨宇成
      对,可有可无。

  17. C瓜哥 says:

    至今还没遇到过……

  18. 1iCodon says:

    貌似很有用。。

    1. zwwooooo says:

      @iCodon
      有点用吧

  19. 球犯 says:

    哈哈 果断mark上 感觉有用!

    1. zwwooooo says:

      @球犯
      遇到无聊人士时有用,一般没用,哈哈

  20. Demon says:

    已经加入了折腾完了

    1. zwwooooo says:

      @Demon
      简单吧,哈哈

    2. Demon says:

      @zwwooooo
      呵呵。不错弄完测试了一下。还真不是用其它的ID来发表了

    3. zwwooooo says:

      @Demon
      一般不太需要,加上也无妨。

发表评论

昵称 *

网址

B em del U Link Code Quote