Sunday, March 18, 2018

Membuat Login Form Multi Hak Akses Dengan Session


Assalamuaikum gan, Kali ini saya mau membagikan Tutorial cara Membuat Login Form Multi Hak Akses Dengan Session, Sedikit saya jelaskan tentang apa itu SESSION pada PHP, SESSION adalah proses menyimpan data user di suatu komputer server yang bersifat sementara dan dapat diakses di beberapa halaman lainnya pada suatu halaman web apabila user tersebut telah melakukan Login, SESSION ini berbeda dengan COOKIE, jika Session menyimpan data User di komputer server sedangkan Cookie menyimpan data User di Computer Client.Untuk Penulisan SESSION menggunakan variable Superglobal $_SESSION[' '].

Untuk Memulai Session harus dengan memasukkan kode berikut di awalan Script PHP yang membutuhkan Session

<?php
sesion_start();
//Code Program
?>

Cukup dulu sedikit Pembahasan Tentang Sessionnya sekarang kita masuk ke langkah langkah membuat Form Login Session nya langsung...
  • Buat Dulu Database dengan nama bebas dan nama Table nya Login atau terserah kalian
  • Kemudian Buatlah File Koneksi PHP dan MySQL Save Dengan Nama config.php atau terserah namanya mau apa

<?php
$host = 'localhost'; //diisi localhost
$username = 'root'; //biasa sih root
$password = ''; //sesuaikan dengan password database kalian
$db_name = 'db_aaundry'; //sesuaikan dengan nama database kalian
$con = mysql_connect($host,$username,$password,$db_name);
//Kondisi untuk mengecek apakah database sudah konek atau tidak(optional)
if(!con){
die('Error '.mysql_connect_errno(). ' '.mysql_connect_error());
}
?>
  • Lalu Buat Index Login Nya Dengan, Save dengan nama index.php Berikut Contoh Login Form Sederhananya

<?php
include "config.php"; //koneksi PHP mysql yang sudah dibuat tadi
session_start(); //Perintah untuk memulai session
if(!empty($_SESSION['status'])){ //Kondisi jika variable session status tidak kosong
if($_SESSION['status'] == 'admin'){ // Kondisi Jika Session status sama dengan admin
header("location:indexadmin.php"); // Maka akan di redirect ke halaman admin
}elseif($_SESSION['status'] == 'user'){ //Kondisi Jika Kondisi Bukan Admin melainkan User
header("location:indexuser.php"); //Maka akan di redirect ke halaman user
}
}
?>
<form name="form1" method="post" action="action_login.php">
<p>&nbsp;</p>
<p>&nbsp;</p>
<table width="700" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td align="center"><img src="img/img.jpg" width="420" height="164"></td>
</tr>
</table>
<hr width="700" />
<table width="289" border="0" align="center" cellpadding="3" cellspacing="2">
<tr>
<td width="85">Username</td>
<td width="33">:</td>
<td width="153"><input type="text" name="username" value=""></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="password" value=""></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" value="Login"> <input type="reset" value="Reset"></td>
</tr>
</table>
<hr width="700" />
<table width="700" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td align="right" style="padding-right:10px;"><p style="font-style:italic; color:#000; cursor:pointer;">Created By Rivai</p></td>
</tr>
</table>
</form>

Fungsi Dari code

<?php
include "config.php"; //koneksi PHP mysql yang sudah dibuat tadi
session_start(); //Perintah untuk memulai session
if(!empty($_SESSION['status'])){ //Kondisi jika variable session status tidak kosong
if($_SESSION['status'] == 'admin'){ // Kondisi Jika Session status sama dengan admin
header("location:indexadmin.php"); // Maka akan di redirect ke halaman admin
}elseif($_SESSION['status'] == 'user'){ //Kondisi Jika Kondisi Bukan Admin melainkan User
header("location:indexuser.php"); //Maka akan di redirect ke halaman user
}
}
?>

