Jumat, 16 September 2011

Membuat Login dan LogOut di CodeIgniter

Membuat Login dan Logout yang akan saya share kepada kawan-kawan adalah aplikasi yang pertama kali saya buat di CodeIgniter 2.0.0, dalam pembuatan aplikasi Login dan LogOut ini saya masih dibantu oleh seorang pembimbing .
Codeigniter adalah php framework yang awalnya ditulis oleh mas Rick Ellis, pendiri dan CEO EllisLab.com, perusahaan yang mengembangkan codeigniter. Saat ini, codeigniter dikembangkan oleh komunitas dan disebarkan ke seluruh dunia dengan lisensi bebas. Dan bentuk tampilan Login ini ialah :
Sebelum kita membuat Login Absensi seperti diatas , maka kita buat dahulu databasenya
Nama Database : tutorial
Nama Tabel : login
Field-field yang kita pakaià ID(int10), Username(varchar30), Password(varchar30), oia jangan lupa ya passwordnya di md5!
Sekarang mari kita setting di folder config nya, pada file :
1. Autoload.php àedit baris $autoload['libraries'] = array(); menjadi $autoload['libraries'] = array('database','form_validation','table','pagination','session');
     Masih di autoload.php edit baris $autoload['helper'] = array('); menjadi $autoload['helper'] =  array('form','url');
2.  Config.php àedit baris $config['base_url']    = 'http://example/example'; menjadi $config['base_url']         = 'http://localhost/ci_gila/';
3. Database.phpàedit baris $db['default']['hostname'] = ''; menjadi $db['default']['hostname'] = 'localhost'       $db['default']['username'] = ''; menjadi $db['default']['username'] = 'root';       $db['default']['password'] = ''; àtergantung password pada mysql anda.       $db['default']['database'] = ''; menjadi $db['default']['database'] = 'tutorial';
4.     Routes.php àedit baris $route['default_controller'] = ""; menjadi $route['default_controller'] = "login";


Oke sekarang mari mengCoding...!
Untuk membuat login-form pada Controller saya membuat sebuah Class seperti di bawah ini
System->Aplikasi->Controllers dengan nama login.php dan codingnya sebagai berikut :

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
            function __construct(){
                        parent::__construct();
                        $this->load->model('Login_model', '', TRUE);
            }
            function index(){
                        if ($this->session->userdata('login') == TRUE){
                                    redirect('welcome');
                        }else{
                                    $this->load->view('login_view');
                        }
            }
           
            /**
             * Memproses login
             */
            function process_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');
                                    $password = $this->input->post('password');
                                   
                                    if ($this->Login_model->check_user($username, $password) == TRUE)
                                    {
                                                $data = array('username' => $username, 'login' => TRUE);
                                                $this->session->set_userdata($data);
                                                redirect('welcome');
                                    }
                                    else
                                    {
                                                $this->session->set_flashdata('message', 'Maaf, username dan atau password Anda salah');
                                                redirect('login/index');
                                    }
                        }
                        else
                        {
                                    $this->load->view('login_view');
                        }
            }
            /**
             * Memproses logout
             */
            function process_logout()
            {
                        $this->session->sess_destroy();//untuk menghapus sesssion
                        //$this->session->sess_destroy('username');
                        //$this->session->sess_destroy('password');
                        redirect('login', 'refresh');
            }
           
}
/* End of file welcome.php */
/* Location: ./application/controllers/login.php */
?>
<?php
class Login_model extends CI_Model{
            function __construct(){
                        parent::__construct();
            }
            // Inisialisasi nama tabel user
            var $table = 'login';
            /**
             * Cek tabel user, apakah ada user dengan username dan password tertentu
             */
            function check_user($username, $password){
                        $query = $this->db->get_where($this->table, array('username' => $username, 'password' => $password), 1, 0);
                        if ($query->num_rows() > 0){
                                    return TRUE;
                        }else{
                                    return FALSE;
                        }
            }
}
?>


Dan saya juga membuat file Model  eperti di bawah ini
System->Aplikasi->Model dengan nama login_model.php dan codingnya sebagai berikut :

