Membuat aplikasi data mahasiswa dengan PHP - Bagian 6
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 :
- index.php (dapat didownload disini)
- input-data-mahasiswa.php (dapat didownload disini)
- simpan-data-mahasiswa.php (dapat didownload disini)
- laporan-data-mahasiswa.php (dapat didownload disini)
- hapus-data-mahasiswa.php (dapat didownload disini)
- delete-banyak.php (dapat didownload disini)
- koreksi-data-mahasiswa.php (dapat didownload disini)
- 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 **