Adalah Untuk Melakukan Cek apakah variable Session ada isinya, Jika ada maka Maka otomatis pengguna tidak bisa login lagi karena session nya sudah ada, jadi agak aneh rasanya jika kita sudah login, tapi pas balik ke index nya malah bisa login ulang sedangkan kita belum logout.
  •  Kemudian Buat file dengan nama action_login.php kenapa namanya action_login.php karena di form index diatas action dari form nya mengarah ke action_login.php, kalau mau diganti boleh boleh saja... Berikut Kode Action_login.php nya
<?php
include "config.php"; //File koneksi PHP MySQL nya
$username = $_POST['username']; //Mengambil Nilai dari Input Type yang ada di form dengan method POST
$password = $_POST['password']; ////Mengambil Nilai dari Input Type yang ada di form dengan method POST
$query = mysql_query("SELECT * FROM login WHERE username = '$username' AND password = '$password'"); // Query Untuk mengecek apakah ada User atau tidak
$array = mysql_fetch_array($query); //Membawa nilai Column/field ke array
$cek = mysql_num_rows($query); //mengecek record yang ada pada table
if($cek > 0){ //kondisi jika record diatas 0
session_start(); //mulai session
$_SESSION['username'] = $array['username']; //variable session yang saya beri nama username untuk memasukkan nilai varibale array username yang ada pada database
$_SESSION['status'] = $array['status']; //sama seperti diatas
if($array['status'] == 'admin'){
header("location:indexadmin.php");
}elseif($array['hak'] == 'user'){
header("location:indexuser.php");
}else{
echo'<script>alert("Status Mu Bukan Admin/User Silahkan Login Ulang!");history.go(-1)</script>'; //mengeluarkan alert jika status nya bukan admin/user dan history.go(-1) adalah untuk mengembalikan user ke history sebelumya
}
}else{
echo'<script>alert("Username / Password Salah! / tidak ada data");history.go(-1)</script>'; //mengeluarkan alert juga
}
?>

Dari Action Diatas saya memberikan nama variable Session dengan nama username dan status, kalian boleh mengubahnya kalau mau, saya berikan namanya sesuai dengan tipe array yang ada pada field database supaya tidak lupa/salah tulis, Session tersebut dapat dipanggil ke bagian halaman mana saja, contoh seperti halaman login diatas untuk mengecek variable Session.
  • Sekarang kita buat File dengan nama indexadmin.php untuk halaman admin,kemudian masukkan kode berikut..
<?php
include "config.php" //Koneksi
if($_SESSION['status'] != 'admin'){ //kondisi jika session nya bukan admin
echo 'Anda Bukan Admin!';
}else{ //jika kondisi nya admin
echo 'Halo'.$_SESSION['username'].'Selamat Datang! Logout';
}
?>

Jika Anda login sebagai user dan mencoba ke halaman admin maka yang akan muncul adalah "Anda Bukan Admin!", Berikut Contoh Gambarnya

  • Untuk Membuat Index User hampir sama seperti diatas berikut adalah kodenya, jangan lupa save dengan nama indexuser.php
<?php
include "config.php" //Koneksi
if(empty($_SESSION['status')){ //kondisi jika variable session nya kosong atau bisa juga if($_SESSION['status'] != 'admin' || $_SESSION['status'] != 'user')
echo 'Anda Bukan siapa siapa!';
}else{ //jika ada variable session nya
echo 'Halo'.$_SESSION['username'].'Selamat Datang! Logout';
}
?>

Untuk halaman user cukup buat kondisi if dengan empty saja karena admin alias root berhak untuk mantau user, Aneh dong kalau admin ga bisa liat user hehehe...
  • Sekarang Kita buat file dengan nama logout.php, berikut Codenya
<?php
session_start();
unset($_SESSION['status']); // bisa menggunakan session_unset atau session_destroy
header("location:index.php");
?>

Untuk perbedaan Unset dan Destory adalah Jika session_unset() adalah untuk menhapus variable session nya saja, sedangkan session_destory() untuk menghapus seluruh session yang ada di Penyimpanan Komputer dan variable session nya juga...

Baiklah sekian untuk tutorial kali ini saya harap bermanfaat, jika ada yang perlu ditanyakan silahkan ke kolom komentar, Terimakasih

Artikel Terkait

Im noob!


EmoticonEmoticon