Arie Isnain

Membuat Login Multiuser Dengan CodeIgniter

Membuat Login Multiuser Dengan Codeigniter - Pada tutorial saya kali ini akan menjelaskan tentang bagaimana cara membuat login session multiuser dengan codeigniter, tanpa banyak bicara mari kita cari tau bagimana sih cara membuat login session multiuser dengan codeigniter ?

Pertama buat database dan tabel untuk user disini saya membuat database codeigniter dan tabel login_session berikut sql nya :

Membuat Login Multiuser Dengan CodeIgniter


--
-- Database: `codeigniter`
--

-- --------------------------------------------------------

--
-- Table structure for table `login_session`
--

CREATE TABLE IF NOT EXISTS `login_session` (
`uid` bigint(20) NOT NULL,
  `username` varchar(30) NOT NULL,
  `password` varchar(255) NOT NULL,
  `level` enum('admin','member') NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `login_session`
--

INSERT INTO `login_session` (`uid`, `username`, `password`, `level`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin'),
(2, 'member', 'aa08769cdcb26674c6706093503ff0a3', 'member');

--
-- Indexes for dumped tables
--
Database CodeIgniter
Catatan : password memakai database jadi saat Anda membuat user baru diharapkan untuk password memakai md5.

Seletah selesai membuat database kita akan membuat folder baru di folder htdocts Anda disini saya memakai xampp buat folder dengan nama login_session kemudian buat Controller baru dengan nama auth.php :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Auth extends CI_Controller {

 public function index() {
  $this->load->view('index');
 }

 public function cek_login() {
  $data = array('username' => $this->input->post('username', TRUE),
      'password' => md5($this->input->post('password', TRUE))
   );
  $this->load->model('model_user'); // load model_user
  $hasil = $this->model_user->cek_user($data);
  if ($hasil->num_rows() == 1) {
   foreach ($hasil->result() as $sess) {
    $sess_data['logged_in'] = 'Sudah Loggin';
    $sess_data['uid'] = $sess->uid;
    $sess_data['username'] = $sess->username;
    $sess_data['level'] = $sess->level;
    $this->session->set_userdata($sess_data);
   }
   if ($this->session->userdata('level')=='admin') {
    redirect('admin/c_admin');
   }
   elseif ($this->session->userdata('level')=='member') {
    redirect('member/c_member');
   }  
  }
  else {
   echo "<script>alert('Gagal login: Cek username, password!');history.go(-1);</script>";
  }
 }

}

?>
?>
auth.php
buat folder baru didalam Controller beri nama admin buat file didalamnya c_admin.php, kenapa membuat folder ? agar susunan file admin dan member terpisah dan lebih rapih :
<?php
session_start();
class C_admin extends CI_Controller {

 public function __construct() {
  parent::__construct();
  if ($this->session->userdata('username')=="") {
   redirect('auth');
  }
  $this->load->helper('text');
 }
 public function index() {
  $data['username'] = $this->session->userdata('username');
  $this->load->view('admin/index', $data);
 }

 public function logout() {
  $this->session->unset_userdata('username');
  $this->session->unset_userdata('level');
  session_destroy();
  redirect('auth');
 }
}
?>
admin/c_admin.php
lakukan seperti langkah diatas, buat folder baru didalam Controller berinama member buat file didalamnya c_member.php :
<?php
session_start();
class C_member extends CI_Controller {

 public function __construct() {
  parent::__construct();
  if ($this->session->userdata('username')=="") {
   redirect('auth');
  }
  $this->load->helper('text');
 }
 public function index() {
  $data['username'] = $this->session->userdata('username');
  $this->load->view('member/index', $data);
 }

 public function logout() {
  $this->session->unset_userdata('username');
  $this->session->unset_userdata('level');
  session_destroy();
  redirect('auth');
 }
}
?>
member/c_member.php

script diatas menjelaskan apabila session belum dibuat atau session username kosong makan akan diarahkan kembali ke Controller auth.php/redirect(‘auth’);

Buat Model baru dengan nama model_user.php untuk pengecekan users di database Anda :

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

 class Model_user extends CI_Model {

  public function cek_user($data) {
   $query = $this->db->get_where('login_session', $data);
   return $query;
  }

 }

?>
model_user.php
Buat View untuk menampilkan form login dibrowser, klik new file didalam folder Application View dengan nama index.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>AZZURA Media | Admin</title>
</head>
<body>
<?php echo form_open("auth/cek_login"); ?>
  <p>Username : <br>
  <input type="text" name="username">
  </p>
  <p>Password : <br>
  <input type="password" name="password"></p>
  <p><button type="submit">Submit</button></p>
  <?php echo form_close(); ?>
</body>
</html>
index.php
Buat folder baru didalam folder Application View berinama admin dan buat file index.php, ini untuk halaman admin apabila berhasil login
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>AZZURA Media | Admin</title>
</head>
<body>

<h1>Haii selamat datang, anda login sebagai <?php echo $username; ?></h1> <a href="<?php echo site_url('admin/c_admin/logout'); ?>">Logout</a>

</body>
</html>
admin/index.php
Kemudian untuk halaman member buat folder baru didalam Application View berimana member dan buat file index.php, ini untuk halaman member apabila berhasil login
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>AZZURA Media | Member</title>
</head>
<body>

<h1>Haii selamat datang dihalaman <b>member</b>, anda login sebagai <?php echo $username; ?></h1> <a href="<?php echo site_url('admin/c_admin/logout'); ?>">Logout</a>

</body>
</html>
member/index.php
apabila kalian mengikuti semua tutorial stuktur folder dan file dalam folder codeigniter akan seperti ini, saya beritanda garis merah yang artinya file yang kita buat didalam tutorial membuat login session multiuser dengan codeigniter ini


Buka hasil buatan Anda dan lihat jika sudah benar akan muncul form login sederhana dengan tombol Log In. Masukan username dan password yang ada didatabase kemudian klik tombol login, apabila admin yang masuk akan diarahkan kehalaman admin apabila member akan diarahkan kehalaman member




Sekian tutorial saya kali ini semoga dapat membantu teman-teman semua :D:D:D




0 Response to "Membuat Login Multiuser Dengan CodeIgniter"

Posting Komentar