Selamat Datang

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 :

Untitled

--
-- 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

 

3

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

1

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

567

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sekian tutorial saya kali ini semoga dapat membantu teman2 semua :D:D:D





Penulis :

Nama lengkap saya Muhamad Yusup Hamdani kelahiran dibogor, saya CEO & Founder Elephant, membangun aplikasi android dan website. email daniguavara562@gmail.com View all posts by Muhamad Yusup Hamdani

Comments

103 thoughts on “Membuat Login Multiuser Dengan CodeIgniter

  1. Freddy says:

    keren, Thanks alot :D

  2. Freddy says:

    wait gan kalau sekiranya level ada 5 itu bagaimana gan ? konsepnya sama saja ya ?

  3. Freddy says:

    kalau ada tombol like dan vote semacam stackoverflow ane vote deh ini blog nya, mau berbagi kesulitan lho

  4. M.Y.Budiono says:

    asalamualaikum mas, mas saya coba script responsivenya + css nya gak bisa, saya pake notepad
    ++,,mohon petunjuknya mas,baiknya pakai apa ,gimana kalau coffeecup editor atau ada saran lain?

  5. Freddy says:

    Gan buat ganti password nya donk ?

  6. ngSession says:

    permisi om Yusuf Hamdani, ane mw bertanya tentang session di php native dgn codeigniter yaitu session class yg kemudian di simpan ke database dgn tabel ci_sessions. kelebihan’y apa ya trs maksud dan tujuan’y ?

    kemudian ada ga contoh session seperti hal yg d buat om ini, tetapi dgn metode independent..
    Maksud’y ketika login dengan username berbeda di 1 PC yg sama. kemudian salah satu username logout, namun username lain tidak ikut logout. seprti login admin dan member, ketika logout username admin, yang username member tidak ikut logout.
    semoga mengerti maksud ane, dan terimakasih..

    • yang sempat saya rasakan dari cara yang menyimpan session ke dalam database adalah waktu komputasinya yang lebih lambat sekian detik. Kenapa..??? Yaw logikanya kan setiap akses yang membutuhkan session akan mengakses database untuk mencocokkan datanya. Pastinya lebih lambat jika dibandingkan dengan session yang disimpan ke dalam memori.

      saya pernah buat tapi berhubung datanya ada di pc dan pc nya sudah dijual jadi hilang hehee, tapi seperti yang salah bilang diatas, nnti insya allah saya buat contohnya ^_^

  7. rere says:

    mau nanya om, kalo kita pengen buat biar ketika kita login sebagai admin, kita hanya bisa mengakses halaman khusus untuk admin. begitu juga member. seperti memberi hak akses gitu
    gimana ya? :3

  8. eko prasaha says:

    waktu klik login ke link di bawah tapi object not found , gimana tuh mas

    http://localhost/latihanci/auth/cek_login

  9. joker says:

    itu sorce codenya kalau login sebegai member kenapa bisa mengakses halama admin…mohon tutorialnya diperbarui gan..
    contoh :
    kita login melalui url
    http://localhost/login_session/index.php/member/c_member/
    kemudian kita ganti url yang member/c_member/ diganti menjadi admin/c_admin/

    contollernya masih bisa di tembus.

  10. tuti1000 says:

    nice gan

  11. qray says:

    helpp!!!
    gan ane kok bikin user baru , udeh ane tambahin enumnya di sql . udah ditambahin auth.php nya , controlernya , sama view nya . tp pas login kenapa ada pesan gagal login , cek username password ??

  12. gan kalo cara insert daya ke database nya gimna tapi melalui form html,,itu kan ada 2 level saya bingung,,

    kontek saya ya https://www.facebook.com/chandradotnet

  13. Laspando Ambarita says:

    gan apa sih password admin dan membernya..
    ketika saya masukkan username : admin password : admin kenapa salah ga tolong dijelaskan gan…

    • haii gan itu saya memakai md5,

      Admin
      username : admin
      password : admin

      Member
      username : member
      password : member

      sudah saya coba download ulang kemudian dijalankan diborwser username dan password success ^_^

  14. Laspando Ambarita says:

    Gan tolong apa username dan passwordnya kenapa selalu salah?

  15. bryando says:

    mau tanya gan, saya kan lgi buat website gan..saya buat 2 hak akses yaitu admin dan member. kenapa pada saat salah satu hak akses itu di logout maka hak akses yang lain akan ikut logout otomatis, tetapi jika saya buka di lain browser tidak seperti itu. moho bantuan nya gan. mkasih

    • tergantung script yang digunakan saat logout, biasanya logout menghapus session yang sudah dibuat, jadi solusinya buatkan setiap user itu session tersendiri, dan ketika logout hapus session yang sesuai dengan user tersebut saja.
      Jadi kamu harus paham penggunaan session di PHP, nanti akan ngerti sendiri.

  16. reihan says:

    gan ini kenapa ya nggk bisa update nya
    Object 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.
    http://prntscr.com/766kpg

  17. Hartadi Kartanda says:

    Subject: Login gagal

    Permisi gan, kok loginnya gagal ya?
    pada saat cek_login() trus cek_user dari model_user kayaknya database ga bisa kebaca tabelnya. Saya menggunakan nama table user dan di model_user sudah saya ganti nama table menjadi ‘user’, tetapi tetap gagal login. mohon bantuannya.

  18. mahacara says:

    di controller c_admin dan c_user ada session_start();
    itu berfungsi untuk apa ya? karena saat itu dipanggil, isi session yang saya miliki malah hilang saat controller dipanggil dan program kembali ke ‘auth’ karena session kosong.
    setelang baris itu dihilangkan, program jalan.

    mohon penjelasan, gan.

  19. tanto says:

    mas saya coba make ci 3.0 kok ga mau ke redirect ya ?
    login bisa abis itu kembali ke halaman login lagi kenapa tu ?

  20. Bobby says:

    BIG THANKSSSSSSSSS!! IT’S WORKSSS.

  21. Dwi Cyntia says:

    Makasih gan tutorialnya. sangat bermanfaat. ^_^
    Mau nanya gan. Sya udah ngikutin cara di atas nih. Tapi ketika saya sudah login dan berhasil, ketika saya coba masukkan lagi url index nya tanpa saya logout kan, yang terbuka malah halaman login gan.
    Mohon pencerahannya gan. Trima kasih sebelumnya

  22. Dwi Cyntia says:

    Pke CI 2.2.1 gan

  23. Agung says:

    Makasih sebelumnya work bgt tapi ada yg mausaya tanyakan ..
    : kalau pas sudah login terus di back page kok lgsng ke halaman login lagi ya harusnya kan gak bisa sebelum di logout.

  24. toni says:

    mantap gan tutorialnya, gan ane mau tanya kalau kita mau nambahin kotak komentar untuk diskusi tanya jawab di CI gimana ya gan cranya…mohon bantuannya

  25. Mas saya sudah mengikuti langkah2nya dan tetap tidak bisa login, muncul pesan Gagal login karena salah masukkan username dan password, padahal saya memakai sourcecode yang mas kasih berhasil masuk, tetapi pas saya buat sendiri errornya di situ, dengan database yang sama
    akai CI versi 3.0.2

  26. andry says:

    klo gini kenapa gan?

    Fatal error: Call to undefined function form_open() in C:\xampp\htdocs\CodeIgniterlabz\application\views\index.php on line 10

  27. sugiartonardi says:

    Sangat bermanfaat tips tutorialnya.

    Sudah dicoba menggunakan ci3, dan 100% SUKSES tanpa kendala! Terima kasih.

    Ada yang ingin saya tanyakan para master ci disini.
    Dengan aplikasi multiuser ini, bagaimana cara membuat mencatat session username untuk digunakan sebagai username affiliasi ?? dan bagaimana cara mengaplikasikan supaya url menjadi http://localhost/loginmultiuser/sessionusername/member/c_member

    jika pada php biasanya index.php?id=username
    Ini digunakan untuk sebuah website afiliasi seperti SMUO.

    mungkin bisa dishare pada tutorial selanjutnya dengan topik membuat website smuo dengan CI.. semoga bermanfaat juga untuk pengunjung yang lain

  28. med says:

    mau nanya dong mas, ini kan aku pakai css dan js juga. terus header dan footernya juga sudah muncul, tapi yang gk muncul malah formnya login nya alias field inputan usernam dan passwordnya dan ada tulisan :

    Fatal error: Call to undefined function form_open() in C:\xampp\htdocs\masmaalci\application\views\index.php.

    aku coba hapus, malah ngerusak tampilannya. itu bagaimana ya?kalau mau tanya2 lebih lengkap hubungi kemana mas?

    terimakasih :D

  29. Aris says:

    Mas, kenapa ya saya gagal login terus salah password muncul pop up. padahal saya ngikutin semua tutorialnya?

  30. Aris says:

    Mas, kenapa ya saya gagal login terus salah password muncul pop up. padahal saya ngikutin semua tutorialnya? :(

  31. cendikia says:

    Need help undefined form_open

  32. ainul says:

    Severity: Notice

    Message: Only variable references should be returned by reference

    Filename: core/Common.php

    Line Number: 257

    • dan says:

      ikut jawab
      coba ganti file : system/core/common.php

      line berikut :
      //return $_config[0] =& $config;
      $_config[0] =& $config; return $_config[0];

  33. Althur says:

    Error Number: 1064

    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET `last_activity` = 1455780614, `user_data` = 'a:4:{s:9:\"user_data\";s:0:\"\"' at line 1

    UPDATE SET `last_activity` = 1455780614, `user_data` = 'a:4:{s:9:\"user_data\";s:0:\"\";s:9:\"logged_in\";s:12:\"Sudah Loggin\";s:3:\"nip\";s:8:\"21212121\";s:5:\"akses\";s:4:\"user\";}' WHERE `session_id` = '2e72650df8541dcc3334394cfb7eef37'

    Filename: libraries/Session.php

    Line Number: 306

    Ane selalu dapat error kayak gitu, selalu dapat masalah dengan sessionnya, dan yg ane pake codeigniter yang terbaru…

  34. Rifky Cahya says:

    Bang itu kan udah di logout tapi pas saya pencet backspace malah kembali lagi ke halaman yg tadi sebelum saya logout. Apa emang kaya gitu atau gimana bang? Di tunggu balesan nya…

    • harusnya ga bisa back lagi, udah di cek lagi ? coba di controllernya udah di tambahin session_start(); belum ?

      • Rifky Cahya says:

        Dimana nya bang?
        ini skrip yg ada di saya

        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’] = ‘Login Berhasil’;
        $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/login’);
        }
        if ($this->session->userdata(‘level’)==’kurir’) {
        redirect(‘kurir/home’);
        }
        elseif ($this->session->userdata(‘level’)==’loket’) {
        redirect(‘loket/home’);
        }
        }
        else {
        echo “alert(‘Username dan password salah!’);history.go(-1);”;
        }
        }

        public function logout() {
        session_destroy();
        redirect(‘login’);
        }
        }

        ?>

  35. Alsaskar says:

    Terima Kasih gan atas tutorialnya sangat bermanfaat, saya sudah coba dan berhasil tanpa error.

  36. yuszaeni says:

    Terima kasih banyak Mas.
    Sangat bermanfaat bagi saya yang baru mulai belajar.
    Mudah-mudahan ada materi baru lagi yang bisa saya pelajari lagi.
    Sekali lagi terima kasih, semoga berkah.

    Aamiin YRA.

  37. Dhea says:

    Maaf mas saya juga error dibagian views loginnya.

    $this->load->helper(‘form’);

    Ini ditambah dibagian mana ya mas?
    Terima kasih.

  38. Dhea says:

    Maaf mas sudah bisa, namun kenapa setelah saya memasukkan username dan password tidak muncul apa2 ya mas? Alias tidak redirect ke halaman yang ditujukan.

    Terima Kasih.

  39. Thanks gan, Membuat Login Multiuser Dengan Codeigniternya Berhasil :D

  40. sofwan says:

    Gan klo misalnya ane nambahin field “namalengkap” di tabelnya trus mau memunculkan di view itu caranya gimana yah

  41. iwan says:

    thenks bgt min………
    meskipun berkali-kali error akhirnya bisa juga……..heheheh

  42. adjay says:

    gan, ko error y?

    An uncaught Exception was encountered

    Type: Error

    Message: Call to undefined function form_open()

    Filename: C:\xampp\htdocs\login_session\application\views\index.php

    Line Number: 10

    Backtrace:

    File: C:\xampp\htdocs\login_session\application\controllers\auth.php
    Line: 6
    Function: view

    File: C:\xampp\htdocs\login_session\index.php
    Line: 315
    Function: require_once

    itu knp ya? thnks..

  43. ghani says:

    Permisi kang saya error nya disini tuh apa ya
    Fatal error: Call to a member function get_where() on null in C:\xampp\htdocs\tes\application\models\model_user.php on line 6 ?

  44. badria says:

    kang knpa pas login, sllu salah y user & pass, pdhal d database udh bner..
    itu yg salah dmn y kang?

  45. uus says:

    set_userdata() on a non-object, ini kenapa gan ya ??

  46. Windi says:

    mas kenapa kalo saya insert data user selain yang diatas tuh pas login gagal mulu, terus saya bisa login buat admin tapi ga blank ga tampil index nya. kenapa ya mas? minta solusinya makasih hehe

  47. Bean says:

    Saya sudah mencoba scriptnya kang Yusup tetapi kenapa ya kalau disubmit selalu kembali ke halaman login?

  48. david says:

    ko ga bs didownload

  49. diego says:

    tanpa download

  50. diego says:

    ada link download

  51. dogol says:

    permasalahan yg belum terpecahkan adalah ketika login sebagai member, tapi bisa mengkases halaman admin, tolong pencerahannya gan..

  52. Gema says:

    ga bisa di download bang tutorialnya,mohon bantuannya

  53. yudi says:

    gan file downloadnya hilang bisa di perbaiki gak..?buat belajar ane, mksih gan

  54. Fatkul Azis says:

    permisi gan, form_open() nya kok gak mau bekerja yah. waktu halaman login nya di load muncul error seperti ini:

    An uncaught Exception was encountered
    Type: Error
    Message: Call to undefined function form_open()
    Filename: C:\xampp\htdocs\Tugas\application\views\index.php
    Line Number: 35
    Backtrace:
    File: C:\xampp\htdocs\Tugas\application\controllers\front.php
    Line: 6
    Function: view
    File: C:\xampp\htdocs\Tugas\index.php
    Line: 315
    Function: require_once

    Mohon solusinya…

Leave a Comment

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


Klik Tombol Like / Suka ya kawan..

Klik tombol "Like" atau "Suka" untuk mendapatkan update tutorial, tips & tricks serta info terbaru seputar dunia web design & development