Membuat login dan register dengan php dan mysqli

Membuat form login PHP dengan menggunakan Session – Halo Sahabat programmer kembali lagi saya membagikan artikel lanjutan untuk seri belajar PHP. Bagi teman-teman yang sedang belajar bahasa pemrograman PHP khusus sedang membuat aplikasi berbasis web tentu postingan ini akan sangat bermanfaat bagi kalian.

Form login dalam sebuah aplikasi web adalah hal yang wajib. Hal ini berfungsi untuk mengidentifikasi pengguna yang mengakses aplikasi kita dan memetakan hak akses pengguna.

Artikel terkait : Cara membuat form login dengan CodeIgniter

Ketika kita membuat sebuah aplikasi web dengan PHP tentu akan ada rules/aturan dimana ada beberapa halaman yang dapat diakses tanpa pengguna harus login terlebih dahulu. Namun ada juga halaman yang diakses harus melalui login dulu.

Bagaimana caranya kita membuat sistem login dengan PHP ? Jawabannya akan terjawab pada postingan ini. Ikuti langkah-langkah dalam tutorial kali ini untuk membuat form login dengan php dan mysqli serta menggunakan session.

Daftar Isi

Tools yang perlu dipersiapkan

  • Server lokal apache (telah tersedia diaplikasi xampp)
  • Database Mysql (telah tersedia juga di xampp)
  • Aplikasi teks editor seperti notepad++

Pelajari Cara instal xampp di windows

Fitur/komponen yang dibutuhkan

Untuk membuat login dengan PHP dan mysqli kita membutuhkan beberapa komponen seperti

  • Enskripsi md5
    Enskirpsi md5 akan kita gunakan untuk meng enskripsi password, agar password pengguna tidak dapat terlihat didatabase.
  • Variabel Session
    Session merupakan sebuah variabel sementara yang tersimpan di server. Kita dapat menyimpan data pengguna yang login misalnya; username, nama,email dan lainnya.
  • Function Mysqli
    Fungsi mysqli digunakan untuk aplikasi php native yang berhubungan dengan database. Fungsi mysqli adalah penyempurnaan dari fungsi mysql, Penggunannyapun hanya pada versi PHP 5 keatas.
  • Framework Bootstrap
    Pada tutorial yang saya berikan selalu menggunakan bootstrap untuk tampilannya. Karena tanpa CSS tentu saja tampilannya akan standar. Untuk bootstrap sendiri adalah opsional, kalian bisa juga tidak menggunakannya tidak apa-apa.

Konfigurasi Database

Untuk tahap pertama kita buat sebuah database, disini saya membuat database dengan nama penjualan

create database penjualan;

Buat sebuah tabel dengan nama user didalam database penjualan

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);

Insert data pengguna kedalam tabel user. nantinya lewat user ini yang akan kita pakai untuk login

INSERT INTO user (username,nama,email,password) 
VALUES ('dimas95','Setiawan Dimas','[email protected]',md5(12345));

Perhatikan pada query diatas saya insert data pada tabel user dengan field username,nama,email, dan password. Coba perhatikan pada field password saya menggunakan md5 untuk enskrispsi jadi ketika di simpan maka password akan tersamarkan dengan kode acak seperti terlihat pada gambar berikut

Membuat login dan register dengan php dan mysqli

Buat folder dalam htdocs

Bila kalian menggunakan xampp, didalam folder htdocs buat sebuah folder dengan nama penjualan.

Membuat login dan register dengan php dan mysqli

Setiap projek PHP yang kita buat pada server lokal wajib di masukan didalam folder htdocs untuk nantinya projek yang kita buat dapat dipanggil melalui localhost.

Buat file koneksi.php

Selanjutnya kita buat file koneksi.php untuk mengkoneksikan aplikasi PHP dengan database mysql.

File koneksi kita buat menggunakan function mysqli_connect. Fungsi ini untuk membuat koneksi database dengan PHP native. fungsi ini memiliki empat parameter yang pertama adalah host yang kita gunakan, dalam hal ini kita masih menggunakan localhost karena masih server lokal pada PC kita.

Kemudian variabel $user adalah nama user saat kita mengakses database mysql. Secara default user mysql yang dibuat adalah root, sesuaikan dengan nama user yang lain bila kalian telah mengganti default user tersebut.

Untuk selanjutnya password jika database kita menggunakan password, jika tidak dikosongkan untuk nilai variabel $password. Terakhir adalah nama database yang kita gunakan didalam variabel $db.

Apabila ada yang belum sesuai dengan konfigurasi koneksi database maka sistem akan menampilkan koneksi gagal.

Buat file login.php

Sekarang kita buat file login.php simpan didalam folder penjualan.




    
    


    

Login dengan PHP


