Suatu halaman website terdapat beberapa pengguna, salah satu nya pengguna admin dimana
pengguna admin untuk melakukan pengelohan data terhadap sistem. Maka dari itu untuk
membatasi antar pengguna dapat menggukana form akses login dengan HTML dan di proses
oleh PHP MySQL.
Tutorial Login PHP sederhana ini akan memanfaatkan fitur session yang terdapat pada bahasa
program PHP.
Perlu di ketahui session berguna untuk menyimpan data ke dalam halaman browser dan dapat di
akses nilainya.
Berikut ini hal-hal yang perlu di persiapkan untuk membuat login PHP dengan MySQL :
Web Server, dapat menggunakan Nginx maupun Apache, jika anda pengguna windows
dapat menggunakan XAMPP.
Silahkan buat database baru , pada contoh ini saya membuat nama database dengan nama
“kodingin_login“
Setelah itu membuat tabel, buat tabel MySQL dengan nama “users”.
Bisa di lihat pada skema tabel di atas, terdapat 4 kolom tabel di mana terdapat 1 kolom dengan
nama id yang di jadikan sebagai primary key.
Isi data dummy minimal 2, untuk email dan name silahkan isi sesuai kolom, namun ketika
mengisi password silahkan memilih fungsi md5 dengan tujuan mengubah password yang di
masukkan menjadi benttuk md5.
Berikut ini kode SQL yang dapat di import di Database MySQL :
10
14
1 mkdir kodingin_tutorial/loginphpmysql/
Untuk melakukan koneksi ke dalam database MySQL menggunakan file PHP dengan
nama mysql.php.
mysql.php
1 <?php
3 define('DB_HOST', 'localhost');
4 define('DB_USERNAME', 'root');
5 define('DB_PASSWORD', 'DIDIKprabowo_1995');
6 define('DB_DATABASE', 'kodingin_login');
Perhatikan kode diatas, terdapat kode yang digunakan untuk mendeklarasikan pengaturan MySQL
yang ingin kita pakai menggunakan variable konstan.
Form login menggunakan file dengan nama login.php, silahkan berikan kode berikut ini :
login.php
1 <html>
3 <head>
5 </head>
6 <style>
7 .wrapper {
8 width: 400px;
12 }
13
14 form input {
15 width: 100%;
16 height: 40px;
18 padding: 5px;
19 }
20 </style>
21
22 <body>
23 <div class="wrapper">
26 <p>
28 </p>
29 <p>
31 </p>
32 <p>
34 </p>
35 </form>
36 </div>
37 </body>
38 </html>
Perhatikan kode di atas, kode di aras berisi 2 form dengan nama “email” dan “password“. Email dan
password ini lah yang akan di kirim ke dalam file proses_login.php dengan method POST.
proses_login.php
1 <?php
3 include "mysql.php";
5 session_start();
7 if ($_SERVER["REQUEST_METHOD"] == "POST") {
10
11 $query = "SELECT * FROM users WHERE email= '$email' AND password = '$password'";
13 $check = mysqli_num_rows($queryDB);
14
15 if ($check > 0) {
17 $getData = mysqli_fetch_array($queryDB);
18 // set session
19 $_SESSION['name'] = $getData;
20 $_SESSION['is_login'] = true;
21
22 header("location: index.php");
23 } else {
25 }
26 } else {
28 }
29
Perhatikan kode PHP di atas, kode baris awal memanggil file koneksi mysql dengan cara include kode
pada file mysql.php.
1 session_start();
Kode di atas berfungsi untuk melakukan pembuka session yang nanti nya di kode berikut nya akan
menggunakan fungsi session PHP.
1 if ($_SERVER["REQUEST_METHOD"] == "POST") {
3}
Kode di atas berfungsi untuk validasi method, perlu di ketahui di dalam form yang telah kita buat
tadi menggunakan method POST. Apabila file proses_login.php di akses langsung menggunakan
method GET maka tidak melakukan proses di dalamnya.
Potongan kode di atas berfungsi untuk mengambil nilai yang kirimkan dari FORM input dengan
method POST. Untuk form input email di ambil dengan cara biasa sedangkan password di enskripsi
menjadi md5, karena di dalam database menggukan fungsi md5.
Menggunakan md5 salah satu cara menjada keamanan login data, dimana teks asli password tidak
bisa di lihat secara langsung.
Baca juga :
Selain itu di depan terdapat kode mysqli_real_escape_string, kode ini digunakan untuk mencegah
serangan oleh hacker dalam bentuk SQL Injection, dimana kode tersebut berfungsi untuk mencegah
karakter aneh yang masuk, misalnya karakter yang digunakan untuk melakukan query.
Selanjutnya yaitu membuat logout, untuk membuat logout dapat menggunakan file PHP dengan
nama logout.php.
logout.php
1 <?php
3 session_start();
4 session_destroy();
6 header("location: login.php");
7 exit;
Kode di bawah ini berfungsi untuk menghilangkan / menghapus semua session yang di simpan di
browser.
1 session_destroy()
Halaman index.php ini lah yang dapat di gunakan sebagai batas implementasi terhadap login.
Apabila pengguna sudah melakukan login maka dapat mengakses halaman nya sedangkan belum
akan di kembalikan ke halaman login.
index.php
1 <?php
2 session_start();
5 header("location: login.php");
6 exit;
7 }
8 ?>
9 <html>
10
11 <head>
12 <title>
14 </title>
15 <style>
16 .wrapper {
17 width: 400px;
20 padding: 40px;
21 }
22
23 form input {
24 width: 100%;
25 height: 40px;
27 padding: 5px;
28 }
29 </style>
30 </head>
31
32 <body>
33 <div class="wrapper">
37 <a href="logout.php">Logout</a>
38 </p>
39 </div>
40 </body>
41 </html>
Kode di atas gabungan antara HTML dan PHP, kode berikut ini yang digunakan untuk melakukn
validasi terhadap login.
1 if (!$_SESSION["is_login"] === TRUE) {
2 header("location: login.php");
3 exit;
4}
Apabila terdapat session dengan nama is_login yang berisi tidak sama dengan true maka akan di
arahkan ke file login.php
Silahkan masukkan data dummy yang di insertkan di dalam database MySQL tadi, apabila anda
menggunakan import database di atas maka, aksesnya :
email : didikprabowo@gmail.com
password : didikprabowo@gmail.com
Tampilan di atas menandakan bahwa email dan password yang di masukkan sesuai dengan yang ada
di dalam database pada tabel users.