• 售前

  • 售后

热门帖子
入门百科

dedecms注册中文会员无法打开空间的办理方法

[复制链接]
乔微博 显示全部楼层 发表于 2021-8-19 18:29:46 |阅读模式 打印 上一主题 下一主题
实在说到底还是个字符编码转换问题。
由于汉字没有在判定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);

问题办理。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作