DEDECMS中文注册会员无法打开空间的解决方法
解决中文注册的会员空间打不开问题 这个问题我也很苦恼,不过还是被解决了。大家分享下哈。 其实说到底还是个字符编码转换问题。 因为汉字没有在判断uid值时出现了错误,导致系 […]
解决中文注册的会员空间打不开问题
这个问题我也很苦恼,不过还是被解决了。大家分享下哈。
其实说到底还是个字符编码转换问题。
因为汉字没有在判断uid值时出现了错误,导致系统无法识别用户,所以发生了"你访问的用户可能已经被删除!"错误
方法是
在"memberconfig.php"文件的最后,PHP结束之前添加 isUTF8($str)函数
function isUTF8($str){
$length=strlen($str);
for($i=0;$i<$length;$i++){
$high=ord($str{$i});
if(($high==0xC0)||($high==0xC1)){
return false;
}elseif($high<0x80){
continue;
}elseif($high<0xC0){
return false;
}elseif($high<0xE0){
if(++$i>=$length)
return true;
elseif(($str{$i}&"xC0")=="x80")
continue;
}elseif($high<0xF0){
if(++$i>=$length){
return true;
}elseif(($str{$i}&"xC0")=="x80"){
if(++$i>=$length)
return true;
elseif(($str{$i}&"xC0")=="x80")
continue;
}
}elseif($high<0xF5){
if(++$i>=$length){
return true;
}elseif(($str{$i}&"xC0")=="x80"){
if(++$i>=$length){
return true;
}elseif(($str{$i}&"xC0")=="x80"){
if(++$i>=$length)
return true;
elseif(($str{$i}&"xC0")=="x80")
continue;
}
}
}
return false;
}
return true;
}
然后修改"memberindex.php"中的代码:将
$tmpstr = @gb2utf8($uid);
$tmpstr2 = @utf82gb($tmpstr);
if($tmpstr2==$uid) $uid = $tmpstr;
修改为
if(!isUTF8($uid)) $uid = @gb2utf8($uid);
问题解决。
免责声明:
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!侵删请致信E-mail:2934755286@qq.com