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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://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

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>";
    }
} 
?>

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

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 **

Komentar

Halaman Lainya

  • Membuat file dengan php
    Dengan php kita bisa melakukan operasi terhadap file yang berada dalam server. Operasi file yang bisa dilakukan diantaranya adalah membuat file.
  • Mengenal variabel dan keterangan dalam php
    PHP juga memiliki data penampung sementara yang disebut variabel seperti halnya bahasa pemrograman lainnya. Tapi sedikit ada perbedaan cara penulisanya jika anda terbiasa dengan bahasa pemrograman lain. Silahkan simak berikut ini.
  • Membuat fungsi cek data mysql dengan php
    Proses pengecekan apakah data sudah ada dalam database tentunya pasti kita lakukan berulang-ulang dalam sebuah aplikasi php. Untuk mempermudah proses pengecekannya kita memerlukan sebuah fungsi/function yang gampang dipanggil setiap saat. Berikut ini saya ingin berbagi tentang bagaimana membuat fungsi tersebut.
  • Perintah include dan require dalam php
    Perintah require() dan include() dalam php digunakan untuk menyisipkan isi file tertentu menjadi bagian file yang memanggilnya. Keduanya sangat identik dalam banyak hal, kecuali cara penanganan kegagalan. include() menghasilkan suatu peringatan, sedangkan require() menghasilkan pesan kesalahan Fatal Error.
  • Perintah php mysql
    PHP telah menyediakan banyak perintah fungsi bawaan yang bisa kita gunakan dalam membuat aplikasi web. Fungsi-fungsi tersebut juga sangat beragam dari pengolahan string, pengolahan dan manipulasi gambar, sampai melakukan komunikasi dengan database. PHP juga mendukung banyak database tidak terkecuali MySql. Apa saja perintah php mysql?

Kiriman terbaru