非插件实现拦截无中文留言

知更鸟
知更鸟
知更鸟
1498
文章
6903
评论
2013年5月13日11:22:59 27 1.8K

Some Chinese Please插件可以拦截不带中文字的留言,本博客一直在用效果不错,不写入数据库,可有效地减少spam对服务器的无谓使用,其实可以将插件简化一下,直接用代码实现。

将下面代码加到主题functions模板文件中,效果与使用插件相同。

  1. /* refused spam */  
  2. function refused_spam_comments( $comment_data ) {  
  3. $pattern = '/[一-龥]/u';  
  4. if(!preg_match($pattern,$comment_data['comment_content'])) {  
  5. wp_die('评论必须含中文!');  
  6. }  
  7. return$comment_data );  
  8. }  
  9. add_filter('preprocess_comment','refused_spam_comments');  

 

注:如果使用的是HotNews主题,请将 wp_die 替换为 err,否则显示错误信息时,会造成模版错位,其它使用ajax评论的主题也可参照修改。

其它一些写入数据库的防spam插件不建议使用, 比如WordPress官方的防垃圾插件Akismet会在数据库中留下大量的信息,增加服务器负担。

针对那些使用技术手段,比如GET、POST等方式不填写前台表单,直接读取后台程序文件的spam,只有屏蔽IP才能缓解疯狗一样的攻势,其它什么验证码、滑动解锁等等都没用。

可以在.htaccess文件中添加:

  1. Order Deny,Allow  
  2. Deny from xxx.xxx.xxx.xx  
  3. Deny from xxx.xxx.xxx.xx  

禁止某些IP访问。

 

weinxin
关于本站
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
用字母替代图片脚本:LetterAvatar Plugins

用字母替代图片脚本:LetterAvatar

基于canvas,通过toDataURL动态生成base64图片。目前我主题的Gravatar头像,就是利用这个LetterAvatar脚本实现未设置Gravatar头像则读取ALT标签,自动生成首字...
批量替换WordPress自定义栏目值 WordPress

批量替换WordPress自定义栏目值

如果之前添加的自定义栏目值,比如附件或者图片链接地址变了,可以通过以下方法批量修改一下。 将下面代码添加到当前主题函数模板 functions.php 最后: global $wpdb; $wpdb-...
WordPress 主题添加花瓣飘落特效 WordPress

WordPress 主题添加花瓣飘落特效

上篇文章过年啦,挂灯笼!教大家在博客上挂个动画灯笼,可能大家认为很好玩,那就再分享一个花瓣飘落的特效,可以加到自己博客上再装点一下节日氛围。 点击下图查看动画效果 先贴一下代码,下面有打包的文件下载。...
过年啦,挂灯笼! WordPress

过年啦,挂灯笼!

