这个问题我也很苦恼,不过还是被解决了。大家分享下哈。
其实说到底还是个字符编码转换问题。
因为汉字没有在判断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);
问题解决。 总结
以上是内存溢出为你收集整理的DEDECMS中文注册会员无法打开空间的解决方法全部内容,希望文章能够帮你解决DEDECMS中文注册会员无法打开空间的解决方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)