問題表現(xiàn):
后臺設(shè)置的簽名文字最大長度無效,導(dǎo)致被人在簽名里掛廣告。
原因分析:
出現(xiàn)這個問題的原因是由于官方QQ互聯(lián)里內(nèi)置了微博簽名的功能,因為使用微博簽名的話會導(dǎo)致簽名長度設(shè)置無效。
具體代碼分析:
找到source/plugin/qqconnect/connect.class.php文件
if(submitcheck('profilesubmit')) {
$_G['group']['maxsigsize'] = $_G['group']['maxsigsize'] < 200 ? 200 : $_G['group']['maxsigsize'];
return;
}
其中的$_G['group']['maxsigsize']即為后臺設(shè)置的簽名最大長度,此處可知如果此值小于200,則置為200字節(jié)。
此處更改了最大長度的默認(rèn)值,從而導(dǎo)致后臺設(shè)置的此用戶組的簽名最大長度無效。
下面給出改進(jìn)方法:
在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').'/'); };';
}