Как войти в систему с помощью codeigniter? - PullRequest
0 голосов
/ 25 октября 2019

У меня есть синтаксис, я думаю, что синтаксис уже правильный, но когда я запускаю в браузере, логин не вводится, чтобы сформировать страницу успеха. логин просто повторяется в form_login. если я введу имя пользователя и пароль неправильно, то ничего не сообщается об ошибке. что не так в синтаксисе, который я сделал?

это контроллер

function __construct()
{
    parent::__construct();
    $this->load->model('account/user_model');
    //        $this->load->helper('url');
    //        $this->load->helper('form');
    $this->load->library('form_validation');

    //tambahin library session supaya mau jalan
    $this->load->library('session');
    //atau di taruh di autoload
}

//melihat halaman login
public function index()
{
    $this->load->view('account/form_login');
}

//memeriksa keberadaan akun username
public function login()
{
    $username = $this->input->post('username','true');
    $password = $this->input->post('password','true');

    $temp_account = $this->user_model->check_user_account($username,$password)->row();
    //check account
    $num_account = count($temp_account);

    $this->form_validation->set_rules('username','username','required');
    $this->form_validation->set_rules('password','password','required');
    if($this->form_validation->run()==FALSE)
    {
        $this->load->view('account/form_login');
    }
    else {
        if ($num_account > 0) {
            //kalau ada set session
            $array_items = array(
                'id_user' => $temp_account->id_user,
                'username' => $temp_account->username,
                'logged_in' => true
            );
            $this->session->set_userdata($array_items);
            redierct(site_url('account/success_page'));
        } else {
            //kalau ga ada diredirect lagi ke halaman login
            $this->session->set_flashdata('notification', 'Peringatan : Username dan Password tidak cocok');
            redirect(site_url('account'));
        }
    }
}
public function view_success_page()
{
    $logged_in = $this->session->userdata('logged_in');
    if(!$logged_in)
    {
        redirect(site_url('account'));
    }
    $this->load->view('account/success_page');
}

это html логин

<?php echo validation_errors();?>
    <p style="color:red"><?php echo $this->session->flashdata('notification')?></p>
    <?php echo form_open('account/login')?>
        Username : <input typer="text" name="username" value="<?php echo set_value('username')?>"/>
        <br>
        <br>
        Password : <input type="password" name="password" value="<?php echo set_value('password')?>"/>
        <br>
        <br>
        <input type="submit" name="masuk" value="LOGIN"/>
        <br>

это модели

function check_user_account($username,$password)
{
    $this->db->select('*');
    $this->db->from('user');
    $this->db->where('username',$username);
    $this->db->where('password',$password);
    return $this->db->get();
}
//mengambil data user tertentu
function get_user($id_user)
{
    $this->db->select('*');
    $this->db->from('user');
    $this->db->where('id_user',$id_user);
    return $this->db->get();
}

1 Ответ

0 голосов
/ 04 ноября 2019

использование библиотеки Ion Auth 3 Облегчает для вас

https://github.com/benedmunds/CodeIgniter-Ion-Auth

Но:

public function login()
{
    $this->form_validation->set_rules('username','username','required');
    $this->form_validation->set_rules('password','password','required');
    if($this->form_validation->run()==true)
    {
    $username = $this->input->post('username','true');
    $password = $this->input->post('password','true');

    $temp_account = $this->user_model->check_user_account($username,$password);
    //check account
        if ($temp_account) {
            //kalau ada set session
            $array_items = array(
                'id_user' => $temp_account->id_user,
                'username' => $temp_account->username,
                'logged_in' => true
            );
            $this->session->set_userdata($array_items);
            redierct(site_url('account/success_page'));
        } else {
          //kalau ga ada diredirect lagi ke halaman login
           $this->session->set_flashdata('notification', 'Peringatan : Username dan Password tidak cocok');
            redirect(site_url('account'));
        }
}
    else {
 $this->load->view('account/form_login');
    }
}

модели:

function check_user_account($username,$password)
{
    $this->db->select('*');
    $this->db->from('user');
    $this->db->where('username',$username);
    $this->db->where('password',$password);
    $q = $this->db->get();
        if ($q->num_rows() > 0) {
            return $q->row();
        } else
            return FALSE;
}

Извините, у меня не было достаточно времени для тестирования, но я думаю, что это работает прямо сейчас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...