Dalam
pembuatan system aplikasi berbasis website biasanya diperlukan menu
login pada homepage dimana menu login ini berfungsi untuk memberikan
akses kepada user agar bisa masuk kedalam menu system sebagai anggota
atau member. pada kesempatan ini saya akan membuat tutorial bagaimana
cara membuat menu login dengan session pada codeigniter. sedikit
penjelasan tentang session, session adalah salah satu fasilitas yang
ada pada PHP yang digunakan untuk menyimpan data sementara ke dalam
variabel (variabel session) sehinga data tadi dapat di akses oleh client
selama variabel session tadi tidak di kosongkan atau dihilangkan. Nilai
variabel di dalam session di simpan di sisi server (web server). Jadi
saat kita melakukan akses login proses pembuatan session kita lakukan,
data session kita buat sesuai dengan kebutuhan kita. Untuk lebih
jelasnya berikut tutorialnya.
1.Buatlah sebuah project Codeigniter.
2.Selanjutnya buat sebuah database dan sebuah tabel dengan nama tabel tbuser.
7. Sekarang kita buat sebuah Views untuk tampilan login. Buat sebuah views dengan nama v_login.php disni saya menggunakan template bootstrap mungkin anda bisa menggunakan template sesuai selera anda.
1.Buatlah sebuah project Codeigniter.
2.Selanjutnya buat sebuah database dan sebuah tabel dengan nama tabel tbuser.
CREATE TABLE `tbuser` (
`id_user` int(11) NOT NULL,
`nama` varchar(100) NOT NULL,
`username` varchar(100) NOT NULL,
`password` varchar(200) NOT NULL,
`last_login` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
3.Aktifkan libraries session pada config autoload agar otomatis digunakan disemua Class.
$autoload['libraries'] = array('database', 'session');
$autoload['helper'] = array('url', 'form');
4. Buatlah sebuah Controllers dengan nama class Login.php dan ketikan script berikut untuk menampilkan halaman login.
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
public function index() {
$this->load->view('login');
}
//script lanjutan dibawahnya
}
5. Tambahkan script function baru pada class Login.php untuk proses Login.
public function do_login() {
$data = $this->input->post(null,true);
$username = $this->security->xss_clean($this->input->post('username'));
//proses cek ke database
$is_login = $this->db->get_where('tb_user',array(
'username'=>$data['username'],
//'password'=>md5(trim($data['password'])),
'password'=>$data['password'])
)->row();
if($is_login){
//proses pembuatan session
$session_set = array(
'is_login' => true,
'username' => $username,
'id_user' => $is_login->id_user,
'nama' => $is_login->nama,
'last_login' => $is_login->last_login
);
//proses update database
$this->db->update('tb_user',
array('last_login'=>date('Y-m-d H:i:s')),
array('id_user'=>$is_login->id_user)
);
$this->session->set_userdata($session_set);
$this->session->set_flashdata('msg',
'<div class="alert alert-danger">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
Welcome </div>');
//Jika login benar maka masuk kedalam menu home
redirect('login/dashboard');
} else {
$this->session->set_flashdata('msg',
'<div class="alert alert-danger">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
username dan password salah </div>');
//Jika login salah maka kembali ke menu login
redirect('login');
}
}
6. Tambahkan script function baru pada class Login.php untuk proses Logout.public function logout(){
$this->session->sess_destroy();
redirect('login');
}
7. Sekarang kita buat sebuah Views untuk tampilan login. Buat sebuah views dengan nama v_login.php disni saya menggunakan template bootstrap mungkin anda bisa menggunakan template sesuai selera anda.
<form role="form" method="post" action="<?php echo base_url();?>login/do_login">
<input type="text" name="username" class="form-control input-sm chat-input" placeholder="username" />
</br>
<input type="password" name="password" class="form-control input-sm chat-input" placeholder="password" />
</br>
<div class="wrapper">
<span class="group-btn">
<button type="submit" class="btn btn-primary"> <i class="fa fa-sign-in"></i> Login </button>
</span>
</div>
</form>
8. Selanjutnya tampilan menu dashboard ketika berhasil login<div class="container" style="margin-top:20px;">
<div class="container">
<div class="col-md-12">
<table class="table table-striped">
<thead>
<tr>
<th>Session id_user</th>
<th>Session nama</th>
<th>Session username</th>
<th>Session last login</th>
</tr>
</thead>
<tr>
<td><?php echo $this->session->userdata('id_user'); ?></td>
<td><?php echo $this->session->userdata('nama'); ?></td>
<td><?php echo $this->session->userdata('username'); ?></td>
<td><?php echo $this->session->userdata('last_login'); ?></td>
</tr>
</table>
<tr>
<td><pre>echo $this->session->userdata('id_user');</pre></td>
<td><pre>echo $this->session->userdata('nama');</pre></td>
<td><pre>echo $this->session->userdata('username');</pre></td>
<td><pre>echo $this->session->userdata('last_login');</pre></td>
</tr>
</div>
</div>
</div>
9. Mari kita jalankan. Jika berhasil hasilnya seprti gambar berikut.Untuk menghapus data session secara otomatis dapat diset pada application/config.php dengan menentukan berapa lama waktu untuk expired session` sess_expiration` sehingga saat anda membuka website tersebut tanpa melakukan aktivitas maka akan otomatis logout sesuai waktu yang ditentukan.
Demo
Semoga bermanfaat
0 komentar: