Pada tutorial ci3 bagian ke 7 ini rumah code akan membahas tentang bagaimana penggunaan session untuk membuat halaman login php dan membuat halaman admin. Jika teman teman belum mengikuti tutorial codeigniter 3 ini ada baiknya membaca terlebih dahulu tutorial sebelumnya.
Pada pembuatan halaman login ini penulis menggunakan form helper untuk membuat form login. Langkah pembuatan form login:
<?php echo form_open('admin/do_login');
$user = array(
'name' => 'username',
'id' => 'username',
'value' => '',
'maxlength' => '30',
'size' => '50'
);
$password = array(
'name' => 'password',
'id' => 'password',
'value' => '',
'maxlength' => '30',
'size' => '50'
);
?>
<table>
<tbody>
<tr>
<th style="text-align: center;" colspan="2">Codeigniter3 Login</th>
</tr>
<tr>
<td>Username</td>
<td>: <?php echo form_input($user); ?></td>
</tr>
<tr>
<td>Password</td>
<td>: <?php echo form_password($password); ?></td>
</tr>
<tr>
<td> </td>
<td> <?php echo form_submit('Submit', 'Login!'); ?> <?php echo form_reset('Reset', 'Reset!'); ?></td>
</tr>
</tbody>
</table>
Buatlah Controller dengan nama file admin.php dan masukan kode di bawah ini untuk memanggil halaman login
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('m_crud');
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('session');
}
public function login()
{
$this->load->view('admin_login');
}
}
dengan source code di atas berarti halaman login dapat di akses dengan alamat http://localhost/ci3/admin/login
Untuk memvalidsai halaman login tambahkanlah kode ini di bawah kurung kurawal tutup setelah fungsi login untuk memvalidasi username dan password yang dikirimkan oleh halaman login.
public function do_login()
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$where = array(
'user_id' => $username,
'user_password' => md5($password)
);
$tabel = 'user';
$limit = '0';
$offset = '1';
$order = '';
$login=$this->m_crud->tampil($tabel, $limit, $offset, $order, $where);
$login = count($login);
if ($login == 1)
{
$info_login = array(
'username' => $username,
'logged_in' => TRUE
);
$this->session->set_userdata($info_login);
$url = base_url('admin');
$val = 'Login Berhasil';
}else
{
$url = base_url('admin/login');
$val = 'Login Gagal';
}
redirect($url.'?msg='.$val);
}
pada perintah di atas menjeaskan jika login berhasil makan akan langsung meredirect ke halaman admin akan tetapi jika login gagal akan kembali lagi ke halaman login.
Bagian ini bertujuan untuk membuat halaman tidak dapat diakses jika melakukan login dengan username dan password yang benar. Fungsi ini cukup dengan membuat fungsi cek_session() dengan baris perintah seperti ini
public function cek_session()
{
$username = $this->session->username;
$logged_in = $this->session->logged_in;
if (empty($username) or empty($logged_in))
{
$url = base_url('admin/login');
redirect($url);
}
}
ini adalah bagain dimana halaman yang hanya bisa di akses stelah melakukan login terlebih dahulu. Berikut ini adalah source code nya
public function index()
{
$this->cek_session();
echo 'Ini adalah Halaman admin';
}
Halaman ini di buat bertujuan untuk menghancurkan session yang dibuat jika login berhasil. Berikut ini adalah source code nya
public function logout()
{
session_destroy();
$url = base_url('admin/login');
redirect($url);
}
alamat url untuk mengetes fungsi login ini:
Demikian lah tutorial halaman login dan halaman admin ini semoga dapat membantu.