Postingan lainnya
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');
}
}
0
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban