CodeIgniter | Membuat multi user Login

Bingung neh mau ngapaen , mending buat artikel aja deh di sini :D
oke artikel kali ini tentang CodeIgniter yak , kita buat Multi user Login
Langsung aja ,
Nih Tampilan Login

Perlengkapan : xampp | CodeIgniter | Notepad++

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>&nbsp;</td>
				<td>&nbsp;</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 :p
tenang 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 &raquo;');
 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 &raquo;');?></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>&nbsp;</td>
        <td>&nbsp;</td>
        <td><input type="submit" name="login" value="Login" class="tombol"> </td>
       </tr>
      </table>
  </div>
  </form> 
Sehingga akan terbentuk seperti ini nih :
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 :
Message: Missing argument 4 for M_login::setPengguna(), called in C:\xampp\htdocs\appci\application\controllers\login.php on line 32 and defined

Reply

Thank's Bro ! Artikel inyong sangat membantu.. (p)

Reply

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

Reply

gan klau logout trus back button lagi halaman logout yg tadi masih muncul, kira2 knp gan?? thanx

Reply

bos kok gagal login terus ya udah ngikutin tutorial ini

Reply

Beneran 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

Reply

Gan 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, .....

Reply

password admin apaan gan???

Reply

thanks da share gan ..bantu banget buat kerja tugas ..haha

Sedekah
Makassar
Tas Kulit

Reply

nice tutor gan (y)

sangat membantu

Reply

Nice mantep gan File Tutorialnya sukses tapi tutorial yg di web ada kekurangan tuh gan di controlernya ada yg kurang ; jadi error.
thanks

Reply

Wah... harus pelan-pelan coba nya gan.
klu gak teliti pesan error melulu yang muncul :D

Thank's tutorial nya

Reply

sangat membantu sekali gan

Reply

ngasih tutor kok error semua mas bro.... kasih yg pemula pd bingung

Reply
Anonymous mod

thanks bro tugas jadi terselamatkan hehehe nice lah pokoknya

Reply

bang kalo saya udah login jadi admin atau jadi user ko yang tampil malah tulisaObject not found!
The 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

Reply

Post a Comment

notifikasi
close