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

  • Variasi cara menulis ke layar dengan php
    Artikel ini mungkin tak semenarik judulnya Variasi cara menulis ke layar dengan php, tapi sering kali saya menemui orang yang sedang belajar php bingung jika melihat beberapa variasi penggunaan kode php untuk menulis ke layar. Pada artikel ini saya akan buatkan beberapa contoh cara menampilkan tulisan/gambar ke layar dengan php.
  • Cara membuat dan menjalankan PHP
    Cara membuat dan menjalankan PHP. Untuk membuat file php kita bisa gunakan editor apa saja yang penting dapat menyimpan dalam format text, disini saya akan gunakan editor sederhana yang ada dilingkungan windows yaitu notepad.
  • Membuat nomor urut harian dengan php
    Ada teman bertanya, bagaimana membuat nomor urut yang setiap hari kembali ke awal? Secara logic prosesnya cukup sederhana yaitu melakukan pengecekan pada tabel mysql yang sudah dibuat apakah ada data hari sesuai tanggal sistem. Jika ada maka ambil dan tambahkan nilainya, kemudian perbaharui datanya. Jika tidak ada maka buat record baru dengan?tanggal tersebut kemudian set nilai urutan 1.
  • 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.
  • Cara upload file dengan PHP Script
    Php memiliki fasilitas untuk mengirimkan file dari komputer pengguna melalui browser ke server sehingga kita tidak perlu lagi aplikasi khusus seperti ftp atau login ke panel hosting hanya untuk sekedar upload file biasa, dokumen, maupun gambar.

Kiriman terbaru