解決中文注冊的會員空間打不開問題

這個問題我也很苦惱,不過還是被解決了。大家分享下哈。

其實說到底還是個字符編碼轉換問題。
因為漢字沒有在判斷uid值時出現了錯誤,導致系統無法識別用戶,所以發生了“你訪問的用戶可能已經被刪除!”錯誤
方法是
在“member\config.php”文件的最后,PHP結束之前添加 isUTF8($str)函數

  1. function isUTF8($str){
  2. $length=strlen($str);
  3. for($i=0;$i<$length;$i++){
  4. $high=ord($str{$i});
  5. if(($high==0xC0)||($high==0xC1)){
  6. return false;
  7. }elseif($high<0x80){
  8. continue;
  9. }elseif($high<0xC0){
  10. return false;
  11. }elseif($high<0xE0){
  12. if(++$i>=$length)
  13. return true;
  14. elseif(($str{$i}&"\xC0")=="\x80")
  15. continue;
  16. }elseif($high<0xF0){
  17. if(++$i>=$length){
  18. return true;
  19. }elseif(($str{$i}&"\xC0")=="\x80"){
  20. if(++$i>=$length)
  21. return true;
  22. elseif(($str{$i}&"\xC0")=="\x80")
  23. continue;
  24. }
  25. }elseif($high<0xF5){
  26. if(++$i>=$length){
  27. return true;
  28. }elseif(($str{$i}&"\xC0")=="\x80"){
  29. if(++$i>=$length){
  30. return true;
  31. }elseif(($str{$i}&"\xC0")=="\x80"){
  32. if(++$i>=$length)
  33. return true;
  34. elseif(($str{$i}&"\xC0")=="\x80")
  35. continue;
  36. }
  37. }
  38. }
  39. return false;
  40. }
  41. return true;
  42. }
復制代碼


然后修改“member\index.php”中的代碼:將
  1. $tmpstr = @gb2utf8($uid);
  2. $tmpstr2 = @utf82gb($tmpstr);
  3. if($tmpstr2==$uid) $uid = $tmpstr;
復制代碼

修改為
  1. if(!isUTF8($uid)) $uid = @gb2utf8($uid);<span style="background-color: rgb(255, 255, 255);"> </span>
復制代碼
問題解決,后臺更新緩存。

推薦給好友: [復制鏈接]
上一篇:織夢Dedecms多站點SQL互相調用的方法[非JS]摘要:問題:2個DEDE的站 怎么互相調用數據 [非JS] 是在同 ...
下一篇:織夢DEDECMS 全站關鍵字自動添加鏈接的方法摘要:DEDECMS的全內鏈方案,所有設置關鍵詞的內鏈都會在文 ...
推薦文章
回復

使用道具 舉報

精彩評論1

跳轉到指定樓層
技術學習教程網,支持一下。
回復

使用道具 舉報

發布主題
  • 今日更新:5
  • 昨日更新:7
  • 模板總數:8433
打造全國最大模板下載平臺
技術維護在線

QQ:515138

周一至周日9:00-23:00

如有侵權請聯系我們

[email protected] 在線QQ咨詢

微信掃碼關注我們

鸟叔彩金 快乐扑克三走势图 北京11选5分布走势图 福利福彩12选5开奖 快中彩开奖 捕鱼达人3单机版下载 广西手机棋牌开发公 鼎盛娱乐棋牌 今天河南快3开奖结果查询 广西十一选五计划软件 湖北30选5走势图 新快三下载 广西11选5开走势图 黑龙江p62走势图 北京快3 cba开赛时间2019-2020 北京11选5中奖规则