QQ登陆绑定代码

news/2024/7/10 20:14:47 标签: qq, login
//本代码并非完美,也许存在不良之处,高手请多指点,请勿吐槽!

 //qq登陆
 public function qq_login(){
    vendor('Connect.qqConnectAPI');
    $qc = new QC();
    $qc->qq_login();
 }
 //qq验证登陆
 public function qq_callback(){
    vendor('Connect.qqConnectAPI');
    $qc = new QC();
    $qc->qq_callback();
    $qc->get_openid();
    $this->success("QQ登陆成功",U('Login/qq_user'));
 }
 //qq取资料
 public function qq_user(){
    vendor('Connect.qqConnectAPI');
    $qc = new QC();
    $arr = $qc->get_user_info();
    //判断是否绑定
    $Q=M('QQ绑定数据库');
    $where['openid']=$_SESSION['QC_userData']['openid'];
    $isqq=$Q->where($where)->find();
    if($isqq){
                //如果已绑定某用户,则用uid取用户名直接session到此用户
    }else{
                //如果未绑定则跳转到完善用户信息
        session('head',$arr['figureurl_2']);
        session('nick',$arr['nickname']);
        $this->success("请完善用户信息",U('Login/reg_qq'));
    }
 }
 //qq注册完善信息
 public function reg_qq(){
        if(IS_POST){
            $user=$this->_post('uname');//用户名
            $pwd=$this->_post('pwd');//密码
            $repwd=$this->_post('repwd');//重复密码
            $ip=get_client_ip();
            
                $User=M("User");
            
                //判断用户是否存在
                $whereus['user']=$user;
            if($User->where($whereus)->find()){
                $this->error('对不起,此用户名已存在,请更换!');
            }
                        //这是用户信息,根据你自己的数据库定
            $data['user']=$user;
            $data['pwd']=md5($pwd);
            $data['nick']=session('nick');
            $data['head']=session('head');
            $data['reg_time']=time();
            $data['login_time']=time();
            $data['reg_ip']=$ip;
            $data['dow_score']=20;
            $data['login_ip']=$ip;    
                $isus=$User->add($data);
            
            if($isus){
               //绑定qq
               $Q=M("Qq_user");
               $Qdata['access_token']=$_SESSION['QC_userData']['access_token'];
               $Qdata['openid']=$_SESSION['QC_userData']['openid'];
               $Qdata['time']=time();
               $Qdata['uid']=$isus;
                   $Q->add($Tdata);
                    $this->success('注册成功,请使用QQ登陆或账号密码登陆!',U('Index/index'));
                }else{
                    $this->error('注册成功,但QQ绑定失败,请登陆后再次绑定!');
                }
        }else{
            $this->display();
        }
        
    }


http://www.niftyadmin.cn/n/1687791.html

相关文章

JAVA文本占位符替换

文本占位符替换代码需求一、JAVA文本占位符替换1.代码实战(1).模板枚举(2).封装工具(3).使用教程(4).输出结果需求 一、JAVA文本占位符替换 我的代码估计可以解决你所问的问题 首先占位符在文本必须统一 都是问号或者其他 例如:String content "你好: ?\n…

Centos7 源码安装 Apache

第一部分:前期准备 需要下载的东西下载 Apache 源码包 下载地址: http://httpd.apache.org/download.cgi 我下载的 httpd-2.4.20.tar.gz下载 Apr 下载地址 :http://archive.apache.org/…

linux 通过哪个命令可以查看某个服务及其端口、进程号

Linux top命令的用法及详解,请查看此篇文章:https://blog.csdn.net/wplblog/article/details/111870344 netstat/lsof netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况 -a 显示一个所有的…

Java多线程加锁例子

Java多线程加锁例子一、错误示例二、正确示例一、错误示例 static int a 0; //多线程同时操作 val aTestpublic void test4() throws InterruptedException {Runnable runnable () -> {while (a < 10) {a;System.out.print(a "\t");}};Thread t1 new Threa…

MYSQL操作表属性语句

MYSQL操作表属性语句语句语句 新增字段&#xff1a;ALTER TABLE [表名] ADD [字段名] [字段属性] [是否允许为空]; 例如&#xff1a;ALTER TABLE tableName ADD columnName VARCHAR(256) NOT NULL COMMENT XX; 修改字段长度&#xff1a;alter table 表名 modify column 字段名 …

PDF在线预览

PDF在线预览一、PDF在线预览代码一、PDF在线预览代码 /**PDF在线预览*/RequestMapping("/getPDF")public void findPdf( HttpServletResponse response,RequestParam("path") String path) throws IOException{response.setContentType("application/…

CentOS7 源码安装 MySQL 5.6

第一部分&#xff1a;目录1.准备工作 2. 运行环境 3. 确认你的安装版本 4.下载MySQL 5.安装MySQL 6.准备安装环境 7.编译和安装 8.配置MySQL 9.单实例配置 10.单实例配置方法 11.添加防火墙 12.启动MySQL 13.重启MySQL 14.实例配置 …

Linux 下Centos7 PHP使用redis 安装redis扩展

第一步&#xff1a;开始在 PHP 中使用 Redis 前&#xff0c;我们需要确保已经安装了 redis 驱动&#xff0c;且你的机器上能正常使用 PHP。接下来让我们安装 PHP redis 驱动//redis扩展的下载地址 有时候可能链接不上 毕竟是人家的下载源[rootlocalhost wengpengle]# wget http…