给Typecho评论加上简单的拦截

这篇文章最后更新于07-07 09:18前,您需要注意相关的内容是否还可用,如有疑问请联系作者!

我的评论处理逻辑是通过 ajax 提交,然后在 functions.php 中的 themeInit 函数中拦截评论请求,随后写入数据库。
作为一个懒人,我处理起来也是非常的简单哈,直接在函数中判断评论是否包含某些特定字符,如果是直接拦截掉,不是则通过。

以下就是我的具体的代码啦:

/* 主题初始化 */
function themeInit($self){
    
    /* 根据情况强制开启/关闭评论回复 */
    if($self->is('single') && $self->request->isPost() && $self->request->is('action=comment')){
        Helper::options()->commentsThreaded = true;
        if (Helper::options()->sensitiveWords) {
            if (_checkWords(Helper::options()->sensitiveWords, $self->request->text)) {
                $code = '温馨提示';
                $message = '评论包含违禁词,请友善的发布评论';
                $self->response->setStatus(200);
                require_once __TYPECHO_EXCEPTION_FILE__;
                exit;
            }
        }
    } else {
        Helper::options()->commentsThreaded = false;
    }
}
/* 判断字符串内是否包含敏感词 */
function _checkWords($words_all, $text)
{
    $words = explode("//", $words_all);
    if (empty($words)) {
        return false;
    }
    foreach ($words as $word) {
        if (false !== strpos($text, trim($word))) {
            return true;
        }
    }
    return false;
}

当然,这个只是最基础的拦截,想突破还是超级简单的。
文章来源于:https://blog.sodayang.com/post/32.html

评论 打赏
最后编辑于:2021 年 07 月 07 日

网友评论 0 评论

评论空空如也,快来评论吧!

作者资料

寻梦xunm

博主

邮箱:1340326824@qq.com

链接:http://huue.cc/index.php/archives/922.html

网友评论

  • 溜溜测试一下
    发表于:2周前
  • ggfhjghjfghjfgjgffghjfghjfgjfghjfghjfgh
    发表于:3周前
  • 寻梦xunm等有空了重新调整一下字体大小
    发表于:2个月前
  • 城南旧事字太小了,看的难受
    发表于:2个月前
  • 123456加油
    发表于:2个月前
  • 寻梦xunm2333333333
    发表于:2个月前

其它信息

  • 文章:603
  • 分类:28
  • 评论:46
  • 页面:4

订阅信息

返回顶部