过年挂灯笼是中国的一个习俗,家里挂灯笼,博客也是自己的家,当然也要挂一个了。很多年前Flash流行时,网上可以随便找一个Flash动画的灯笼,很方便就可以加到网站主题模板上,如今Flash已成过眼云烟...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:27   其中:访客  22   博主  5
    • Win7en乐园 Win7en乐园 8

      鸟哥有心了!

      • Teddysun Teddysun 2

        代码里的
        $pattern = ‘/[一-龥]/u’;
        就是匹配判断中文所有字符的么?
        看起来像乱码一样。

        • Teddysun Teddysun 2

          邮件收到博主的回复,点进来一看,在原有的评论下面却并没有看到。
          是bug吗?

          • Teddysun Teddysun 2

            不使用wp_die函数的话,wordpress是没有err函数的。
            经过我在3.5.1版本里测试,err函数并不存在。
            难道是博主的主题里有这样的err函数么?

              • 知更鸟 知更鸟

                回复 Teddysun 是我刚才数据回档了
                既然都是PHP使用err没什么问题,可以在此测试无中文留言,看看效果

                  • Teddysun Teddysun 2

                    回复 知更鸟 err函数在博主这边是OK的。
                    我在本地测试的时候,是无弹出消息的。是会跳转到wp-comments-post.php这个页面。
                    所以,最后我改成了wp_die

                    • 知更鸟 知更鸟

                      回复 Teddysun 可能是我的主题使用了ajax评论的原因

                  • 电视包装网 电视包装网 3

                    求助老大啊我换了主机空间后,升级到最新版的wp后,在前台登录的话登录按钮不便,点击文章后才出管理员已登录的提示,到后台我更新以前的文本小工具但是前台还是以前那个工具啊,但是后台确实更新了,求解啊

                      • 知更鸟 知更鸟

                        回复 电视包装网 因为你安装了静态缓存插件WP-Super-Cache
                        这种插件对个人小博没有任何P用
                        可以阅读下面这篇关于静态化的文章
                        https://zmingcx.com/static-caching-plugin.html

                          • Teddysun Teddysun 2

                            回复 知更鸟 安装WP-Super-Cache静态化,还有一个功能我想博主应该会知道的,那就是防F5暴力刷新。
                            一个Wordpress博客不作任何缓存或者静态的话,只需简简单单F5键按住,狂刷页面就会把mysql刷爆。

                            • 知更鸟 知更鸟

                              回复 Teddysun 恶意攻击,弄成静态能有多大用处

                              • 电视包装网 电视包装网 3

                                回复 知更鸟 误会啊,插件WP-Super-Cache是我今天刚装的啊,由于不更新我查看网上资料,有人说要我清理缓存,我就安装了插件WP-Super-Cache,之前一直是禁止的缓存

                                • 电视包装网 电视包装网 3

                                  回复 知更鸟 我现在直接卸载了那个插件还是不行哦,前天登录了,还是各种登录就是不出现控制台的连接哦

                                  • 电视包装网 电视包装网 3

                                    回复 知更鸟 鸟哥我现在取消了所有的插件,重新装了一遍主题还是那个效果啊,现在只有直接输入后台登录地址才能进入后台,前天登录的怎么都登录不上

                                    • 知更鸟 知更鸟

                                      回复 电视包装网 我只想告诉你这个问题与主题没P关系
                                      先学会如何安装与卸载静态缓存插件…..
                                      外话,静态缓存插件菜鸟必备,人云亦云,注定杯具…

                                      • LoveQishi LoveQishi 1

                                        回复 知更鸟 @知更鸟 : 评论@回复有点问题,显示非法字符,怎么解决

                                    • sensual massage london sensual massage london 1

                                      感谢鸟哥分享~

                                      • 翩翩飞舞 翩翩飞舞 1

                                        这个很不错,最近的垃圾英文留言很烦

                                        • 飞翔博客 飞翔博客 3

                                          不错完美实现!
                                          最近垃圾评论 尤其多啊 每天 几十个! ╮(╯▽╰)╭

                                          • 飞翔博客 飞翔博客 3

                                            刚试了一下 发现任然无法阻挡垃圾评论啊 怎么办法 啊????

                                            • lixjun lixjun 0

                                              好东西!使用后再不用隔两天就清理洋垃圾评论了!

                                              • LoveQishi LoveQishi 1

                                                用了这个以后@回复不成功,提示:万恶的发帖机。 我去掉以后才行,求解决方式

                                                • 智享互联 智享互联 3

                                                  同一ip不是有很多人的吗?

                                                  • 电动摩托 电动摩托 2

                                                    现在发垃圾评论的都精了 我http://www.34qu.com用了这个方法后 竟然发现有垃圾评论也带中文了

                                                    • 呼博士 呼博士 0

                                                      禁止掉同一ip就可以了~

                                                      • 易淘金股票池 易淘金股票池 2

                                                        Ality主题 0.32 版 无法用插件 myQaptcha 滑动条无法滑动 不知道怎么回事 特来报告

                                                        • 马赛克 马赛克 2

                                                          有没有方法可以将某条评论置顶呢http://www.52masaike.com