<?php  
defined('BASEPATH') OR exit('No direct script access allowed');  

class Login extends CI_Controller {  

    public function index()  
    {  
        // Mencegah caching pada halaman login  
        $this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');  
        $this->output->set_header('Cache-Control: post-check=0, pre-check=0', false);  
        $this->output->set_header('Pragma: no-cache');  

        // Cek apakah pengguna sudah login  
        if ($this->session->userdata('status') == "telah_login") {  
            redirect(site_url('dashboard'));  
        }  

        $this->load->view('v_login');  
    }  

    public function aksi()  
    {  
        $this->form_validation->set_rules('username', 'Username', 'required');  
        $this->form_validation->set_rules('password', 'Password', 'required');  

        if ($this->form_validation->run() != false) {  
            // Menangkap data username dan password dari halaman login  
            $username = $this->input->post('username');  
            $password = $this->input->post('password');  

            // Hash password menggunakan md5
            $hashed_password = md5($password);

            $where = array(  
                'pengguna_username' => $username,  
                'pengguna_password' => $hashed_password,  
                'pengguna_status' => 1  
            );  

            $this->load->model('M_data');  

            // Cek kesesuaian login pada tabel pengguna  
            $cek = $this->M_data->cek_login('pengguna', $where)->num_rows();  

            // Cek jika login benar  
            if ($cek > 0) {  
                // Ambil data pengguna yang melakukan login  
                $data = $this->M_data->cek_login('pengguna', $where)->row();  

                // Buat session untuk pengguna yang berhasil login  
                $data_session = array(  
                    'id' => $data->pengguna_id,  
                    'username' => $data->pengguna_username,  
                    'level' => $data->pengguna_level,  
                    'sampul' => $data->pengguna_sampul, // Menyimpan nama file gambar pengguna
                    'status' => 'telah_login'  
                );  
                $this->session->set_userdata($data_session);  

                // Alihkan halaman ke halaman dashboard pengguna  
                redirect(base_url() . 'dashboard');  
            } else {  
                redirect(base_url() . 'login?alert=gagal');  
            }  
        } else {  
            $this->load->view('v_login');  
        }  
    }  
}