Difference between revisions of "Login CodeIgniter"

From belajarwiki
Jump to navigation Jump to search
Line 32: Line 32:
 
===Login===
 
===Login===
 
<pre>
 
<pre>
<?php
+
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
+
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
+
class Login extends CI_Controller {
 
     function __construct(){
 
     function __construct(){
 
         parent::__construct();
 
         parent::__construct();
$this->load->model('Model_login','Model_login');
+
        $this->load->model('Model_login','Model_login');
 
     }   
 
     }   
  
Line 73: Line 73:
 
                         $this->session->set_userdata('name',$name);
 
                         $this->session->set_userdata('name',$name);
 
                         redirect('home');
 
                         redirect('home');
 +
                    }
 
                 }else{
 
                 }else{
 
                     $url=base_url('login');
 
                     $url=base_url('login');
                     echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">&times;</span>
+
                     echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">×</span>
 
                     <h3>Uupps!</h3>
 
                     <h3>Uupps!</h3>
 
                     <p>Akun kamu telah di blokir. Silahkan hubungi admin.</p>');
 
                     <p>Akun kamu telah di blokir. Silahkan hubungi admin.</p>');
Line 82: Line 83:
 
             }else{
 
             }else{
 
                 $url=base_url('login');
 
                 $url=base_url('login');
                 echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">&times;</span>
+
                 echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">×</span>
 
                     <h3>Uupps!</h3>
 
                     <h3>Uupps!</h3>
 
                     <p>Password yang kamu masukan salah.</p>');
 
                     <p>Password yang kamu masukan salah.</p>');
Line 89: Line 90:
 
         }else{
 
         }else{
 
             $url=base_url('login');
 
             $url=base_url('login');
             echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">&times;</span>
+
             echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">×</span>
 
             <h3>Uupps!</h3>
 
             <h3>Uupps!</h3>
 
             <p>Email yang kamu masukan salah.</p>');
 
             <p>Email yang kamu masukan salah.</p>');
Line 101: Line 102:
 
         redirect($url);
 
         redirect($url);
 
     }
 
     }
}
+
}
 
</pre>
 
</pre>
  

Revision as of 17:54, 20 November 2021

Database

Create Database

CREATE DATABASE my_db;

Create Table

