Membuat aplikasi data mahasiswa dengan PHP - Bagian 6

Login Aplikasi web data mahasiswa

Ini bagian terakhir artikel saya tentang tentang membuat aplikasi data mahasiswa dengan php, Pada artikel sebelumnya membuat aplikasi data mahasiswa bagian 5, saya sudah merancang tabel database pengguna dan menyisipkan 1 nama pengguna dengan password yang disimpan dalam format md5. Sekarang saya akan merancang form login dan proses login, serta melindungi semua halaman pengelolaan data mahasiswa yang sudah dibuat. Silahkan simak artikel berikut.

Membuat form login pengguna aplikasi mahasiswa

Form login pengguna ini akan saya buat seperti gambar diatas, susunan kode htmlnya seperti berikut :

<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login Pengguna</title>
<style type="text/css">
body {margin:20px;background-color:#f4f4f4;}
#FormLogin { width:400px;margin:0 auto;border:1px solid #444;padding:20px;background-color:#333;border-radius:20px;color:#fff; }
#FormLogin h1 { text-align:center;border-bottom:1px solid #ccc;padding:10px;margin:5px;;font-size:22px;}
#FormLogin label {float:left;width:150px;}
#FormLogin .text { margin-bottom:5px;}
</style>
</head>
<body>
<div id="FormLogin">
<h1>LOGIN APLIKASI DATA MAHASISWA</h1>
<form id="FLogin" name="FLogin" method="post" action="">
<label>Username</label> : <input name="username" type="text" id="username" size="20" maxlength="20" class="text" /><br />
<label>Password</label> :  <input name="password" type="password" id="password" size="20" maxlength="20" class="text" /><br />
<p align="center"><input type="submit" name="button" id="button" value="Login" /><input type="reset" name="Reset" id="button" value="Reset" />
</p>
</form>
</div>
</body>
</html>

Filenya saya simpan dengan nama login-data-mahasiswa.php, anda bisa download disini.

Membuat script login dengan PHP aplikasi mahasiswa

Pada bagian form <form id="FLogin" name="FLogin" method="post" action="">, sengaja action saya buat tanpa nilai, ini artinya form akan diproses pada file itu sendiri. Kode diatas belum selesai karena masih perlu menyisipkan bagian-bagian proses login pada koneksi.php dan file login-data-mahasiswa.

Pada baris kedua koneksi.php (lihat artikel bagian 1)  ubah menjadi :

<?php
    ob_start();
    session_start();
    $dbserver="localhost";
    $dbusername="root";
    $dbpassword="";
    $dbname="db_datamhs";
    mysql_connect($dbserver,$dbusername,$dbpassword) or die(mysql_error());
    mysql_select_db($dbname) or die (mysql_error());
?>

Pada baris pertama paling atas halaman login-data-mahasiswa.php tambahkan :

<?php
    include("koneksi.php");
?>

Kemudian tambahkan lagi pada bagian setelah <body>

<?php
//Penangganan login jika form diisi
if(isset($_POST['username']) && isset($_POST['password']))
{
   //cek isian
   if(!empty($_POST['username']) && !empty($_POST['password']))
   {
     $username=htmlspecialchars(stripslashes($_POST['username']));
     $password=md5(htmlspecialchars(stripslashes($_POST['password'])));
     $myquery="select username,nama,DATE_FORMAT(login_terakhir, '%d-%m-%Y %H:%i:%s') as login_terakhir from tb_pengguna where username='$username' and password='$password' limit 1";
     $result=mysql_query($myquery) or die (mysql_error());
     if (mysql_num_rows($result) == 1) 
     {
	//jika username dan password cocok
	$pengguna=mysql_fetch_object($result);
	$_SESSION['login']=true;
	$_SESSION['username']=$pengguna->username;
	$_SESSION['nama']=$pengguna->nama;
	$_SESSION['login_terakhir']=$pengguna->login_terakhir;
  mysql_query("update tb_pengguna set login_terakhir=NOW() where username='$username' limit 1") or die("Gagal memperbaharui terakhir login");
	header("location:index.php");
      } else {
	//jika username dan password tidak cocok
	echo "<h1 align=\"center\">Username atau password salah!</h1>";
      }
   } else {
      //jika form kosong munculkan pesan
      echo "<h1 align=\"center\">Isikan username dan password!</h1>";
    }
} 
?>

Bagian Aplikasi Web Database Mahasiswa

Kode untuk proses login sudah selesai, sekarang tingal melindungi semua halaman akses data mahasiswa. Pada artikel sebelumnya saya sudah membuat :

  1. index.php (dapat didownload disini)
  2. input-data-mahasiswa.php (dapat didownload disini)
  3. simpan-data-mahasiswa.php (dapat didownload disini)
  4. laporan-data-mahasiswa.php (dapat didownload disini)
  5. hapus-data-mahasiswa.php (dapat didownload disini)
  6. delete-banyak.php (dapat didownload disini)
  7. koreksi-data-mahasiswa.php (dapat didownload disini)
  8. update-data-mahasiswa.php (dapat didownload disini)

Semuanya harus kita lindungi dengan form login, sehing jika file-file tersebut diakses maka akan dipindah ke halaman login (login-data-mahasiswa.php).

Kita mulai dengan file pertama yaitu index.php, tambahkan pada baris pertama kode berikut :

<?php
include("koneksi.php");
if(!isset($_SESSION['login'])) {
    header("location:login-data-mahasiswa.php");
}
?>

Walaupun index yang isinya hanya menu, kita perlu memanggil perintah session_start() yang ada pada koneksi.php agar session pada file ini aktif. Anda bisa baca artikel saya tentang Menggunakan session dalam php. Anda bisa tampilkan nama pengguna yang login serta terakhir dia login dengan memanggil $_SESSION['nama'] dan $_SESSION['terakhir_login'] yang sudah kita buat pada saat berhasil login tadi. Ini PR buat anda coba sendiri.

File kedua, halaman input data. Ini perlakuanya sama dengan index, dia tidak berhubungan langsung dengan database tapi harus memanggil session_start() yang ada pada file koneksi.php. jadi tambahkan kode yang sama pada baris awalnya.

Kemudian file simpan-data-mahasiswa.php, ini sedikit berbeda dengan index dan input data. Kita cukup menambahkan perintah berikut setelah include("koneksi.php")

<?php
include("koneksi.php"); //ini sudah ada sebelumnya
if(!isset($_SESSION['login'])) {
    header("location:login-data-mahasiswa.php");
}
?>

Pada file-file lainya karena sudah ada include("koneksi.php), kita lakukan hal yang sama dengan simpan yaitu menambahkan baris perintah if(!isset.... setelah include("koneksi.php")

Cek kembali semua file agar memastikan setiap awal setelah koneksi ada pengecekan status login.

Dengan semua langkah-langkah diatas, berarti kita sudah melindungi semua halaman dengan login. Anda bisa coba dari index, dst pasti langsung masuk ke login. Anda coba isikan login username admin dan password 12345, jika berhasil maka anda akan bebas mengakses halaman-halaman yang sebelumnya dilindungi tadi.

Membuat halaman logout aplikasi web mahasiswa

Anda mungkin bertanya-tanya mana fasilitas logout atau mengunci kembali aplikasi ini. Memang belum tersedia, sekarang kita akan membuatnya. Langsung buat file baru, dan simpan dengan nama logout-data-mahasiswa.php, isinya lihat kode berikut :

<?
include "koneksi.php";
session_destroy();
header("location:login-data-mahasiswa.php");
?>

Cukup sederhana tinggal memanggil session_destroy() maka semua session akan hilang dan otomatis semua halaman terkunci lagi.

Terakhir sekali, yaitu menambahkan link ke halaman logout-data-mahasiswa.php pada menu utama aplikasi (index.php). Ini juga PR buat anda coba sendiri. Caranya silahkan baca artikel saya tentang hyperlink.

Terimakasih sudah membaca artikel saya ini, semoga Bermanfaat, kritik saran, koreksi, pertanyaan jangan sungkan anda sampaikan. Silahkan berbagi buat yang lain jika ini menurut anda baik.

Zainal Hakim

Membuat aplikasi data mahasiswa dengan PHP - Bagian 1 Bagian 2 - Bagian 3 - Bagian 4 - Bagian 5 - Bagian 6

** Bebas disunting dengan menyebutkan sumber **

Artikel Lainnya

  • Membuat paging dengan combo box
    Membuat paging dengan combo box. Sebelumnya saya menulis tentang bagaimana membuat paging sederhana dengan cara menampilkan nomor halaman sebagai pilihan halamanya. Dengan cara tersebut untuk kasus data yang sedikit tidak bemasalah karena pilihan halaman tentunya juga sedikit, akan tetapi pada kasus data yang banyak mungkin ribuan bahkan lebih akan bermasalah karena pilihan halaman akan sangat banyak. Ada beberapa alternatif agar lebih mudah, salah satunya dengan membuat pilihan halaman dalam list/menu atau yang sering disebut combo box.
  • Membuat aplikasi data mahasiswa dengan PHP - Bagian 5
    Melanjutkan artikel saya tentang membuat aplikasi data mahasiswa dengan php, sekarang sedikit saya kembangkan untuk melindungi ruang pengelolaan data mahasiswa dengan sistem login pengguna/user. Ini diperlukan hampir pada tiap aplikasi yang dibangun agar tidak semua orang yang mengakses halaman pengelola bisa langsung melihat atau melakukan perubahan data tanpa proses login terlebih dahulu.
  • Menyimpan data dalam banyak tabel bersamaan
    Jika anda membuat aplikasi php dan mysql yang menggunakan beberapa tabel database mungkin akan menemui proses menyimpan data ke dalam banyak tabel secara bersamaan dalam satu proses. Contoh sederhana membuat aplikasi php penjualan yang dalam prosesnya menyimpan data dalam tabel transaksi dan sub transaksi.
  • Variabel global dalam php
    Variabel global dalam php
  • Cara membuat proses menyimpan data kedalam database mysql dengan php
    Untuk membuat proses penyimpanan data kedalam mysql dengan php kita harus membuat koneksi database, mengecek isi form, dan menjalankan perintah mysql untuk menyimpan data.

Kiriman terbaru