KD 3.15 Mengevaluasi aplikasi interaktif pada web
KD 4.15 Memodifikasi aplikasi interaktif pada web
Tujuan
1) Siswa dapat mengetahui cara membuat tabel database pada phpmyadmin
2) Siswa dapat menjelaskan cara membuat halaman login
3) Siswa dapat mengimplementasikan cara interaksi form login dengan php dan mysql
Materi
Konsep dalam cara membuat form login dengan PHP dan MySQL adalah membuat halaman form login dengan HTML terlebih dahulu dan selanjutnya akan dilengkapi dengan skrip php untuk memeriksa data pengguna di database MySQL. Jika pengguna terdapat dalam database MySQL, maka PHP akan membuat session untuk pengguna tersebut dan sekaligus akan mengarahkan pada halaman web yang telah diproteksi.
Penerapan SESSION
Biasanya, SESSION ini digunakan untuk keperluan autentifikasi user melalui login. Adapun idenya adalah apabila user sukses melakukan login, maka username ini akan disimpan dalam sebuah SESSION.
Mengapa username ini harus disimpan ke dalam SESSION? Ya, dengan disimpannya username ke dalam SESSION sekaligus bisa digunakan untuk mencegah adanya penyusup yang masuk ke aplikasi tanpa melalui login. Untuk mengecek ada tidaknya penyusup yang masuk ke aplikasi tanpa login, bisa hanya dengan mengecek SESSION nya. Jika penyusup tadi masuk ke aplikasi tanpa login, otomatis SESSION nya belum ada, karena SESSION baru ada ketika user login dengan sukses.
Latihan / Praktik
Berikut ini langkah-langkah untuk membuat aplikasi login menggunakan kode HTML dan PHP beserta MySQL sebagai database-nya. Aplikasi login digunakan untuk mencocokkan username dan password yang dimasukkan oleh user/admin dengan username dan password yang tersimpan di database. Dan berikut ini adalah langkah-langkahnya yang akan dibahas:
- Membuat tabel admin dengan MySQL
- Membuat form dalam file index.html
- Membuat session dalam file login.php
Alur / Skema
Langkah-langkah
Untuk membuat database dan tabel, jalankan kode berikut di software MySQL kalian dengan menggunakan phpmyadmin. Untuk lebih jelas tentang membuat database dan tabel MySQL di akses localhost/phpmyadmin/ berikut ini:
Buatlah database dengan nama db_tugas
Selanjutnya kalian akan membuat tabel admin (tentukan seperti gambar di bawah) yang digunakan untuk menyimpan data username dan password dari administrator
Setelah memasukkan nama dan jumlah kolom, kemudian klik tombol Kirim (Go). Setelah itu mendefinisikan semua kolom / field dalam tabel admin kemudian klik tombol Simpan (Save)
Setelah tabel dibuat, kalian memasukkan satu sampel data yang disimpan kedalam tabel admin dengan cara klik tombol insert. Dan untuk kolom (field) id tidak perlu diisi, karena sudah berupa PRIMARY KEY dan Auto_increment (A_I). Untuk lebih jelasnya silahkan mengikuti seperti pada gambar berikut ini:
Kemudian, membuat form dalam file index.html di dalam xampp/htdocs/form_login/index.html
nama file : index.html
<!DOCTYPE html>
<html>
<head>
<title>Form Login</title>
</head>
<body>
<form action="login.php" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="login" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
<html>
<head>
<title>Form Login</title>
</head>
<body>
<form action="login.php" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="login" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
Jika dijalankan hasilnya sebagai berikut :
Sebelum membuat file login.php, sebaiknya kita membuat file koneksi.php yang berguna untuk menghubungkan database dan file web
nama file : koneksi.php
<?php
$koneksi = mysqli_connect("localhost","root","","db_tugas");
if (mysqli_connect_errno()){
echo "Koneksi database gagal : " . mysqli_connect_error();
}
?>
$koneksi = mysqli_connect("localhost","root","","db_tugas");
if (mysqli_connect_errno()){
echo "Koneksi database gagal : " . mysqli_connect_error();
}
?>
Selanjutnya membuat file login.php, seperti terlihat dibawah ini :
<?php
session_start();
include "koneksi.php";
$username = $_POST['username'];
$password = $_POST['password'];
$query = mysqli_query($koneksi,"select * from admin where username='$username' and password='$password' ");
$cek = mysqli_fetch_array($query);
if($cek){
$_SESSION['username'] = $username;
?>
Anda berhasil login, silahkan menuju <br><br>
<center><b><font size="16px">Halaman Beranda</font></b></center>
<br>
<br>
<a href="logout.php">Logout</a>
<?php
} else {
?>
Anda gagal login, <br>silahkan <a href="index.html">Login Kembali</a>
<?php
echo "Ada kesalahan";
}
?>
session_start();
include "koneksi.php";
$username = $_POST['username'];
$password = $_POST['password'];
$query = mysqli_query($koneksi,"select * from admin where username='$username' and password='$password' ");
$cek = mysqli_fetch_array($query);
if($cek){
$_SESSION['username'] = $username;
?>
Anda berhasil login, silahkan menuju <br><br>
<center><b><font size="16px">Halaman Beranda</font></b></center>
<br>
<br>
<a href="logout.php">Logout</a>
<?php
} else {
?>
Anda gagal login, <br>silahkan <a href="index.html">Login Kembali</a>
<?php
echo "Ada kesalahan";
}
?>
jika username + password sesuai dengan data di database maka halaman utama akan tampil seperti gambar diatas, jika username + password salah / tidak sesuai maka akan kembali ke halaman login
Penjelasan dari proses login akan terlihat pada seperti gambar dibawah ini :
nama file : logout.php
- Apa fungsi dari penerapan SESSION dalam PHP ?
- Apa perbedaan dari penggunaan GET dan POST dalam PHP ?
0 comments:
Post a Comment