• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    dedecms注册中文会员无法打开空间的解决方法
    POST TIME:2020-04-02 21:41
    解决中文注册的会员空间打不开问题 
     
    这个问题我也很苦恼,不过还是被解决了。大家分享下哈。 
     
    其实说到底还是个字符编码转换问题。 
     
    因为汉字没有在判断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); 
     
    问题解决。
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!