列“电子邮件”不能为空

问题描述

我的 Google 身份验证 API 出现错误

Message: Trying to access array offset on value of type null
Line Number: 91
Line Number: 92
Line Number: 93
Line Number: 94

错误编号:1048

“email”列不能为空

INSERT INTO user (name,password,email,role,join_date,last_login) VALUES (' ','d41d8cd98f00b204e9800998ecf8427e',NULL,'订阅者','2021-06-24 00:39:59','2021-06-24 00:39:59')

文件名:controllers/User.PHP 行号:153

USER.PHP(从第 85 行开始)

    public function google_login(){       
        if(isset($_GET['code'])){
            //$this->google->authenticate();
            $get_user_info = $this->google->get_user_info($_GET['code']);
            //var_dump($get_user_info);
            $user_info['oauth_provider'] = 'google';
            $user_info['oauth_uid']      = $get_user_info['id'];
            $user_info['first_name']     = $get_user_info['given_name'];
            $user_info['last_name']      = $get_user_info['family_name'];
            $user_info['email']          = $get_user_info['email'];
            $user_info['gender']         = !empty($get_user_info['gender'])?$get_user_info['gender']:'';
            $user_info['locale']         = !empty($get_user_info['locale'])?$get_user_info['locale']:'';
            $user_info['profile_url']    = !empty($get_user_info['link'])?$get_user_info['link']:'';
            $user_info['picture_url']    = !empty($get_user_info['picture'])?$get_user_info['picture']:'';
            $this->varify_social_user_info($user_info);
            redirect('user/profile/');
        }
        redirect('user/login/');        
    }

    public function facebook_login(){       
        if($this->facebook->is_authenticated()){
            $get_user_info = $this->facebook->request('get','/me?fields=id,first_name,last_name,email,gender,locale,picture');
            // Preparing data for database insertion
            $user_info['oauth_provider'] = 'facebook';
            $user_info['oauth_uid'] = $get_user_info['id'];
            $user_info['first_name'] = $get_user_info['first_name'];
            $user_info['last_name'] = $get_user_info['last_name'];
            $user_info['email'] = $get_user_info['email'];
            $user_info['gender'] = $get_user_info['gender'];
            $user_info['locale'] = $get_user_info['locale'];
            $user_info['profile_url'] = 'https://www.facebook.com/'.$get_user_info['id'];
            $user_info['picture_url'] = $get_user_info['picture']['data']['url'];
            $this->varify_social_user_info($user_info);
            redirect('user/profile/');
        }
        redirect('user/login/');
        
    }

    public function varify_social_user_info($user_info=''){
        $query  = $this->db->get_where('user',array('email'=>$user_info['email']));;
        $row  = $query->row();
        $num_rows  = $query->num_rows();
        if ($num_rows > 0) {
            $this->session->set_userdata('login_status','1');
            $this->session->set_userdata('user_id',$row->user_id);
            $this->session->set_userdata('name',$row->name);                     
            $this->db->where('user_id',$row->user_id);
            $this->db->update('user',array(
                'last_login' => date('Y-m-d H:i:s')
            )); 
            if($row->role=='admin'){
              $this->session->set_userdata('admin_is_login','1');
              $this->session->set_userdata('login_type','admin');
            }
            if($row->role=='subscriber'){
              $this->session->set_userdata('user_is_login','subscriber');
            }
        }else{
            $name                   = $user_info['first_name'].' '.$user_info['last_name'];
            $data['name']           = $name;
            $data['password']       = md5($user_info['email']);
            $data['email']          = $user_info['email'];
            $data['role']           = 'subscriber';
            $data['join_date']      = date('Y-m-d H:i:s');
            $data['last_login']     = date('Y-m-d H:i:s');             
            $this->db->insert('user',$data);
            $user_id                = $this->db->insert_id();
            $trial_enable               =   $this->db->get_where('config',array('title'=>'trial_enable'))->row()->value;
            if($trial_enable =='1'):
                $this->subscription_model->create_trial_subscription($user_id);
            endif;
            //save user image
            $source = $user_info['picture_url'];
            $save_to = "uploads/user_image/".$user_id.".jpg";
            $this->common_model->grab_image($source,$save_to);
            //var_dump($source);
            // create session
            $this->session->set_userdata('login_status',$user_id);
            $this->session->set_userdata('name',$name);                     
            $this->db->where('user_id',array('last_login' => date('Y-m-d H:i:s')));
            $this->session->set_userdata('user_is_login','1');
            $this->session->set_userdata('login_type','subscriber');
        }
        return TRUE;
    }

    function exception_error_handler($errno,$errstr,$errfile,$errline ) {
        throw new ErrorException($errstr,$errno,$errline); 
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)