欢迎来到欣怡建站!我们致力于提供优质的网站建站服务
注册

DEDECMS中文注册会员无法打开空间的解决方法

相关案例演示

解决中文注册的会员空间打不开问题 

 

这个问题我也很苦恼,不过还是被解决了。大家分享下哈。 

 

其实说到底还是个字符编码转换问题。 

 

因为汉字没有在判断uid值时出现了错误,导致系统无法识别用户,所以发生了“你访问的用户可能已经被删除!”错误 

 

方法是 

在“member\config.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; 

 

然后修改“member\index.php”中的代码:将 

$tmpstr = @gb2utf8($uid); 

$tmpstr2 = @utf82gb($tmpstr); 

if($tmpstr2==$uid) $uid = $tmpstr; 

修改为 

if(!isUTF8($uid)) $uid = @gb2utf8($uid); 

作者:欣怡建站 挑错 时间:2020-01-09 06:03
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
相关教程
在线客服