Membuat Web Login dengan PHP
Berikut ini ada beberapa trik membuat halaman login dengan scrip php,
Sumber
Langkah 1 – Form Login
Buat form login dengan mengetikkan kode berikut. Kemudian simpan pada folder yang sama dengan tutorial sebelumnya (folder belajar) dengan nama login.php.
<html>
<head>
<title>LOGIN</title>
</head>
<body>
<h1>LOGIN</h1>
<?php
//kode php ini kita gunakan untuk menampilkan pesan eror
if (!empty($_GET['error'])) {
if ($_GET['error'] == 1) {
echo '<h3>Username dan Password belum diisi!</h3>';
} else if ($_GET['error'] == 2) {
echo '<h3>Username belum diisi!</h3>';
} else if ($_GET['error'] == 3) {
echo '<h3>Password belum diisi!</h3>';
} else if ($_GET['error'] == 4) {
echo '<h3>Username dan Password tidak terdaftar!</h3>';
}
}
?>
<form name="login" action="otentikasi.php" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr align="right">
<td colspan="3"><input type="submit" name="login" value="Login" /></td>
</tr>
</table>
</form>
</body>
</html>
Untuk melihat halaman login ini, bukalah
http://localhost/belajar/login.php pada browser.Langkah 2 – Otentikasi Login
Setelah membuat form login, kita harus
membuat sebuah file untuk memproses data login yang dimasukkan user
apakah valid atau tidak. Ketikkan kode berikut dan simpan dengan nama otentikasi.php.
<?php
include('config.php');
//tangkap data dari form login
$username = $_POST['username'];
$password = $_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.php?error=1');
break;
} else if (empty($username)) {
//kalau username saja yang kosong
header('location:login.php?error=2');
break;
} else if (empty($password)) {
//kalau password saja yang kosong
//redirect ke halaman index
header('location:login.php?error=3');
break;
}
$q = mysql_query("select * from user where username='$username' and password='$password'");
if (mysql_num_rows($q) == 1) {
//kalau username dan password sudah terdaftar di database
header('location:index.php');
} else {
//kalau username ataupun password tidak terdaftar di database
header('location:login.php?error=4');
}
?>
Kode diatas akan melakukan pengecekan
terhadap inputan user yang berupa username dan password apakah username
dan password terdaftar atau tidak dalam database. Penjelasan kode
program sudah saya sertakan dalam baris-baris komentar pada kode program
tersebut.
Sampai disini, sistem login sudah dapat digunakan. Cobalah buka halaman login dengan membuka
http://localhost/belajar/login.php pada browser. Kemudian masukkan username dan password yang sudah dibuat pada tutorial sebelumnya. Coba
juga untuk memasukkan berbagai kondisi yang berbeda seperti memasukkan
username dan password yang salah, mengosongkan field username ataupun
password, ataupun mengosongkan keduanya untuk menguji sistem otentikasi
yang dibuat.
Sistem login memang sudah berhasil,
namun jika hanya sampai tahap ini saja maka fungsi login belum berfungsi
maksimal karena user masih dapat masuk kedalam aplikasi tanpa harus
login terlebih dahulu. Cobalah buka
http://localhost/belajar/.
Halaman tersebut masih dapat diakses tanpa harus login terlebih dahulu
karena kita belum membuat otentikasi pada setiap halaman apakah user
harus login terlebih dahulu atau tidak untuk mendapat akses ke setiap
halaman.Langkah 3 – Otentikasi pada file-file lain
Agar setiap halaman hanya dapat diakses setelah login, kita perlu menambahkan beberapa baris kode pada file otentikasi.php seperti berikut.
Untuk dapat membuat otentikasi pada setiap halaman, kita menggunakan session untuk menyimpan data username dari user yang telah login.
<?php
include('config.php');
session_start();
...
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 {
...
Untuk dapat membuat otentikasi pada setiap halaman, kita menggunakan session untuk menyimpan data username dari user yang telah login.
session_start() digunakan untuk
membuat session baru (jika session belum dibuat) ataupun melanjutkan
session (jika session sudah dibuat sebelumnya). Kemudian data username
disimpan dalam session ini dengan menggunakan perintah $_session['username'] = $username yang
berarti menyimpan data username kedalam session dengan nama session
adalah username. Selanjutnya, data session inilah yang akan selalu kita
gunakan untuk men-cek apakah user sudah login atau belum.
Untuk melakukan pengencekan, buat dokumen baru dan ketikkan kode berikut. Kemudian simpan dengan 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.php');
}
?>
Kemudian kita harus meng-include kan file cek-login.php ini pada file-file yang hanya boleh diakses setelah user login (index.php, edit.php, dan view.php).
Cobalah buka halaman index.php, edit.php, dan view.php pada
browser. Jika anda belum login, maka anda akan secara otomatis
dialihkan ke halaman login. Setelah login, cobalah untuk membuka halaman
login.php. Masih dapat dibuka? Meskipun anda sudah login? Ya, kita belum membuat pengecekan login pada halaman login itu sendiri.
Tambahkan kode berikut pada file login.php.
<?php
session_start();
if (!empty($_SESSION['username'])) {
header('location:index.php');
}
?>
<html>
<head>
...
Sekarang cobalah buka halaman login.php. Jika anda sudah login, maka anda akan dialihkan ke halaman index.php.
Langkah 4 – Logout
Kemudian buat link ke file logout.php pada halaman index.php.
</table>
</form>
<a href="view.php">Lihat Data</a> || <a href="logout.php">Logout</a>
</body>
</html>
Sekarang, sistem login sudah selesai
dibuat. Cobalah untuk login dan logout dengan mencoba-coba berbagai
kombinasi username dan password.
Kesimpulan
Dasar pembuatan sistem login adalah dengan menggunakan session untuk menyimpan data login yang kemudian variabel session inilah yang kita gunakan dalam pengecekan apakah user sudah login ataupun belum. Aplikasi ini hanyalah contoh sederhana penggunaan sistem login. Dalam aplikasi yang lebih kompleks, akan lebih banyak lagi pengecekan yang digunakan. Semoga bermanfaat dan jangan lupa isi komentar ya.Sumber
Leave a Comment