-1

以下のコードでは、データベースで codeigniter を使用しました。列名 account_status があり、デフォルトで非アクティブになります。account_status がアクティブであるかどうかを確認したい場合は、ログインしないようにする必要があります。

コントローラ:

function index()
    {
        $data['main_content'] = 'login_form';
        $this->load->view('includes/template', $data);      
    }

    function validate_credentials()
    {       
        $this->load->model('membership_model');
        $query = $this->membership_model->validate();

        if($query) // if the user's credentials validated...
        {
            $data = array(
                'username' => $this->input->post('username'),
                'is_logged_in' => true
            );
            $this->session->set_userdata($data);
            redirect('site1/members_area');
        }
        else // incorrect username or password
        {
            $this->index();
        }
    }   

サイト1

function members_area()
    {
        $this->load->view('homepage_view');


    }

モデル:

function validate()
    {
        $this->db->where('username', $this->input->post('username'));
        $this->db->where('password', md5($this->input->post('password')));
        $query = $this->db->get('membership');

        if($query->num_rows == 1)
        {
            return true;
        }

    }
4

1 に答える 1

1

あなたはこれらの方法を持っています

モデルで葯の where 条件を使用するだけです

function validate()
    {
        $this->db->where('username', $this->input->post('username'));
        $this->db->where('password', md5($this->input->post('password')));
        $this->db->where('account_status','active');
        $query = $this->db->get('membership');

        if($query->num_rows == 1)
        {
            return true;
        }

}

または、コントローラーのステータスを確認してください

function validate_credentials()
    {       
        $this->load->model('membership_model');
        $query = $this->membership_model->validate();

        if($query) // if the user's credentials validated...
        {
            $data = array(
                'username' => $this->input->post('username'),
                'is_logged_in' => true
            );
            if($query->num_rows()>0)
             $status = $query->row()->account_status;
            else 
             $status = '';
            if($status == 'active')
            {
               $this->session->set_userdata($data);
               redirect('site1/members_area');
            }
            else //Account In active
            {  $this->index();  }
        }
        else // incorrect username or password
        {
            $this->index();
        }
    }   
于 2013-11-14T05:10:24.440 に答える