Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Form login tidak bisa diisi ketika username atau password salah lalu diredirect ke login lagi

Ketika login dengan username dan password yang salah ada peringatan "username atau password salah", lalu akan diredirect ke halaman login lagi, namun form login tidak bisa diisi/diketik/diklik, untuk mengisi username dan password yang benar harus di refresh lagi. Controller login

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

class Login extends CI_Controller{

  public function __construct()
  {
    parent::__construct();
  }
  //Halaman login
  public function index()
  {
    //Validasi
    $this->form_validation->set_rules('username','Username', 'required',
          array('required'  => '%s harus diisi'));

     $this->form_validation->set_rules('password','Password', 'required',
          array('required'  => '%s harus diisi'));

     if($this->form_validation->run())
     {
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        //proses ke simple login
        $this->simple_login->login($username,$password);
     }

    //End validasi

    $data= array( 'title'   => 'Login Administrator');
    $this->load->view('login/list', $data, FALSE);
  }

  //Fungsi logout
  public function logout()
  {
    //Ambil fungsi logout dari simple_login
    $this->simple_login->logout();
  }

}

User model

//Login user
	public function login($username,$password)
	{
		$this->db->select('*');
		$this->db->from('users');
		$this->db->where(array('username'	=> $username,
								'password'	=> MD5($password)));
		$this->db->order_by('id_user', 'desc');
		$query = $this->db->get();
		return $query->row();
	}

Views login list


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title> <?php echo $title ?> </title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <!-- Bootstrap 3.3.7 -->
  <link rel="stylesheet" href="<?php echo base_url() ?>assets/admin/bower_components/bootstrap/dist/css/bootstrap.min.css">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="<?php echo base_url() ?>assets/admin/bower_components/font-awesome/css/font-awesome.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="<?php echo base_url() ?>assets/admin/bower_components/Ionicons/css/ionicons.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="<?php echo base_url() ?>assets/admin/dist/css/AdminLTE.min.css">
  <!-- iCheck -->
  <link rel="stylesheet" href="<?php echo base_url() ?>assets/admin/plugins/iCheck/square/blue.css">

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->

  <!-- Google Font -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body class="hold-transition login-page">
<div class="login-box">
  <div class="login-logo">
    <a href="<? php echo base_url() ?> <b> <?php echo $title ?> </b></a>
  </div>
  <!-- /.login-logo -->
  <div class="login-box-body">
    <p class="login-box-msg">Masukkan username dan password</p>

<?php
//Notifikasi error
echo validation_errors('<div class="alert alert-success">','</div>');

//Notifikasi gagal login
if($this->session->flashdata('warning')) {
  echo '<div class="alert alert-warning">';
  echo $this->session->flashdata('warning');
  echo '</div>';
}

//Notifikasi logout
if($this->session->flashdata('sukses')) {
  echo '<div class="alert alert-succsess">';
  echo $this->session->flashdata('sukses');
  echo '</div>';
}

//Form open login
echo form_open(base_url('login'));
?>

      <div class="form-group has-feedback">
        <input type="text" name="username" class="form-control" placeholder="Username">
        <span class="glyphicon glyphicon-user form-control-feedback"></span>
      </div>
      <div class="form-group has-feedback">
        <input type="password" name="password" class="form-control" placeholder="Password">
        <span class="glyphicon glyphicon-lock form-control-feedback"></span>
      </div>
      <div class="row">
        <div class="col-xs-8">
          <div class="checkbox icheck">
            <label>
              <input type="checkbox">Remember Me
            </label>
          </div>
        </div>
        <!-- /.col -->
        <div class="col-xs-4">
          <button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>
        </div>
        <!-- /.col -->
      </div>

 <?php echo form_close(); ?>


  </div>
  <!-- /.login-box-body -->
</div>
<!-- /.login-box -->

<!-- jQuery 3 -->
<script src="<?php echo base_url() ?>assets/admin/bower_components/jquery/dist/jquery.min.js"></script>
<!-- Bootstrap 3.3.7 -->
<script src="<?php echo base_url() ?>assets/admin/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- iCheck -->
<script src="<?php echo base_url () ?>assets/admin/plugins/iCheck/icheck.min.js"></script>
<script>
  $(function () {
    $('input').iCheck({
      checkboxClass: 'icheckbox_square-blue',
      radioClass: 'iradio_square-blue',
      increaseArea: '20%' /* optional */
    });
  });
</script>
</body>
</html>

Libraries Simple login

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

class Simple_login
{
	protected $CI;

	public function __construct()
	{
		$this->CI =& get_instance();
		//Load data model user
		$this->CI->load->model('user_model');
	}

	//Fungsi login
	public function login($username,$password)
	{
		$check = $this->CI->user_model->login($username,$password);
		//Jika ada data user, maka create session login
		if($check){
			$id_user			= $check->id_user;
			$nama				= $check->nama;
			$akses_level		= $check->akses_level;
			//Create session
			$this->CI->session->set_userdata('id_user', $id_user);
			$this->CI->session->set_userdata('nama', $nama);
			$this->CI->session->set_userdata('username', $username);
			$this->CI->session->set_userdata('akses_level', $akses_level);
			//Redirect ke halaman admin yang diproteksi
			redirect(base_url('admin/dashboard'), 'refresh');
		}else{
			//Kalau tidak ada (username dan password salah), maka disuruh login lagi
			$this->CI->session->set_flashdata('warning', 'Username atau password salah');
			redirect(base_url('login'), 'refresh');
		}
	}

	//Fungsi cek login
	public function cek_login()
	{
		//Memeriksa sessionnya sudah ada apa belum, jika belum redirect ke halaman login
		if($this->CI->session->userdata('username')==""){
			$this->CI->session->set_flashdata('warning', 'Anda belum login');
			redirect(base_url('login'), 'refresh');
		}
	}

	//Fungsi logout
	public function logout()
	{
		//Membuang semua session yang telah diset pada saat login
		$this->CI->session->unset_userdata('id_user');
		$this->CI->session->unset_userdata('nama');
		$this->CI->session->unset_userdata('username');
		$this->CI->session->unset_userdata('akses_level');
		//Setelah session di unset maka nanti redirect ke login
		$this->CI->session->set_flashdata('sukses', 'Anda berhasil logout');
		redirect(base_url('login'), 'refresh');
	}
}

avatar Exmy31
@Exmy31

28 Kontribusi -1 Poin

Dipost 4 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban