MultiLevel User Login Codeigniter 2.0.2 with Database

back again with codeigniter 2.0.2, nah artikel sebelumnya kita hanya membahas login multiuser tanpa mengunakan database. untuk artikel kali ini kita akan membahas multilevel login dengan database. oke langsung ke pokok pembahasan.
file database adalah :



CREATE TABLE IF NOT EXISTS `levelid` (
  `levelid` int(3) NOT NULL,
  `levelname` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `levelid` (`levelid`, `levelname`) VALUES
(1, 'admin'),
(2, 'user'),
(3, 'operator');

CREATE TABLE IF NOT EXISTS `member` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nama` varchar(200) NOT NULL,
  `user` varchar(200) NOT NULL,
  `pass` varchar(200) NOT NULL,
  `level` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `member` (`id`, `nama`, `user`, `pass`, `level`) VALUES
(1, 'admin', 'admin', 'admin', 'admin'),
(2, 'user', 'user', 'user', 'user'),
(3, 'operator', 'operator', 'operator', 'operator');

untuk Controller bisa dilihat seperti dibawah ini :
login.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
Class Login extends CI_Controller
{
	public function __construct(){
		parent::__construct();
		$this->load->helper(array('form','url'));
		$this->load->model('mlogin');
	}
	public function index(){
		$data['optionlist'] = $this->mlogin->getdropdownsup();
		$this->load->view("login",$data);
	}
	public function cekuser(){
		$data['user'] = $this->input->POST('user');
		$data['pass'] = $this->input->POST('pass');
		$data['level'] = $this->input->post('level');
		
		$data['temukkan'] =$this->mlogin->cekdb();
		if($data['temukkan'] == null){
			return "no";
		}else{
			return "yes";
		}
       }
	public function usermasuk(){
		if($this->cekuser()=="yes"){
			$data['user'] = $this->input->post('user');
			$data['level'] = $this->input->post('level');
			$newdata = array('username' => $data['user'],'level' => $data['level'], 'status'=>'ok');
			$this->session->set_userdata($newdata);
			//$data['tampil']=$this->mlogin->get_by_id(member)->row();
			
			if($data["level"] == "admin"){
				$this->load->view('loginadmin');
			}elseif ($data["level"] == "user"){
				$this->load->view('loginuser');
			}elseif($data["level"] == "operator"){
				$this->load->view('loginoperator');
			}else{
				echo "error";
			}

		}else{
			echo "login gagal";
		}
	}
	public function gagallogin(){
		if($this->cekuser()=="no"){
			echo "gagal login";
		}
	}
	public function logout(){
		$this->session->sess_destroy();
		redirect("login/index");
		echo "anda telah berhasil logout";
	}
}

untuk model kita akan menamainya dengan
mlogin.php

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

class Mlogin extends CI_Model{
	
	public function cekdb(){
		$user = $this->input->post('user');
		$pass = $this->input->post('pass');
		$level = $this->input->post('level');
		
		$this->db->where('user',$user);
		$this->db->where('pass',$pass);
		$this->db->where('level',$level);
		$query = $this->db->get('member');
		return $query->result();
	}
	public function getdropdownsup(){
		$dbres = $this->db->get('levelid');
		$ddmenu = array();
		foreach ($dbres->result_array() as $tablerow){
			$ddmenu[0] = '--Choose Mode--';
			$ddmenu[$tablerow['levelname']] = $tablerow['levelname'];
		}
		return $ddmenu;
	}
	public function getsupply($id){
		$data = array();
		$options = array('id' => $id);
		$Q = $this->db->get_where('member',$options,1);
		if($Q->num_rows() > 0){
			$data = $Q->row_array();
		}
		$Q->free_result();
		return $data;
	}
}
?>

untuk login form kita akan menamai dengan
login.php

<html>
<head><title></title></head>
<body>
<?php echo form_open("login/usermasuk"); ?>
<input type="text" name="user">
<input type="password" name="pass">
<?php echo form_dropdown("level",$optionlist,"","id ='level'"); ?>
<input type="submit" value="submit"/>
</form>
</body>
</html>

setelah itu halaman yang dapat menujukkan bahwa kita telah memasuki area yang berbeda.

loginadmin.php

<html>
<body>
anda berhasil login Admin<?php // echo $tampil->level; ?>
<a href="<?php echo site_url(); ?>/login/logout">keluar</a>
</body>
</html>

loginuser.php

<html>
<body>
anda berhasil login User<?php // echo $tampil->level; ?>
<a href="<?php echo site_url(); ?>/login/logout">keluar</a>
</body>
</html>

loginoperator.php

<html>
<body>
anda berhasil login Operator<?php // echo $tampil->level; ?>
<a href="<?php echo site_url(); ?>/login/logout">keluar</a>
</body>
</html>

diatas adalah contoh simple bisa dikembangkan sendiri…see you.

44 thoughts on “MultiLevel User Login Codeigniter 2.0.2 with Database

  1. koq nggak bisa ya bro keluar pesan gini :
    Fatal error: Call to a member function get() on a non-object in E:\xampp\htdocs\CodeIgniter_2.0.2\application\models\mlogin.php on line 17

  2. A PHP Error was encountered

    Severity: Notice

    Message: Undefined property: C_login::$session

    Filename: controllers/c_login.php

    Line Number: 43

    Fatal error: Call to a member function set_userdata() on a non-object in C:\xampp\htdocs\latihan\application\controllers\c_login.php on line 43

    kalo ini apa yang salah mas ??
    mohon bantuannya..🙂

  3. mas yaniar, ko saya ikuti langkah mas ada error di getdropdownsup() ?
    A PHP Error was encountered

    Severity: Notice

    Message: Undefined property: Login::$mlogin

    Filename: controllers/login.php

    Line Number: 12

    Fatal error: Call to a member function getdropdownsup() on a non-object in E:\xampp\htdocs\CodeIgniter_2.1.0\application\controllers\login.php on line 12

    apanya ya?
    padahal libraries nya sudah saya daftarkan untuk database diconfig?
    terima kasih

  4. gan eror di
    Fatal error: Call to a member function set_userdata() on a non-object in C:\xampp\htdocs\CodeIgniter_2.0.2\application\controllers\login.php on line 30

  5. Mas bro.. ane udah berhasil buat multiple session kyk tutorial ente. tp ane bingung nih.. knp saat sudah login, saya klik tombol back , dia malah keluar seperti logout. trus sebalik nya juga. saat saya coba logout dan berhasil, saya klik tombol forward pada browser, halaman langsung login sendiri? mohon pencerahannya..

  6. mas mau tanya nih, kalo yg ini kan pake codeigniter versi 2.0.2
    sayakan masih pake CI versi 1.7.2 bisa gak saya bikin multiple loginnya itu pake versi yg punya saya (1.7.2) ??

  7. Sebelumnya terimakasih tutorialnya..
    code ini //$data[‘tampil’]=$this->mlogin->get_by_id(member)->row(); untuk menampilkan user level apa yg sedang login saat di view kan ya? koq dicoba gak bs ya? function get_by_idnya itu isinya apa ya?

    • Mengenai pertanyaan dina itu ada tanda // ini bagian awal code bearti diabaikan jdi itu code itu tidak digunakan. Tadinya digunakan untuk memanggil id member..tp yang bukan yg sesuai topik diatas…Terima kasih telah berkunjung..:D

  8. Mas bagaimana klo ngga pake input level, jd ngecek username sm password tp bs tau levelnya

    Mohon pencerahanya🙂

  9. kang mas, itu kan levelnya ada di table admin,,,
    nah,,
    kalau misalkan,
    levelnya ada di table ke tiga,,,
    dan kita mau ngambil session dari table ke 3 itu untuk load view,
    kalo contoh query di php murni untuk loginya seperti ini kangmas

    contoh querynya kang =
    select a.priviledge as priv from priviledge as a, jabatan as b, user as c where a.id_priv = b.id_priv and b.id_jabatan = c.id_jabatan and c.username=”admin” and c.password=”admin”

    nah,,, naro query untuk session login itu di file apa?

    trus buat naro session nya di file apa sebelum reload ke home nya?

    makasih mas,,, dijawab yee, hhhha

    • Gw jawab karena dibawah suruh jawab, tapi karena ada hhaha..jadi pertanyaan ga gw jawab mending lu contact gw by mail yahoo ato gmail monggo. share email lu dimari ntar gw add..ok😛

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s