Anda di halaman 1dari 13

Cara membuat Login sederhana dengan PHP dan MySQL

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.

Langsung saja kita bahas.

Apa yang perlu di persiapkan ?

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.

 PHP, dapat menjalankan file PHP.

 MySQL, untuk menyimpan data.

 Teks Editor, untuk melakukan penulisan kode program.

Membuat Database baru dan Skema tabel MySQL

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.

Selanjut nya mengisi data dummy.

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 :

1 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

2 SET time_zone = "+00:00";

4 CREATE TABLE `users` (

5 `id` int(11) NOT NULL,

6 `name` varchar(70) NOT NULL,


7 `email` varchar(60) NOT NULL,

8 `password` varchar(70) NOT NULL

9 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

10

11 INSERT INTO `users` (`id`, `name`, `email`, `password`) VALUES

12 (1, 'Didik Prabowo', 'didikprabowo@gmail.com', '950857d9aec7b9332912b76cd466c5b2'),

13 (2, 'Kodingin', 'kodingin@gmail.com', '16a74c67a4c02ff732e848d512dfbc88');

14

15 ALTER TABLE `users`

16 ADD PRIMARY KEY (`id`);

17 ALTER TABLE `users`

18 MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

Sekarang kita lanjut membuat projek PHP nya :

Struktur Folder Projek Login PHP

Silahkan buat folder dengan nama nama “kodingin_tutorial/loginphpmysql/“.

1 mkdir kodingin_tutorial/loginphpmysql/

Setelah itu bikin 5 file dengan nama sebagai berikut :

 login.php, digunakan untuk membuat form login sederhana.

 proses_login.php, di gunakan untuk memberikan session login.

 mysql.php, di gunakan untuk koneksi ke database MySQL.

 index.php, digunakan untuk menampilkan halaman setelah login.

 logout.php, untuk keluar dari login.

Membuat Koneksi ke Database MySQL dengan PHP

Untuk melakukan koneksi ke dalam database MySQL menggunakan file PHP dengan
nama mysql.php.

Berikut ini kode PHP nya :

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');

8 $mysqli = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

Perhatikan kode diatas, terdapat kode yang digunakan untuk mendeklarasikan pengaturan MySQL
yang ingin kita pakai menggunakan variable konstan.

Silahkan isi dengan koneksi MySQL yang di miliki.

Membuat Form Login PHP

Form login menggunakan file dengan nama login.php, silahkan berikan kode berikut ini :

login.php

1 <html>

3 <head>

4 <title>Login dengan PHP MySQL | Kodingin</title>

5 </head>

6 <style>

7 .wrapper {

8 width: 400px;

9 box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);

10 margin: 10% auto;


11 padding: 40px;

12 }

13

14 form input {

15 width: 100%;

16 height: 40px;

17 border: 1px solid black;

18 padding: 5px;

19 }

20 </style>

21

22 <body>

23 <div class="wrapper">

24 <h1>Login dengan PHP MySQL</h1>

25 <form action="proses_login.php" method="POST">

26 <p>

27 <input type="email" placeholder="Masukkan email anda" name="email">

28 </p>

29 <p>

30 <input type="password" placeholder="Masukkan password anda" name="password">

31 </p>

32 <p>

33 <input type="submit" value="Login Now">

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.

Membuat Proses Login Sederhana dengan Session PHP


Selanjutnya yaitu membuat proses login dimana proses ini yang menentukan login berhasil di
lakukan maupun tidak.

Nama file yang kita gunakan yaitu proses_login.php.

Berikut ini kode nya :

proses_login.php

1 <?php

3 include "mysql.php";

5 session_start();

7 if ($_SERVER["REQUEST_METHOD"] == "POST") {

8 $email = mysqli_real_escape_string($mysqli, $_POST['email']);

9 $password = mysqli_real_escape_string($mysqli, md5($_POST['password']));

10

11 $query = "SELECT * FROM users WHERE email= '$email' AND password = '$password'";

12 $queryDB = mysqli_query($mysqli, $query);

13 $check = mysqli_num_rows($queryDB);

14

15 if ($check > 0) {

16 // ambil data users

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 {

24 echo "Email atau password yang anda masukkan salah";

25 }

26 } else {

27 return "Anda tidak di ijinkan";

28 }

29

Perhatikan kode PHP di atas, kode baris awal memanggil file koneksi mysql dengan cara include kode
pada file mysql.php.

Selanjutnya terdapat kode :

1 session_start();

Kode di atas berfungsi untuk melakukan pembuka session yang nanti nya di kode berikut nya akan
menggunakan fungsi session PHP.

Setelah itu terdapat kode :

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.

Baris kode PHP berikut nya adalah :


1 $email = mysqli_real_escape_string($mysqli, $_POST['email']);

2 $password = mysqli_real_escape_string($mysqli, md5($_POST['password']));

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 :

 CRUD PHP MySQL : Delete Data MySQL dengan PHP

 CRUD PHP MySQL : Update Data MySQL dengan PHP

 CRUD PHP MySQL : Insert Data MySQL dengan PHP

 CRUD PHP MySQL : Menampilkan Data MySQL dengan PHP

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.

Membuat Logout PHP

Selanjutnya yaitu membuat logout, untuk membuat logout dapat menggunakan file PHP dengan
nama logout.php.

Berikut ini kode scriptnya nya :

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()

Setelah itu akan di arahkan ke halaman login lagi.

Membuat halaman Index

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.

Silahkan ubah kode index.php nya :

index.php

1 <?php

2 session_start();

4 if (!$_SESSION["is_login"] === TRUE) {

5 header("location: login.php");

6 exit;

7 }

8 ?>

9 <html>

10

11 <head>

12 <title>

13 Membuat Login PHP MySQL | Kodingin

14 </title>

15 <style>

16 .wrapper {
17 width: 400px;

18 box-shadow: 1px 2px 4px rgba(0, 0, 0, .5);

19 margin: 10% auto;

20 padding: 40px;

21 }

22

23 form input {

24 width: 100%;

25 height: 40px;

26 border: 1px solid black;

27 padding: 5px;

28 }

29 </style>

30 </head>

31

32 <body>

33 <div class="wrapper">

34 <h3>Selamat datang di Kodingin</h3>

35 <p>Anda sudah berhasil login di halaman admin</p>

36 <p>Apabila ingin Keluar bisa klik tombol di bawah ini<br>

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

Sekarang saat nya melakukan uji coba :

Uji coba Tutorial Login

Silahkan buka http://localhost/kodingin_tutorial/loginphpmysql/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

Jika sudah, klik tombol Login Now.

Tampilan di atas menandakan bahwa email dan password yang di masukkan sesuai dengan yang ada
di dalam database pada tabel users.

Anda mungkin juga menyukai