Pada file login ini berisi form html untuk input username dan password, form ini nantinya akan dikirim ke login_action.php

Kalau kita lihat berdasarkan dsintak diatas kita menggunakan css bootstrap untuk tampilan form nya. Saya meload bootstrap pada bagian dengan perintah

 

Buat file login_action.php

Tahap berikutnya kita membuat file untuk menerima nilai (value) dari kiriman form login.php. Buat file dengan nama login_action.php

0) {
		$row = mysqli_fetch_assoc($hasil);
		$_SESSION["id_user"]=$row["id_user"];
		$_SESSION["username"]=$row["username"];
		$_SESSION["nama"]=$row["nama"];
		$_SESSION["email"]=$row["email"];
	

		header("Location:user.php");
		
	}else {
		echo "Username atau password salah 
Kembali"; } ?>

Pada file login_action disini kita membuat sistem login dengan session, diamana pada awal sintak memulai variabel session dengan perintah session_start(), Kemudian kita include kan file koneksi ke database lewat file koneksi.php

session_start();
include "koneksi.php";

Selanjutnya kita membuat variabel untuk menampung nilai dari form login untuk username dan password, untuk passwordnya disini kita menggunakan fungsi enskripsi md5

$username = $_POST["username"];
$p = md5($_POST["password"]);

Selanjutnya kita buat perintah query untuk mengecek username dan password pada tabel user didalam database penjualan yang telah kita buat

$sql = "select * from user where username='".$username."' and password='".$p."' limit 1";

Selanjutnya kita mengeksekusi kueri tersebut

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
0

selanjutnya kita buat fungsi untuk menghitung hasil row berdasarkan query yang kita jalankan diatas, dengan menggunakan function mysqli_num_rows. Kemudian nilai nya disimpan pada variabel $jumlah

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
1

Selanjutnya kita membuat kondisi apabila variabel jumlah mempunyai nilai lebih dari 0 (artinya bahwa user tersebut datanya ada didatabase, maka akan di set nilai variabel session berdasarkan hasil baris query diatas)

disini saya menyimpan session untuk id_user,username,nama,email. Nantinya setiap nilai yang disimpan pada variabel session dapat kita akses.

Kemudian selanjutnya halaman akan di arahkan pada file user.php, namun apabila kondisi tidak tepenuhi maka blok else yang akan dikerjakan yaitu menampilkan pemberitahuan ‘Username atau password salah’

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
2

Membuat file user.php

Selanjutnya kita buat file user.php file ini berfungsi untuk menampilkan halaman user, hanya user yang telah login yang dapat mengakses halaman ini.

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
3

Perhatikan pada sintak :

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
4

Kondisi if ini akan mengecek apakah terdapat variabel session dengan nama username ? jika tidak ada artinya bahwa pengguna tersebut belum login, maka sistem akan menampilkan pemberitahuan bahwa pengguna tersebut harus login terlebih dahulu sebelum mengakses halaman user ini.

Membuat file logout.php

Terakhir kita membuat sebuah file dengan nama logout.php

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
5

Fungsi dari file logout adalah untuk membersihkan atau menghapus nilai yang tersimpan pada session dengan menggunakan perintah session_unset dan session_destroy. Nantinya halaman akan diarahkan kembali pada halaman login.

Uji Coba

Sekarang kita uji coba aplikasi dengan sistem login sederhana yang kita buat. Buka halaman login dengan mengetik di bagian URL browser

create table user(
id_user int not null auto_increment primary key,
username varchar(30) not null,
nama varchar(50),
email varchar(30),
password varchar(200)
);
6

kemudian saya mengisi isian username dan password dengan isian yang SALAH

Membuat login dan register dengan php dan mysqli

Maka ketika saya menekan tombol login sistem akan memberi pesan seperti berikut

Membuat login dan register dengan php dan mysqli

Apabila saya memasukan dengan username dan password yang BENAR

Membuat login dan register dengan php dan mysqli

Maka saya akan masuk ke halaman user

Membuat login dan register dengan php dan mysqli

Kemudian apabila saya ingin kelua tekan tombol Logout, saya akan diarahkan kembali kehalaman login

Membuat login dan register dengan php dan mysqli

Sementara apabila saya mencoba untuk mengakses halaman user.php TANPA melalui LOGIN maka hasilnya adalah seperti berikut

Membuat login dan register dengan php dan mysqli

Kesimpulan

Sekian tutorial PHP kali ini mengenai cara membuat form login php menggunakan session. Dapat saya simpulkan bahwa dengan menggunakan sistem login maka kita dapat mengidentifikasi pengguna yang mengakses halaman website kita serta membatasi hak akses dari pengguna. dengan menggunakan Session kita dapat menyimpan data sementara pengguna yang sedang mengakses aplikasi.