PHPWIND V8.7会员回复帖功能限制会员不能发表带有超链接地址的帖子的BUG

孤者浪人 提交于 2019-12-10 09:10:50

会员在论坛发链接帖子,无非就是给自己网站打广告。为了论坛人气,适当的广告互动是可以的,为了方便的控制好,我们可以设定一个预定值,只有达到发 帖数量后,才可以发带有超链接的帖子,这样论坛的总帖子数量和用户的一些特殊要求,两全其美。那么,我们的phpwind是否可以实现类?如何可以实现, 如何设置?这个功能,我们可以在phpwind后台直接设置,但是无忧主机小编在测试中,发现了一个bug,但是设置这项 选项后会员回复帖子会提示:你的发贴数未到x(帖子的数量),不能发表带有链接地址的帖子。而且已经在官方找到了解决方案,并确定是这是一个BUG,小编 现在分享一下这个bug的解决方案,让站长遇到同样问题少走弯路。

一、phpwind后台操作路径

Phpwind管理后台—>全局—>会员相关—>链接帖发帖限制

二、解决会员回复帖子提示:您的发帖数未到x(帖子的数量),不能发表带有链接地址的帖子方案

文件目录为:lib/forum/post.class.php将文件下载至本地

文本编辑器打开:post.class.php(修改前备份好原文件)

查找:(大约在660-669行)

function urlCheck($str) {

    global $db_bbsurl;

    if (strpos($str,'[/URL]') !== false || strpos($str,'[/url]') !== false) return true;

    if (preg_match_all('/\[url=([^\]]+)]/is', $str ,$matches)){

        foreach ($matches[1] as $v) {

            if (strpos($v, $db_bbsurl) !== 0) return true;

        }

    }

    return false;

}

修改为:


function urlCheck($str) {

        global $db_bbsurl;

        if (strpos($str,"[quote]") !== false && strpos($str,"[/quote]") !== false) {

            $str = preg_replace("/\[quote\](.*?)\[\/quote\]/eis","",$str);

        }

        if (strpos($str,'[/URL]') !== false || strpos($str,'[/url]') !== false) return true;

        if (preg_match_all('/\[url=([^\]]+)]/is', $str ,$matches)){

            foreach ($matches[1] as $v) {

                if (strpos($v, $db_bbsurl) !== 0) return true;

            }

        }

        return false;

}

修改完成后,上传至php虚拟主机相应的目录,登陆管理后台更新缓存

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!