Selasa, 03 Maret 2015

Form Login

Sesuai dengan judul yang saya buat, kali ini saya akan membuat form login dengan menggunakan perpaduan HTML sebagai frame dan PHP sebagai sistem untuk proses loginnya. Ini merupakan lanjutan dari tutorial sebelumnya Form Register yang telah saya postingkan. Apabila anda belum melihat tutorial sebelumnya, lebih baik anda melihatnya dahulu disini.

Untuk penggunaan databasenya, masih menggunakan database dengan nama belajarphp, bisa dilihat di tutorial sebelumnya. Banyak pertanyaan dari temen-temen semua, kenapa kok tampilannya sederhana banget? Karena saya memberikan tutorial lebih menjurus ke implementasi PHP nya dahulu. Percuma dong kalau tampilan bagus tapi fungsi dari PHP tersebut tidak berjalan.

Lanjut ke tutorial membuat form login, kita akan membuat 3 file yaitu login.html, index.html, dan loginsubmit.php. Masing-masing file memiliki fungsi masing-masing. Saya juga akan menjelaskan disini semua fungsi dari masing-masing file.

1. Login.html
File login.html digunakan untuk user menginputkan username dan password yang sudah diregistrasi sebelumnya. Untuk coding dari file login.html bisa dicopy dibawah ini, dan disimpan di dalam folder sebelumnya yang pernah dibuat dalam tutorial form registrasi:

<html>
<title>Login</title>
<body>
<form action="loginsubmit.php" method="post">
<table border="0" cellpadding="2" cellspacing="0" align="center">
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username" required /></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="password" required /></td>
</tr>
<tr>
<td>Konfirmasi Password</td>
<td>:</td>
<td><input type="password" name="confirm" required /></td>
</tr>
<tr align="right">
<td colspan="3">
<input type="submit" value="Login" /></td>
</tr>
</form>
<tr align="right">
<td colspan="3"><a href="registrasi.html"><input type="button" value="register" /></td>
</tr>
</body>
</html>

Simpan dengan nama login.html. Coba perhatikan code ini:


<form action="loginsubmit.php" method="post">
Di code tersebut mengarahkan ke loginsubmit.php. Jadi ketika login.html akan mengirimkan data ke loginsubmit berupa value ke loginsubmit.php. Nah disinilah proses validasi data apakah sama dengan database value yang ada. Selanjutnya kita akan membuat loginsubmit.php. Copykan kode dibawah ini dan beri nama loginsubmit.php:

<?php
include('config.php');

session_start();

//tangkap data dari form login
$username = $_POST['username'];
$password = md5($_POST['password']);

//untuk mencegah sql injection
//kita gunakan mysql_real_escape_string
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

//cek data yang dikirim, apakah kosong atau tidak
if (empty($username) && empty($password)) {
 //kalau username dan password kosong
 header('location:login.html?error=1');
 break;
} else if (empty($username)) {
 //kalau username saja yang kosong
 header('location:login.html?error=2');
 break;
} else if (empty($password)) {
 //kalau password saja yang kosong
 header('location:login.html?error=3');
 break;
}

$q = mysql_query("select * from users where username='$username' and password='$password'");

if (mysql_num_rows($q) == 1) {
 //kalau username dan password sudah terdaftar di database
 //buat session dengan nama username dengan isi nama user yang login
 $_SESSION['username'] = $username;
 
 //redirect ke halaman index
 header('location:index.php');
} else {
 //kalau username ataupun password tidak terdaftar di database
 header('location:login.html?error=4');
}
?>
Saya akan menjelaskan file loginsubmit.php. Perhatikan code dibawah ini:

include('config.php');

session_start();

Ditutorial sebelumnya saya sudah menjelaskan tentang file config.php, tetapi di loginsubmit.php ini ada session_start();. Session bisa diartikan dengan suatu informasi yang diambil saat kita melakukan pekerjaan terhadap sesuatu. Seperti saat kita bekerja dengan sebuah aplikasi pada komputer, kita mulai dengan membuka aplikasi lalu dilanjutkan dengan melakukan beberapa hal kemudian menyimpan pekerjaan dan diakhiri dengan menutup aplikasi. Bisa dikatakan session_start() merupakan awal dari validasi untuk login.
Setelah membuat loginsubmit.php, selanjutnya kita akan membuat untuk halaman yang akan ditampilkan ketika user telah mendapatkan validasi dari sistem. Yaitu index.php. Kenapa kok gak dibuat index.html? Nah dihalaman index.php ini kita akan menangkap hasil dari session_start() itu sendiri. Ditutorial sebelumnya telah saya jelaskan fungsi dari HTML, PHP, CSS, Jquery, dan lain-lain. Halaman HTML tidak dapat memproses data, hanya bisa membuat body saja. Jadi bisa dikatakan ketika ada halaman yang membutuhkan proses, maka kita harus membuat file dengan ekstensi php. Silahkan copy code dibawah ini dan beri nama index.php :

<!DOCTYPE html>
<?php
include('cek_login.php');
?>

<html>
<head>
<title>HOME</title>
</head>
<body>
<body>
<div>
<h1 align="center">Home</br>(<?php echo $_SESSION['username'];?>)</h1>
<div>
<h2 align="center">Home</h2>
<p align="center">Selamat Datang <?php echo $_SESSION['username'];?> !<br/></br>
<a href="logout.php"><input type="button" value="keluar"></a></p>
</div>
</div>

</body>
</html>

Coba perhatikan code dibawah ini:

<?php
include('cek_login.php');
?>
Difile index.php memanggil cek_login.php. Copy code dibawah ini dan beri nama cek_login.php:

<?php
session_start();
 
//jika session username belum dibuat, atau session username kosong
if (!isset($_SESSION['username']) || empty($_SESSION['username'])) {
    //redirect ke halaman login
    header('location:login.html');
}
?>
Di file cek_login.php akan membuat session, dimana session tersebut lah yang mendeteksi apakah user sudah login apa belum. Nah berikutnya kita akan membuat logout.php yang berfungsi untuk mengeluarkan user dari halaman index tersebut. Copykan code dibawah ini dan beri nama logout.php:

<?php
//lanjutkan session yang sudah dibuat sebelumnya
session_start();
 
//hapus session yang sudah dibuat
session_destroy();
 
//redirect ke halaman login
header('location:login.html');
?>
Selesai.... sekarang coba panggil halaman yang anda buat. Atau anda bisa ujicoba melalui demo yang yang telah saya buat dibawah ini:

Untuk mendownload project ini anda bisa mendownloadnya dibawah ini:

Happy codding.... tetep semangat ya.....

0 komentar:

Posting Komentar