0

我安装了 Codeigniter、IonAuth + Hybridauth,我正在对其进行改造,以便我的用户可以选择他们自己的用户名,而不是使用 facebook 返回的名字和姓氏生成一个。

因此,在下面的代码中,我检查是否发布了用户名,如果没有,我想加载choose_username视图,但由于某种原因,视图没有加载,它完全跳过了该部分,这就是我添加的原因die('Why no view')

更新:第一段代码在新控制器中运行良好

在此处查看代码:

if(isset($_POST['username'])){
                            $username = $this->input->post('username', TRUE);   
                            die($username);
                            }else{
                                $this->data['message'] = 'Please choose a username.';
                                $this->data['template'] = 'guests/partials/choose_username';
                                $this->load->view('guests/template/standard', $this->data);
                                die('Why no view?');
                            };

更长的版本:

function login_provider($provider = '')
    {
        if(empty($provider)) redirect();


    try
    {
        // create an instance for Hybridauth with the configuration file
        $this->load->library('HybridAuthLib');

        if ($this->hybridauthlib->serviceEnabled($provider))
        {
            // try to authenticate the selected $provider
            $service = $this->hybridauthlib->authenticate($provider);

            if ($service->isUserConnected())
            {
                // grab the user profile
                $user_profile = $service->getUserProfile();
                ////////////
                //var_dump($user_profile);
                //die();
                ////////////

                    $provider_uid = $user_profile->identifier;

                if($this->ion_auth->login_by_provider($provider,$provider_uid))
                {
                    $data['user_profile'] = $this->ion_auth->user_by_provider();
                    //$this->load->view('auth/user_profile',$data);
                    $user = $this->ion_auth->user()->row();


                    //Redirect to custom subdomain
                    $url = explode('://',site_url());
                    if (strpos(site_url(),$user->username) !== false) {
                    redirect($url[0].'://'.str_replace('www','',$url[1]).'dashboard','refresh');
                    }
                        else{
                        redirect($url[0].'://'.$user->username.str_replace('www','',$url[1]).'dashboard');
                        };

                }
                else
                { // if authentication does not exist and email is not in use, then we create a new user 

                //Check if username was posted

                        if(isset($_POST['username'])){
                            $username = $this->input->post('username', TRUE);   
                            die($username);
                            }else{
                                $this->data['message'] = 'Please choose a username.';
                                $this->data['template'] = 'guests/partials/choose_username';
                                $this->load->view('guests/template/standard', $this->data);
                                die('Why no view?');
                            };

所以当我运行上面的代码时,我得到的只是一个空白页:Why no view.

4

1 回答 1

1

如上所述,通常当我遇到此类问题时,它来自视图代码中的错误。

另外,如果没有用户名数据,我不知道这篇文章实际上传递了什么,但您可能还想检查用户名的空值。这可能不是问题,但最好确认初始 if 正在评估您期望的方式。

于 2013-01-28T00:55:20.460 回答