discuz签名长度限制无效的问题分析及改进方法

问题表现:

后台设置的签名文字最大长度无效,导致被人在签名里挂广告。

 

原因分析:

出现这个问题的原因是由于官方QQ互联里内置了微博签名的功能,因为使用微博签名的话会导致签名长度设置无效。

 

具体代码分析:

找到source/plugin/qqconnect/connect.class.php文件

if(submitcheck('profilesubmit')) {

$_G['group']['maxsigsize'] = $_G['group']['maxsigsize'] < 200 ? 200 : $_G['group']['maxsigsize'];

return;

}

其中的$_G['group']['maxsigsize']即为后台设置的签名最大长度,此处可知如果此值小于200,则置为200字节。

此处更改了最大长度的默认值,从而导致后台设置的此用户组的签名最大长度无效。

 

下面给出改进方法

在source/plugin/qqconnect/connect.class.php文件里,搜索代码:

if(submitcheck('profilesubmit')) {

$_G['group']['maxsigsize'] = $_G['group']['maxsigsize'] < 200 ? 200 : $_G['group']['maxsigsize'];

return;

}

注释掉这段代码。

 

同时搜索代码:

if($result['status'] == 0) {

$js = 'a.onclick = function () { seditor_insertunit(/'sightml/', /'[wb='.$result['result']['username'].']'.$result['result']['signature_url'].'[/wb]/'); };';

} else {

$js = 'a.onclick = function () { showDialog(/''.lang('plugin/qqconnect', 'connect_wbsign_no_account').'/'); };';

}

改为下面的代码:

if($_G['group']['maxsigsize'] > 200){

if($result['status'] == 0) {

$js = 'a.onclick = function () { seditor_insertunit(/'sightml/', /'[wb='.$result['result']['username'].']'.$result['result']['signature_url'].'[/wb]/'); };';

} else {

$js = 'a.onclick = function () { showDialog(/''.lang('plugin/qqconnect', 'connect_wbsign_no_account').'/'); };';

}

五月源码网 discuz教程 discuz签名长度限制无效的问题分析及改进方法 https://www.u532.com/1207.html

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务