<?php
class Login_model extends CI_Model{
            function __construct(){
                        parent::__construct();
            }
            // Inisialisasi nama tabel user
            var $table = 'login';
            /**
             * Cek tabel user, apakah ada user dengan username dan password tertentu
             */
            function check_user($username, $password){
                        $query = $this->db->get_where($this->table, array('username' => $username, 'password' => $password), 1, 0);
                        if ($query->num_rows() > 0){
                                    return TRUE;
                        }else{
                                    return FALSE;
                        }
            }
}
?>



Setelah itu dalam tampilan kita membuat 2 file di View, yaitu : login_view.php dan welcome_message.php.
 Pertama coding dari login_view.php, sebagai berikut :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<div id="login_box">
           
            <h1>Login Absensi</h1>
           
            <?php
                        $attributes = array('name' => 'login_form', 'id' => 'login_form');
                        echo form_open('Login/process_login', $attributes);
            ?>
                       
                        <?php
                                    $message = $this->session->flashdata('message');
                                    echo $message == '' ? '' : '<p id="message">' . $message . '</p>';
                        ?>
                       
                        <p>
                                    <label for="username">Username:</label>
                                    <input type="text" name="username" size="20" class="form_field" value="<?php echo set_value('username');?>"/>                           
                        </p>
                        <?php echo form_error('username', '<p class="field_error">', '</p>');?>
                       
                        <p>
                                    <label for="password">Password:</label>
                                    <input type="password" name="password" size="20" class="form_field" value="<?php echo set_value('password');?>"/>                           
                        </p>
                        <?php echo form_error('password', '<p class="field_error">', '</p>');?>
                       
                        <p>
                                    <input type="submit" name="submit" id="submit" value="Login" />
                        </p>
            </form>
</div>
</body>
</html>
Kedua coding dari welcome_message.php, sebagai berikut :
<!DOCTYPE html>
<html lang="en">
<head>
            <meta charset="utf-8">
            <title>Welcome to CodeIgniter</title>
<style type="text/css">
body {
 background-color: #fff;
 margin: 40px;
 font-family: Lucida Grande, Verdana, Sans-serif;
 font-size: 14px;
 color: #4F5155;
}
a {
 color: #003399;
 background-color: transparent;
 font-weight: normal;
}
h1 {
 color: #444;
 background-color: transparent;
 border-bottom: 1px solid #D0D0D0;
 font-size: 16px;
 font-weight: bold;
 margin: 24px 0 2px 0;
 padding: 5px 0 6px 0;
}
code {
 font-family: Monaco, Verdana, Sans-serif;
 font-size: 12px;
 background-color: #f9f9f9;
 border: 1px solid #D0D0D0;
 color: #002166;
 display: block;
 margin: 14px 0 14px 0;
 padding: 12px 10px 12px 10px;
}
</style>
</head>
<body>
<h1>Welcome to CodeIgniter!</h1>
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:</p>
<code>application/views/welcome_message.php</code>
<p>The corresponding controller for this page is found at:</p>
<code>application/controllers/welcome.php</code>
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
<p><br />Page rendered in {elapsed_time} seconds</p>
<a href="login/process_logout/">Keluar</a>
</body>
</html>


Setelah semua coding diatas anda ketik dengan benar , sekarang ketik di URL nya : http://localhost/ci_gila/ ........bluuuuuuuuuuuuunnggggg.....akan tampil seperti gambar-gambar dibawah ini :
Bila anda salah mengisi Username dan Password maka akan tampil pesan seperti gambar dibawah ini :
Dan bila anda benar memasukkan Username dan Password anda yang ada didatabase maka tampilannya akan seperti ini :
Didalam page ini terdapat link untuk Keluar atau Logout .

Oke teman-teman membuat Login dan LogOut  di CodeIgniter  telah selesai, Selamat Mencoba. Semoga bermanfaat bagi kita semuanya. Jangan lupa tinggalkan Komentar ya...!

1 comments:

  1. bagus tutorialnya.

    jangan lupa kunjungi juga blog kami di
    http://blog.microtrafh.com/
    blog share IT dan informasi

    BalasHapus