Tips Trik CodeIgniter : Menyembunyikan Halaman Login Admin Dengan Teknik Session dan Redirect

Tips Trik CodeIgniter : Menyembunyikan Halaman Login Admin Dengan Teknik Session dan Redirect


Halo lama tak bersua perihal koding mengoding php, kali ini saya akan sharing mengenai teknik yang sebetulnya tidak melulu hanya untuk codeigniter, Anda yang menggunakan php native, atau php framework lainnya juga bisa dengan mudah mengadopsinya. Trik ini sudah lama penulis gunakan untuk diterapkan ke beberapa aplikasi yang pernah dibuat, daripada disimpan sendiri alangkah bagusnya dishare, sehingga mudah-mudahan Anda bisa mendapatkan manfaatnya.

Promo Tutorial Premium Video Tutorial Mahir Web Development (Bangun 5 Project Website) + Video Tutorial Membuat Aplikasi Mobile (Bangun 4 Aplikasi Android + Upload Playstore) + Bonus Tutorial Membuat Theme Wordpress Premium - 3 Tutorial (5DVD) Hanya Rp 137.500 - Terbatas hanya sampai 31 Juli 2019!

Dibuat oleh praktisi yang memiliki pengalaman lebih dari 10 tahun di bidang web development (Pemesanan bisa SMS/WA ke 0838 1157 5876, atau bisa pesan secara online di sini)


Cara kerjanya sangat sederhana sekali, terinspirasi dari login lock down , plugin wordpress yang bertujuan untuk menyembuinykan URL halaman admin wordpress, yang biasanya di http://www.namawebsite.com/wp-admin , nah URL yang aslinya di sembunyikan dan diganti dengan url sesuai keinginan, misalnya nantinya menjadi http://www.namawebsite.com/urlmasoookpakekoo, setelah URL ini diakses maka nanti akan diregister session dan diredirect ke halaman yang sesungguhnya yakni http://www.namawebsite.com/wp-admin , namun apabila user belum masuk ke URL http://www.namawebsite.com/urlmasoookpakekoo dan langsung masuk ke http://www.namawebsite.com/wp-admin maka yang muncul adalah error, serta notifikasi bahwa user tidak berhak mengakses URL tersebut. 

Untuk testing kali ini saya menggunakan codeigniter yang masih fresh install. Artinya belum ada project yang digarap. Dan direktorinya pun masih default, index masih mengarah welcome controller. 

Yang perlu disiapkan adalah, satu lagi controller user, kemudian view nya untuk halaman login. Namun sebelumnya ada yang harus di lakukan pertama buat file configuration.php satu direktori dengan file index.php milik codeigniter. Seperti pada gambar di bawah ini.

Lalu di dalam file configuration.php silahkan Anda isi seperti di bawah ini 

<?php	
	class SConfig{
		var $_url_unlock = 'masoookpakekoo';
	}

Disini kita membuat sebuah Class baru bernama SConfig, berisi property $_url_onlock yang mana di biarkan publik sehingga Anda nantinya bisa men-set di Controller, atau dibiarkan saja seperti itu. Property $_url_unlock ini nantinya berguna sebagai url yang bisa diakses untuk diredirect ke URL login yang aslinya. Jadi URL ini hanya sebagai redirect.

Agar bisa dijalankan di semua file config, controller, library dan lain-lain, Anda perlu mendefinisikannya di index.php milik codeigniter 

Silahkan di buka file index.php, kemudian di isi di bagian Custom Config menjadi seperti ini 

/*
 * -------------------------------------------------------------------
 *  CUSTOM CONFIG VALUES
 * -------------------------------------------------------------------
 *
 * The $assign_to_config array below will be passed dynamically to the
 * config class when initialized. This allows you to set custom config
 * items or override any default config values found in the config.php file.
 * This can be handy as it permits you to share one application between
 * multiple front controller files, with each file containing different
 * config values.
 *
 * Un-comment the $assign_to_config array below to use this feature
 */
	// $assign_to_config['name_of_config_item'] = 'value of config item';

if(require_once('configuration.php')){
	$SConfig = new SConfig;
}

Lalu silahkan masuk ke x:\xampp\codeigniter\application\config, buka file routes.php , seperti pada gambar di bawah ini 

Kemudian tambahkan ke dalamnya seperti ini 

global $SConfig;

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

$route[$SConfig->_url_unlock] = 'user/login_redirect';

Sehingga nantinya kurang lebih seperti ini 

Nah penambahan route baru inilah nantinya yang memungkinkan codeigniter menganggap apa yang diset di property $_url_unlock pada file configuration juga bisa di akses di file route tentunya dengan pemanggilan global $SConfig terlebih dahulu.

Terakhir yang perlu kita lakukan adalah membuat controller user dan file view form login. 

Pertama kita masuk ke dalam application/controller lalu buat file class baru yakni User.php

Lalu kita tambahkan ke dalamnya kurang lebih seperti ini 

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

class User extends CI_Controller {

	public function __construct(){
		parent::__construct();		
		$this->load->library(array('session'));
		$this->load->helper(array('url'));
	}

	public function index(){

	}

	public function login(){
		if($this->session->userdata('admin_access') == TRUE){

			$this->load->view('form_login');
		}
		else{
			echo 'ORA BISA SON!!!!';
		}
	}

	public function login_redirect(){
		$this->session->set_userdata('admin_access', TRUE);
		redirect('/user/login');		
	}
}

Langkah terakhir adalah membuat view form_login.php, saya buat standar saja

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Form Login!</title>
	
</head>
<body>
	<form>
		<h1>Form Login</h1>
		<label>Username</label> <input type="text" name="name" /><br />
		<label>Password</label> <input type="password" name="password" /><br />
		<input type="submit" value="Login!" />
	</form>
</body>
</html>

Oke setelah rampung semuanya, kita bisa langsung mengakses controllernya user/login , seperti pada gambar di bawah ini , dan lihat hasilnya ??? 

Untuk masuk ke halaman login perlu masuk ke dalam URL sesuai dengan yang di isikan di configuration.php 

Seperti ini nanti url nya localhost/codeigniterlabz/index.php/masoookpakekoo hasilnya nanti seperti ini

Anda bisa masuk ke halaman login setelah sebelumnya di method login_redirect di setting session untuk admin access , dan di user method login di cek apakan admin access sudah di set TRUE. Kurang lebih seperti itu

Semoga bermanfaat.

Selamat bereksperimen, untuk script lengkapnya Anda bisa mendownloadnya di sini http://www.ilmuwebsite.com/tutorial/codeigniter/codeigniterlabz.zip

Loka Dwiartara
Co - founder Ilmuwebsite.com

 

Artikel Terkait :