oke artikel kali ini tentang CodeIgniter yak , kita buat Multi user Login
Langsung aja ,
Nih Tampilan Login
Pertama-tama kita mengenal dulu dengan yang nama'nya Library Session
Library yang paling penting dalam prosess login itu adalah Session , sebenarnya PHP sudah menyediakan Fungsi Session , tapi Framework CodeIgniter sudah membungkus'nya rapi di Library'nya menjadi lebih mudah di keluarkan ,Untuk menampilkan atau memanggil Session Class anda cukup dengan
$this->load->library(‘session’);nah untuk menseting'nya anda tinggal panggil
$this->session->set(‘nama_session’);
- Langsung ada deh kita ke Sistem Login'nya !
pertama-tama kita buat dulu database'nya dengan nama "codeigniter"
CREATE DATABASE codeigniter;
kalau sudah buat database'nya kita isi tu table'nya
CREATE TABLE IF NOT EXISTS `user` ( `username` varchar(50) NOT NULL, `password` varchar(32) NOT NULL, `nama` varchar(100) DEFAULT NULL, `level` int(1) NOT NULL, `status` int(1) NOT NULL, PRIMARY KEY (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;Lalu kita Insert'kan query'nya
INSERT INTO `user` (`username`, `password`, `nama`, `level`, `status`) VALUES ('christiawan', MD5( 'ganteng' ), 'christiawan ganteng', 1, 1), ('user', MD5( 'user' ), 'admin', 2, 1);Nah database sudah , sekarang kita buat deh Model"nya
Selanjut'nya buat file baru , kasih nama m_login.php , dan berikut potongan code'nya
<?php if(!defined('BASEPATH')) exit('Hacking Attempt : Keluar dari sistem !! '); //membuat suatu class class M_login extends CI_Model{ public function __construct(){ parent::__construct(); } // membuat fungsi ambilPengguna public function ambilPengguna($username, $password, $status){ //menselec database codeigniter yang dari tabel user $this->db->select('*'); $this->db->from('user'); // di mana username = $username $this->db->where('username', $username); // di mana password = $password $this->db->where('password', $password); // di mana status = $status $this->db->where('status', $status); // membuat query yang mengambil datase $query = $this->db->get(); // kembali ke query return $query->num_rows(); } //PENJELASAN SAMA SEPERTI DI ATAS , KESEL BRO NGETIK'E :V public function dataPengguna($username){ $this->db->select('username'); $this->db->select('user'); $this->db->where('username', $username); $query = $this->db->get('user'); return $query->row(); } }Selanjut'nya kita buat View untuk Login , kita kan sudah buat model'nya :3
beri nama form_login.php di folder View
//GA USAH DI BERI KETERANGAN PASTI UDAH TAU DONG INI APA :3 <html> <head> <title>Form Login</title> <style> body { font-family:Calibri; margin:50px; } #form-login{ margin:auto; width:500px; padding:10px; border:1px #ccc solid; font-size:18px; font-weight:bold; color:#FF6600; } .inputan { padding:3px; font-family:Calibri; border:1px solid #ccc; } .tombol { padding:5px; background:#FF6600; color:#FFF; font-weight:bold; font-family:Calibri; font-size:15px; border:#eee 1px solid; } .error { color:#FF6600; font-size:11px; } </style> </head> <body> <form action="<?php echo base_url();?>index.php/login/login_form" method="post" name="login"> <div id="form-login"> Administrator Page - Plase Login First <br><br> <table border="0" cellpadding="4"> <tr> <td>Username</td> <td>:</td> <td><input type="text" size="40" name="username" value="<?php echo set_value('username');?>" class="inputan"> <?php echo form_error('username');?></td> </tr> <tr> <td>Password</td> <td>:</td> <td><input type="password" size="40" name="username" value="<?php echo set_value('password');?>" class="inputan"> <?php echo form_error('password');?></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="login" value="Login" class="tombol"> </td> </tr> </table> </div> </form> </body> </html>Selanjut'nya kita buat Controller'nya , kita buat file baru di dalam Folder Controller dan beri nama login.php
<?php if(!defined('BASEPATH')) exit('Hacking Attempt : Keluar dari sistem !!'); //Membuat class Login = karena file'nya bernama Login.php | harus sama ! class Login extends CI_Controller{ //Membuat fungsi Construc public function __construct(){ parent::__construct(); //MenLoad model yang berada di Folder Model dan File'nya m_login $this->load->model('m_login'); // Meload Library form_validasi dan session $this->load->library(array('form_validation','session')); //Meload database $this->load->database(); //Meload url $this->load->helper('url'); } //Membuat fungsi index public function index(){ // membuat session yand di ambil dari userdata dan memberi nama isLogin $session = $this->session->userdata('isLogin'); //jika session salah if($session == FALSE){ redirect('login/login_form'); }else{ //jika session benar redirect('home'); } } //membuat fungsi login_form public function login_form() { //memberi validasi pa da username dan password $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean'); $this->form_validation->set_rules('password', 'Password', 'required|md5|xss_clean'); $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); //jika form yang di isi salah , akan kembali lagi ke form_login if($this->form_validation->run()==FALSE){ $this->load->view('form_login'); }else{ //jika form yang di isi benar $username = $this->input->post('username'); $password = $this->input->post('password'); $cek = $this->m_login->ambilPengguna($username, $password, 1) if($cek <> 0){ $this->session->set_userdata('isLogin', TRUE); $this->session->set_userdata('username',$username); redirect('home'); }else{ // jika salah ?> <script> alert('Gagal Login: Cek username dan password anda!'); history.go(-1); </script> <?php } } } //membuat fungsi keluar /logout public function logout(){ // menghapus session dan mengembalikan ke login_form $this->session->sess_destroy(); redirect('login/login_form'); } } ?>
Gimana masih bisa melanjut'kan ?kalau menurut saya sih masih :v ,mending ngetik + mengingat"nya , dari pada mendownload file jadi :ptenang aja sih ntar bakal saya lampirkan file jadi'nya , tapi di pelajari yok :p
LANJUTKAN #
Coba deh di jalanin di local host , bila sukses akan jadi begini nih
nah kita buat controller beri nama home.php dan isi code seperti di bawah ini
<?php if(!defined('BASEPATH')) exit('Hacking Attempt. Keluar dari sistem.'); //membuat Class home , sesuai nama file home.php class Home extends CI_Controller { // udah tau ini apa :p public function __construct() { parent::__construct(); //mengambil library session $this->load->library(array('session')); //mengambil url di helper $this->load->helper('url'); // mengambil m_login yang berada di folder model yang tadi di buat $this->load->model('m_login'); //mengambil database $this->load->database(); } // membuat fungsi index public function index() { //membuat session , jika session salah if($this->session->userdata('isLogin') == FALSE) { //kembali ke login redirect('login/login_form'); }else //jika session benar masuk ke m_login { $this->load->model('m_login'); $user = $this->session->userdata('username'); //mengambil level saat di sesssion $data['level'] = $this->session->userdata('level'); $data['pengguna'] = $this->m_login->dataPengguna($user); //membuka home $this->load->view('home_v', $data); } } } ?>
nah selanjut'nya masuk folder view , dan buat file baru dengan nama home_v.php
<?php //udah tau lah ini apa ? ?> <html> <head> <title>Selamat Datang Friend</title> <style> body { font-family:Calibri; } </style> </head> <body> <?php if($level == "1") { ?> <h2>Hai <?php //mngambil nama session echo $pengguna->nama;?>, anda login sebagai Administrator <?php echo anchor('login/logout', 'Keluar »'); echo " <br> yes berhasil berhasil berhasil hore :v , ~ wkwkw "; ?></h2> <?php }elseif($level == "2") { ?> <h2>Hai <?php echo $pengguna->nama;?>, anda login sebagai Operator <?php echo anchor('login/logout', 'Keluar »');?></h2> <?php } ?> </body> </html>
setelah itu di coba jalanin lagi , bila sukses akan menjadi seperti ini :
- Membuat MultiLevel saat Login
Setelah kita membuat bagaimana membuat sistem login dengan Codeigniter, kali ini kita akan beranjak pada sistem yang lebih kompleks dari sistem login, yaitu Multi-level Login. Oke kita mulai dengan persiapan terlebih dahulu.
Halaman login sudah kita buat pada pembahasan sebelumnya, kita hanya akan menambahkan sebuah combobox yang bertujuan untuk level user. Modifikasi lah file login dengan script berikut :
<form action="<?php echo base_url();?>index.php/login/login_form" method="post" name="login"> <div id="form-login"> Administrator Page - Tolong Login dahulu <br><br> <table border="0" cellpadding="4"> <tr> <td>Username</td> <td>:</td> <td><input type="text" size="40" name="username" value="<?php echo set_value('username');?>" class="inputan"> <?php echo form_error('username');?></td> </tr> <tr> <td>Password</td> <td>:</td> <td><input type="password" size="40" name="password" value="<?php echo set_value('password');?>" class="inputan"> <?php echo form_error('password');?></td> </tr> <tr> <td>Level</td> <td>:</td> <td><select name="level" class="inputan"> <option value="1">Admin</option> <option value="2">Operator</option> </select></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="login" value="Login" class="tombol"> </td> </tr> </table> </div> </form>
Modifikasi pada file Model m_login.php
Modifikasi Model diperlukan karena kita akan mencocokan username dan password sesuai dengan levelnya Cukup ubah pada baris berikut :
public function ambilPengguna($username, $password, $status, $level) { $this->db->select('*'); $this->db->from('user'); $this->db->where('username', $username); $this->db->where('password', $password); $this->db->where('status', $status); $this->db->where('level', $level); $query = $this->db->get(); return $query->num_rows(); }
Modifikasi file Controller login.php
Selanjutnya lakukan mofikasi pada controller login. Disini kita akan menambahkan session untuk level. Dan nanti level ini yang menjadi acuan untuk membedakan antar user.
public function login_form() { $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean'); $this->form_validation->set_rules('password', 'Password', 'required|md5|xss_clean'); $this->form_validation->set_error_delimiters('<span class="error">', '</span>'); if($this->form_validation->run()==FALSE) { $this->load->view('form_login'); }else { $username = $this->input->post('username'); $password = $this->input->post('password'); $level = $this->input->post('level'); $cek = $this->m_login->ambilPengguna($username, $password, 1, $level); if($cek <> 0) { $this->session->set_userdata('isLogin', TRUE); $this->session->set_userdata('username',$username); $this->session->set_userdata('level',$level); redirect('home'); }else { echo " <script> alert('Gagal Login: Cek username , password dan level anda!'); history.go(-1); </script>"; } } }
Mengubah halaman Home (Controller dan View)
Ubahlah file controller home.php menjadi :
public function __construct() { parent::__construct(); $this->load->library(array('session')); $this->load->helper('url'); $this->load->model('m_login'); $this->load->database(); } public function index() { if($this->session->userdata('isLogin') == FALSE) { redirect('login/login_form'); }else { $this->load->model('m_login'); $user = $this->session->userdata('username'); $data['level'] = $this->session->userdata('level'); $data['pengguna'] = $this->m_login->dataPengguna($user); $this->load->view('home_v', $data); } }
Nahh selesai deh , sekarang coba deh di jalanin LOCALHOST'nya :p
Nih File'nya buat yang pengen langsung jadi -___-"
16 comments
itu kok kalo diisi password ngasal muncul seperti ini :
ReplyMessage: Missing argument 4 for M_login::setPengguna(), called in C:\xampp\htdocs\appci\application\controllers\login.php on line 32 and defined
Thank's Bro ! Artikel inyong sangat membantu.. (p)
Replygan itu ntuk tahap pertama saya erorr, { Parse error: syntax error, unexpected '(' in C:\xampp\htdocs\CodeIgniter\application\controllers\login.php on line 43} mohon bantuannya gan, ane pemula
Replygan klau logout trus back button lagi halaman logout yg tadi masih muncul, kira2 knp gan?? thanx
Replybos kok gagal login terus ya udah ngikutin tutorial ini
ReplyBeneran gan itu ntuk tahap pertama saya erorr, { Parse error: syntax error, unexpected '(' in C:\xampp\htdocs\CodeIgniter\application\controllers\login.php on line 43} mohon bantuannya gan, ane pemula
ReplyGan saya coba untuk tahap pertama saya erorr, { Parse error: syntax error, unexpected '(' in C:\xampp\htdocs\CodeIgniter\application\controllers\login.php on line 43} mohon bantuannya gan, .....
Replypassword admin apaan gan???
Replythanks da share gan ..bantu banget buat kerja tugas ..haha
ReplySedekah
Makassar
Tas Kulit
nice tutor gan (y)
Replysangat membantu
Nice mantep gan File Tutorialnya sukses tapi tutorial yg di web ada kekurangan tuh gan di controlernya ada yg kurang ; jadi error.
Replythanks
Wah... harus pelan-pelan coba nya gan.
Replyklu gak teliti pesan error melulu yang muncul
Thank's tutorial nya
sangat membantu sekali gan
Replyngasih tutor kok error semua mas bro.... kasih yg pemula pd bingung
Replythanks bro tugas jadi terselamatkan hehehe nice lah pokoknya
Replybang kalo saya udah login jadi admin atau jadi user ko yang tampil malah tulisaObject not found!
ReplyThe requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the webmaster.
Error 404
localhost
Apache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/7.0.2n
Post a Comment