Login Di Codeigniter Dengan Session Database

        Login Di Codeigniter Dengan Session Database

Gambar 1 CodeIgniter
Pada kesempatan kali ini saya akan memcoba berbagi bagaimana caranya membuat login di CodeIgniter dengan menggunakan Session Databese.

Secara default session dalam Codeigniter disimpal dalam cookie namun pada kesempatan ini saya akan memcoba membuat session database dengan menggunakan Library yang sudah disediakan di CodeIgniter. Mungkin tutorial ini sedikit menimbulkan pertanyaan kenapa session disimpan dalam Database? jawabanya sederhana yaitu masalah keamanan. dengan menggunakan session database maka semua aktifitas yang melibatkan session akan disimpan secara otomatis kedalam database.

Dalam membuat session database ada beberapa langkah yang harus kita lakukan yaitu:

1.  Membuat Database terlebih dahulu, disini saya akan membuat database dengan nama "mydb_ci" dengan dua  tabel 1. Tabel "ci_sessions" sebagai penampung session nantinya, yang ke 2. tabel "users" digunakan sebagai login users. Pada CodeIgniter Version 3.1.6   Berikut perintah sql untut tabel "ci_sessions":

table ci_sessions

CREATE TABLE IF NOT EXISTS `ci_sessions` (
    `id` varchar(128) NOT NULL,
    `ip_address` varchar(45) NOT NULL,
    `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
    `data` blob NOT NULL,
    KEY `ci_sessions_timestamp` (`timestamp`)
);
Kemungkinan di Versi berikutnya akan berubah sebagai referensi silahkan kunjungi web resmi CodeIgniter.

2.  Membuat Tabel "users" yang akan digunakan sebagai tabel login, Berikut kode sql_nya:

table users

CREATE TABLE `users` (
   `id` int(11) NOT NULL,
   `username` varchar(225) NOT NULL,
   `password` varchar(225) NOT NULL,
   `re_password` varchar(225) NOT NULL,
   `akses` varchar(225) NOT NULL,
   `konfirmasi` enum('n','y') NOT NULL DEFAULT 'n'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Jangan lupa input data terlebih dahulu berikut kode sql_nya:

Input data users

INSERT INTO `users` (`id`, `username`, `password`, `re_password`, `akses`, `konfirmasi`) VALUES (NULL, 'admin', MD5('admin'), 'admin', 'admin', 'y'), (NULL, 'user', MD5('user'), 'user', 'user', 'y');
3. Langkah selanjutnya konfigurasi CodeIgniter
   1. File autoload.php di dalam folder "application/config/autoload.php" Seperti berikut :

File autoload.php

  $autoload['libraries'] = array('database', 'session');
  $autoload['helper'] = array('url');
2. File config.php didalam folder "application/config/config.php" Seperti berikut :

File config.php

  $config['base_url'] = 'http://localhost/MyWeb/';         // nama dari websitenya
  $config['encryption_key'] = 'disiniterserahanda';        // disini wajib diisi
  $config['sess_driver'] = 'database';    // diganti degan database
  $config['sess_cookie_name'] = 'ci_session';
  $config['sess_expiration'] = 7200;
  $config['sess_save_path'] = 'ci_sessions';  // diganti dengan tabel yang sudah kita buat
  $config['sess_match_ip'] = FALSE;
  $config['sess_time_to_update'] = 300;
  $config['sess_regenerate_destroy'] = FALSE;