Membuat login dan session dengan codeigniter - hai, berjumpa lagi dengan saya di blog tercinta ini :D, kali ini saya akan share bagaimana membuat login sekaligus session dengan menggunakan codeigniter. Codeigniter 3 memang salah satu framework php yang mudah dan saya sangat menyukainya karena kemudahannya, meskipun codeigniter 3 bisa dibilang sudah ketinggalan jaman oleh framework php lainnya semisal laravel, tetapi sekarang pihak codeigniter telah mengembangkan codeigniter 4 untuk menandingi framework framework php lainnya, hehe. Silahkan disimak cara membuat login dan session menggunakan codeigniter dibawah ini.
Membuat login dan session dengan codeigniter 3
Pertama, kita siapkan codeigniternya, disini saya menggunakan codeigniter 3.1.7, silahkan di download codeigniternya dan diletakkan ke dalam localhost masing masing. sebelumnya saya sudah menghilangkan index.php di url path nya, jika belum silahkan kesini :
- Menghilangkan index.php di url path codeigniter
Selanjutnya silahkan membuat database untuk login tersebut, kalau masih bingung silahkan jalankan sql ini di phpmyadmin.
-- phpMyAdmin SQL Dump
-- version 4.5.4.1deb2ubuntu2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Feb 21, 2018 at 10:04 AM
-- Server version: 5.7.21-0ubuntu0.16.04.1
-- PHP Version: 5.6.33-3+ubuntu16.04.1+deb.sury.org+1
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `athoul`
--
CREATE DATABASE IF NOT EXISTS `athoul` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `athoul`;
-- --------------------------------------------------------
--
-- Table structure for table `user`
--
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `user`
--
INSERT INTO `user` (`id`, `username`, `password`) VALUES
(1, 'admin', 'd033e22ae348aeb5660fc2140aec35850c4da997');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `user`
--
ALTER TABLE `user`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `user`
--
ALTER TABLE `user`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Nah jika sudah sekarang kita konfigurasi codeigniternya. pertama kita akan mengatur databasenya, buka application/config/database.php. isi array username, password dan database sesuai yang kamu buat tadi. username biasanya 'root' dan password biasanya kosong, dan database isi sesuai dengan nama database yang kamu buat tadi, hingga seperti dibawah ini.
'username' => 'root',
'password' => '',
'database' => 'athoul',
Sekarang kita akan menambahkan library database dan session di autoload. buka application/config/autoload.php , tambakan library database dan session di array $autoload['libraries'] hingga seperti dibawah ini.
$autoload['libraries'] = array('database','session');
Jangan lupa juga tambahkan helper url dan form $autoload['helper'] hingga seperti dibawah ini, filenya masih sama ya di autoload.php.
$autoload['helper'] = array('url','form');
setelah itu sekarang kita akan mengatur default controllernya, buka application/config/routes.php. disini saya akan mengatur default controllernya yaitu Athoul.php, jadi saya akan mengatur seperti dibawah ini, silahkan disesuaikan sendiri ya.
$route['default_controller'] = 'athoul';
nah sekarang kita mulai coding, sudah memahami mvc bukan? jika belum mvc adalah singkatan dari model, view dan controller. Didalam sebuah framework codeigniter struktrur kode nya sudah diatur sedemikian rupa hingga kita tidak perlu memikirkan struktur kode lagi, jadi kita bisa lebih fokus terhadap tujuan utama membuat sebuah aplikasi. Kita akan membuat sebuah file view dulu, fungsinya adalah untuk menampilkan halaman login yang akan di inputkan oleh user nanti. Buat sebuah file bernama login.php di folder application/views/ dan isikan kode program berikut ini.
<!DOCTYPE html>
<html>
<head>
<title>Login dengan codeigniter www.athoul.site</title>
<style type="text/css">
*{margin: 0;padding: 0;font-family: Arial;}
body{background: #f1f1f1}
form{
max-width: 350px;
margin:0 auto;
margin-top: 100px;
background: #fff;
padding: 20px;
box-sizing: border-box;
border-radius: 4px;
}
form input{
display: block;
box-sizing: border-box;
width: 100%;
padding: 8px;
margin-bottom: 10px;
}
form input[type='submit']{
background: #3498db;
color: #fff;
border: 0;
border-radius: 4px;
cursor: pointer;
}
</style>
</head>
<body>
<?php
echo form_open('athoul/aksi_login');
echo form_input('username', '', array('placeholder'=>'Username'));
echo form_password('password', '', array('placeholder'=>'Password'));
echo form_submit('', 'Login');
?>
</body>
</html>
Buat juga file home.php untuk destinasi jika login tersebut berhasil. Buat file home.php di folder application/views dan isikan kode berikut.
<!DOCTYPE html>
<html>
<head>
<title>Halaman home</title>
</head>
<body>
<h1>Hallo <?php echo $this->session->userdata('username'); ?></h1>
selamat datang dihalaman home,<br>
<?php echo anchor('athoul/logout', 'Logout'); ?>
</body>
</html>
Sekarang kita membuat file mode nya, model disini berfungsi untuk mengecek kedalam database apakah username dan password tersebut cocok di dalam database. Buat file bernama M_login.php didalam folder application/models dan isikan kode berikut.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_login extends CI_Model {
function cek_login(){
$data = array(
'username' => $this->input->post('username'),
'password' => sha1($this->input->post('password'))
);
$q=$this->db->get_where('user',$data);
$cek=$q->num_rows();
if ($cek > 0) {
$data = array(
'username' => $this->input->post('username')
);
$this->session->set_userdata( $data );
redirect('athoul/home');
}else{
$this->load->view('login');
}
}
}
?>
nah jika sudah, terakhir kita buat file controllernya, buat sesuai dengan default controller yang ada di routes.php, berhubung tadi saya beri nama athoul jadi saya membuat controllernya bernama Athoul.php. Buat file bernama Athoul.php didalam folder application/controllers dan isikan kode berikut ini.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Athoul extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('m_login');
}
function index()
{
$this->load->view('login');
}
function aksi_login(){
$this->m_login->cek_login();
}
function home(){
if (!$this->session->userdata('username')) {
redirect(base_url());
}
$this->load->view('home');
}
function logout(){
$this->session->sess_destroy();
redirect(base_url());
}
}
?>
Kamu juga bisa download script login dengan codeigniter di link ini:
https://drive.google.com/file/d/1tyFjpvfP6Z5ZBlfh6wNqhGOJzKtX32HD/view?usp=sharing
Sekian tutorial kali ini, semoga bermanfaat untuk teman teman semua.