DedeCMS提示你访问的用户可能已经被删除的问题

2021-07-29 0 3,749

【问题描述】

当前使用的版本是DedeCMS V5.5的UTF8版本。库中已经注册了若干用户,从问答模块点击某用户名时却无法进入其个人空间,显示“你访问的用户可能已经被删除!”提示。依次检查所有用户,并非所有汉字名用户不能用,个别可用的用户名完全无规律可循,即便出现了错误的汉字用户名如果将其连接输入在浏览器的地址栏中,却能够正常的打开。 
在网络上寻找错误解决方法,发现Dede官网中提出此问题的人很多,而且从5.3开始就一直存在这个问题,有个别朋友提出的底层解决方案,修改空间模版中“..\member\space\company”文件夹下的index.htm, introduce.htm, listshop.htm, contact.htm, guestbook.htm 五个文件中<a href="/main/?uid=company&action=products&mtype={dede:value.mtypeid/}" target="_blank">{dede:value.mtypename/}</a>语句的company替换为{dede:var.userid_e /}变量的方法,经过实验并没有解决问题。

又看到网上教程中发布的文章提到的在保留uid访问方式同时增加mid访问的方法,经过实验问题依然存在。教程中提到将“member/index.php”文件中的 

if(empty($uid)) 
{ 
    $uid = ''; 
} 
else 
{ 
    $tmpstr = @gb2utf8($uid); 
    $tmpstr2 = @utf82gb($tmpstr); 
    if($tmpstr2==$uid) $uid = $tmpstr; 
}

代码更改为 

if(empty($uid)) 
{ 
    if (empty($_REQUEST['mid'])) 
    { 
        $uid = ''; 
    }else{ 
        $uid=$dsql->GetOne("Select userid From `dede_member` where mid='".$_REQUEST['mid']."'; "); 
        if (!is_array($uid)){ 
            $uid=''; 
        }else{ 
            $uid=$uid['userid']; 
        } 
    } 
}

分析这两段代码,织梦58小编提出的代码中增加了从数据库中重新读出用户ID的内容重新给uid传递一个值,但是把源程序中用于判断uid值是否UTF8编码格式的内容给丢了。这样的修改大概可以解决同时出现了uid、mid两个访问参数撞车时的问题,但是依然解决不了UTF8编码汉字用户名的问题。

还有些网友干脆认真提出方案限制用户使用汉字名注册,方法相当详备。不过如果使用UTF8编码就放弃汉字用户名注册未免有点说不过去了,这里就不再详转具体方法了。

【问题分析】  从故障的现象看,应该是在判断uid值是出现了错误,导致系统无法识别用户,仔细分析官方代码中对于汉字UTF8编码的uid判断语句,是利用了GB2UTF8和UTF82GB两个函数进行两次转换然后判断代码。在网上找了关于UTF8和GB编码的判断问题,发现其实远远不是这么简单的事儿。在GB编码和UTF8编码中,存在着部分汉字编码是相同或某部分字节相同的情况,这样利用两次转换的方法判断编码是很不准确的,于是出现了没有重码的汉字用户名可以正确判断并使用,而出现重码的汉字名不能正确判断,发生了“你访问的用户可能已经被删除!”错误。

【解决方法】

在网络上搜索了一些关于UTF8编码判断的代码,找到了一个用PHP编写的判断函数。将此名为isUTF8($str)的函数添加在“member\config.php”文件的最后: 

[php] 
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; 
} 
[/php]

并修改“member\index.php”中的代码:将  $tmpstr = @gb2utf8($uid);  $tmpstr2 = @utf82gb($tmpstr);  if($tmpstr2==$uid) $uid = $tmpstr;  修改为  if(!isUTF8($uid)) $uid = @gb2utf8($uid);  故障排除。

这里仅对官方代码中判断用户UTF8编码的方法进行了修改,并没有对织梦58小编提出的mid参数问题进行修改,若出现了织梦58小编提出的故障现象相信他们提到的方法是不错的解决方案。此文已扼要列出了织梦58小编的方法备考。 

收藏 (0) 打赏

您的支持是我们前进最大的动力!

打开微信扫一扫,即可进行扫码打赏哦
点赞 (0)

本站声明: 根据2013年1月30日《计算机软件保护条例》2次修订第17条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬,鉴于此,也希望大家遵守相关法律法规使用、研究软件。 1、本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解。 2、下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。 3、站内资源均来源于网络公开发表文件或网友投稿发布,如侵犯您的权益,请联系管理员处理。 4、本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用,如有链接无法下载、失效或广告,请联系客服处理。 5、所有资源均收集于互联网仅供学习、参考和研究,请理解这个概念,所以不能保证每个细节都符合你的需求,也可能存在未知的BUG与瑕疵,因本站资源均为可复制品,所 以不支持任何理由的退款兑现,请熟知后再下载。

彤彤模板团 织梦CMS教程 DedeCMS提示你访问的用户可能已经被删除的问题 https://www.xiaoyuerqingfen.cn/6135.html

一家有态度的精品资源分享平台

常见问题
  • 模板团承诺演示效果图均和网站95%一样,并且我们的模板和数据都没有留后门,请放心使用。
查看详情
  • 因为模板具有可复制性和可传播性,模板一旦发货,非质量问题,不支持退换;所以务必请您一定看清楚后再购买。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    资源总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

开通会员,尊享海量资源下载特权