phpcmsv9 qq登录注册时乱码解决

phpcmsv9 qq登录注册时乱码解决

刚刚注册的时候,在登录完qq 跳转到完善资料页面的时候,用户名显示乱码,
很是纳闷?怎么会会乱码呢?

qq api 说回传的utf-8 的编码,我的网站也是utf-8编码的呀。
看到代码部分:
*****phpcms/modules/member/index.php的function public_qq_loginnew()中*****
}else{ 
        //未存在于数据库中,跳去完善资料页面。页面预置用户名(QQ返回是UTF8编码,如有需要进行转码)
        $user = $info->get_user_info();
         $_SESSION['connectid'] = $openid;
        $_SESSION['from'] = 'qq';
        if(CHARSET != 'utf-8') {//转编码
         $connect_username = iconv('utf-8', CHARSET, $user['nickname']);
        } else {
          $connect_username = $user['nickname'];
        }
         include template('member', 'connect');
      }
*****
感觉不对劲,界面上直接echo  $users['nickname']; 也是乱码。

于是寻找到对应的静态页面phpcms/templates/default/member/connect.html
静态页面地址:
\phpcms_v9_UTF8\install_package\phpcms\templates\default\member\connect.html 的配置代码
*******
完善资料
{L('username')}:{$connect_username}
*******
原来是$connect_username 这个值会乱码。
回到刚刚的,index.php 文件,找到赋值的语句
 $connect_username = $user['nickname'];
往上推到。
$user = $info->get_user_info();

在文件phpcms/modules/member/classes/qqapi.class.php
的方法
*******
 /**
        * 返回用户信息
        *
        */
        public function get_user_info(){
            $url = "https://graph.qq.com/user/get_user_info?access_token=$this->access_token&oauth_consumer_key=$this->appid&openid=$this->openid";
            $content=file_get_contents($url);
            $result = json_decode($content);
            return $result->nickname;
        }

*******
原来这边已经赋值了nickname ,于是修改index.php文件的内容为

$user = $info->get_user_info();
         $_SESSION['connectid'] = $openid;
        $_SESSION['from'] = 'qq';
        if(CHARSET != 'utf-8') {//转编码
         $connect_username = iconv('utf-8', CHARSET, $user);
        } else {
          $connect_username = $user;
        }
问题解决。(去除 ['nickname'])

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
搜索
标签列表
网站分类
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.7.4

    Copyright Your WebSite.Some Rights Reserved.闽ICP备11018667号-2