Postingan lainnya
login tidak bisa submit?
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Auth extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('form_validation');
}
//login
public function index()
{
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
if ($this->form_validation->run($this) == false) {
$data['title'] = 'Login Page';
$this->load->view('templates/auth_header', $data);
$this->load->view('auth/login');
$this->load->view('templates/auth_footer');
} else {
//validasinya sukses
$this->_login();
}
}
private function _login()
{
$email = $this->input->post('email');
$password = $this->input->post('password');
$user = $this->db->get_where('user', ['email' => $email])->row_array();
//jika usernya ada
if ($user) {
//jika usernya aktif
if ($user['is_active'] == '1') {
//cek password
if (password_verify($password, $user['password'])) {
$data = [
'email' => $user['email'],
'role_id' => $user['role_id'],
];
$this->session->set_userdata($data);
redirect('user');
} else {
$this->session->set_flashdata('message', '<div class="alert alert-success" role="alert">
Selamat! Akun anda telah terdaftar. Silahkan masuk! </div>');
redirect('auth');
}
}
}
}
SharedScreenshot.jpg89.29 KB
<div class="container">
<!-- Outer Row -->
<div class="row justify-content-center">
<div class="col-lg-5">
<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg">
<div class="p-5">
<div class="text-center">
<img src="<?= base_url() ?>assets/img/pmii.png" alt="">
<h1 class="h4 text-gray-900">Sistem Informasi</h1>
</div>
<?= $this->session->flashdata('message'); ?>
<form class="user" method="post" action="<?= base_url('auth'); ?>">
<div class="input-group mb-3">
<input type="email" class="form-control" placeholder="Email" id="email" name="email">
<?= form_error('email', '<small class="text-danger ">', '</small>'); ?>
<div class="input-group-append">
<div class="input-group-text">
<span class="fa fa-envelope faa-vertical animated"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" placeholder="Password" id="password" name="password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fa fa-key faa-pulse faa-shake animated"></span>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-12">
<button name="login" type='submit' class="btn btn-primary btn-block"><i class="fa fa-sign-in"></i> Masuk</button>
<a href="login" class="btn btn-success btn-block"><i class="fa fa-user"></i> Login Admin</a>
</div>
</div>
</a>
</form>
<hr>
<div class="text-center">
<a class="small" href="forgot-password.html">Forgot Password?</a>
</div>
<div class="text-center">
<a class="small" href="register.html">Create an Account!</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
1 Jawaban:
<div>Kalo saya biasa buat seperti ini :</div><pre><?php defined('BASEPATH') or exit('No direct script access allowed');
class Authentication extends CI_Controller {
public function __construct()
{
parent::__construct();
$this-&gt;load-&gt;library('main_lib');
$this-&gt;main_lib-&gt;createFirstUser();
}
public function index()
{
if(isAuthenticated()) {
redirect('dashboard');
}
if (isset($_POST['login'])) {
$rules = [
[
'field' =&gt; 'username',
'label' =&gt; 'Username / Email',
'rules' =&gt; 'required'
],
[
'field' =&gt; 'password',
'label' =&gt; 'Password',
'rules' =&gt; 'required'
],
[
'field' =&gt; 'level',
'label' =&gt; 'Level',
'rules' =&gt; 'required'
]
];
$this-&gt;form_validation-&gt;set_rules($rules);
$this-&gt;form_validation-&gt;set_error_delimiters("&lt;p class='text-danger'&gt;", "&lt;/p&gt;");
if ($this-&gt;form_validation-&gt;run() === FALSE) {
$this-&gt;load-&gt;view('auth/login-form');
} else {
$username = $this-&gt;input-&gt;post('username', true);
$password = $this-&gt;input-&gt;post('password', true);
$level = $this-&gt;input-&gt;post('level', true);
$credentials = [
'username' =&gt; $username,
'level' =&gt; $level,
'password' =&gt; $password
];
$login = $this-&gt;Auth-&gt;login($credentials);
if ($login) {
redirect(base_url('dashboard'));
} else {
$this-&gt;session-&gt;set_flashdata('message', [
'type' =&gt; 'error',
'text' =&gt; 'Oops! Username atau Password Anda salah!'
]);
redirect(base_url());
}
}
} else {
$this-&gt;load-&gt;view('auth/form-login');
}
}
}</pre><div><br>Modelnya seperti ini :</div><pre><?php | defined('BASEPATH') OR exit('No direct script access allowed'); |
| class Auth_model extends User_model { |
| protected $table = "pengguna"; |
| public function login($credentials) | { | $sql = $this->db->get_where($this->table, [ | 'email' => $credentials['email'] | ]); | $check = $sql->num_rows(); |
| if($check > 0) { | $data = $sql->row(); | $validate = password_verify($credentials['password'], $data->password); |
| if($validate === TRUE) { | $this->session->set_userdata("user", $data); | $this->session->set_userdata("is_logged_in", TRUE); | return true; | } else { | return false; | } | } else { | return false; | } | } }</pre><div><br>Jadi, gunakan $_POST untuk mengecek apakah ada user sudah klik button submig atau belum.</div>