CREATE TABLE `user` (
 `user_id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(32) NOT NULL,
 `username` varchar(64) NOT NULL,
 `password` varchar(255) NOT NULL,
 `role` int(11) NOT NULL,
 `user_status` int(11) NOT NULL,
 PRIMARY KEY (`user_id`)
);

Insert Data

Jika menggunakan SHA

INSERT INTO user VALUES
('1','User','user',SHA2('user123', 224),'2','1'),
('2','Admin','admin',SHA2('admin123', 224),'1','1');


Jika menggunakan MD5

INSERT INTO user VALUES
('1','User','user',MD5('user123'),'2','1'),
('2','Admin','admin',MD5('admin123'),'1','1');

Controller

Login

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
    function __construct(){
        parent::__construct();
        $this->load->model('Model_login','Model_login');
    }   

    function index(){
        if($this->session->userdata('logged') !=TRUE){
            $this->load->view('view-login');
        }else{
            $url=base_url('home');
            redirect($url);
        };
    }   

    function auth(){
        $username = $this->input->post('username');
        $password = $this->input->post('pass');               
        $validasi = $this->Model_login->query_validasi_username($username);
        if($validasi->num_rows() > 0){
            $validate_pswd=$this->Model_login->query_validasi_password($username,$password);
            if($validate_pswd->num_rows() > 0){
                $x = $validate_pswd->row_array();
                if($x['user_status']=='1'){
                    $this->session->set_userdata('logged',TRUE);
                    $this->session->set_userdata('user',$username);
                    $id=$x['user_id'];
                    if($x['role']=='1'){ //Administrator
                        $name = $x['user_name'];
                        $this->session->set_userdata('access','Administrator');
                        $this->session->set_userdata('id',$id);
                        $this->session->set_userdata('name',$name);
                        redirect('home');
                    }else if($x['role']=='2'){ //User
                        $name = $x['user_name'];
                        $this->session->set_userdata('access','User');
                        $this->session->set_userdata('id',$id);
                        $this->session->set_userdata('name',$name);
                        redirect('home');
                    }
                }else{
                    $url=base_url('login');
                    echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">×</span>
                    <h3>Uupps!</h3>
                    <p>Akun kamu telah di blokir. Silahkan hubungi admin.</p>');
                    redirect($url);
                }
            }else{
                $url=base_url('login');
                echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">×</span>
                    <h3>Uupps!</h3>
                    <p>Password yang kamu masukan salah.</p>');
                redirect($url);
            }
        }else{
            $url=base_url('login');
            echo $this->session->set_flashdata('msg','<span onclick="this.parentElement.style.display=`none`" class="w3-button w3-large w3-display-topright">×</span>
            <h3>Uupps!</h3>
            <p>Email yang kamu masukan salah.</p>');
            redirect($url);
        }
    }

    function logout(){
        $this->session->sess_destroy();
        $url=base_url('login');
        redirect($url);
    }
}

Home

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

class Home extends CI_Controller {
	function __construct(){
		parent::__construct();
		if($this->session->userdata('logged') !=TRUE){
                    $url=base_url('login');
                    redirect($url);
		};
	}
	
	public function index()
	{
		$this->load->view('view-home');
	}
}


Model

Login

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

class Mlogin extends CI_Model{

    function query_validasi_username($username){
    	$result = $this->db->query("SELECT * FROM user WHERE username='$username' LIMIT 1");
        return $result;
    }

    function query_validasi_password($username,$password){
    	$result = $this->db->query("SELECT * FROM user WHERE username='$username' AND user_password=SHA2('$password', 224) LIMIT 1");
        return $result;
    }

} 

View

View Login

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Login</title>
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> 
</head>
<body>
    <br>
    <div class="w3-container">
        <div class="w3-row">
            <div class="w3-col" style="width:30%"><p></p></div>
            <div class="w3-col" style="width:40%">
                <div class="w3-card-4">
                    <div class="w3-container w3-blue">
                        <h2>Silahkan Login</h2>
                    </div>
                    <form class="w3-container" method="POST" action="<?php echo site_url('login/auth');?>">
                        <p>      
                            <label class="w3-text-blue"><b>Username</b></label>
                            <input class="w3-input w3-border w3-sand" name="username" type="text">
                        </p>
                        <p>      
                            <label class="w3-text-blue"><b>Password</b></label>
                            <input class="w3-input w3-border w3-sand" name="pass" type="password">
                        </p>
                        <p>
                            <button class="w3-btn w3-blue">Masuk</button>
                        </p>
                    </form>
                </div>
                <div class="w3-panel w3-blue w3-display-container">
                    <?php echo $this->session->flashdata('msg');?>
                </div>                  
            </div>
            <div class="w3-col" style="width:30%"><p></p></div>
        </div>
    </div>
</body>
</html>

View Home

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Home</title>
    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> 
</head>
<body>
    <div class="w3-bar w3-border w3-light-grey w3-card-4">
        <a href="#" class="w3-bar-item w3-blue w3-button">Home</a>
        <?php if($this->session->userdata('access')=='Administrator'){ ?>
            <a href="#" class="w3-bar-item w3-button">Daftar Satu</a>
            <a href="#" class="w3-bar-item w3-button">Daftar Dua</a>
            <a href="#" class="w3-bar-item w3-button">Daftar Tiga</a>
        <?php } if($this->session->userdata('access')=='User'){ ?>
            <a href="#" class="w3-bar-item w3-button">Daftar Empat</a>
        <?php }; ?>
        <a href="<?php echo site_url('login/logout');?>" class="w3-bar-item w3-button w3-red w3-right">Keluar</a>
    </div>
    <div class="w3-container">
        <h1>Hai <?php echo $this->session->userdata('name'); ?></h1>
        <h3>Ini adalah halaman untuk  <?php echo $this->session->userdata('access'); ?></h3>
    </div>
</body>
</html>