Rumahweb Journal
Opengraph-PHP-Session-Login-dan-Logout

Cara Membuat PHP Session Login dan Logout

Login dan logout merupakan proses yang hampir selalu kita temui, pada saat berselancar di internet. Misalnya untuk cek email, masuk ke social media seperti Facebook, Instagram, Twitter hingga tiktok. Salah satu hal terpenting dalam proses login tersebut adalah php session login, agar setiap user memiliki session masing-masing dan tidak saling tertukar.

Lalu muncullah pertanyaan, bagaimana cara membuat php session login dan logout tersebut pada website? Pada artikel ini, kita akan belajar membuat form login dan logout sendiri secara sederhana menggunakan PHP & MySQL tentunya.

Membuat Session PHP Login

Jika Anda mencoba dari komputer stand-alone, jalankan dulu webserver dan database server anda. Untuk gampangnya, gunakan saja phptriad.

1. Membuat Database

Setiap user yang login akan dicek username dan passwordnya dari tabel user yang terdapat pada database. Kita buat dulu databasenya dengan perintah berikut:

create database coba;

use coba;

create table users
(
id int auto_increment not null,
username varchar(20) not null,
password varchar(35) not null,
primary key(id)
);

jika sudah selesai, ketikkan perintah

desc users;

maka akan tampil seperti berikut ini:

image 1 - PHP Session Login dan Logout

setelah itu, ketik perintah ini:

INSERT INTO users (username, password) VALUES (test, md5(test));

Perintah diatas digunakan untuk memasukkan nilai pada field username dan password, untuk memastikannya, ketik perintah berikut:

select * from users;

Maka akan tampil:

image 2 - PHP Session Login dan Logout

Password yang dimasukkan, menggunakan enkripsi md5. tulisan test pada password, diubah menjadi 32 character string.

2. Membuat login.html

Digunakan sebagai form login untuk user. Script-nya:

<html>
<head>
<title>Login </title>
</head>
<body>
<form method="POST" action="login.php">
Username: <input type="text" name="username" size="20">
Password: <input type="password" name="password" size="20">
<input type="submit" value="Login" name="login”>
</form>
</body>
</html>

3. Membuat login.php

File ini digunakan untuk memeriksa apakah username dan password yang dimasukkan benar atau tidak.

<?PHP
//periksa apakah file ini tidak dipanggil secara langsung, jika dipanggil secara langsung
//maka user akan di kembalikan ke login.thml
if (!isset($username) || !isset($password)) {
header( "Location: http://domainanda/login.html" );
}
//melihat apakah form telah diisi semua atau tidak. Jika tidak, user akan dikembalikan ke
//halaman login.html
elseif (empty($username) || empty($password)) {
header( "Location: http://domainanda/login.html" );
}
else{
//mengubah username dan password yang telah dimasukkan menjadi sebuah variabel dan meng-enkripsi password ke md5
$user = addslashes($_POST['username']);
$pass = md5($_POST['password']);

//variabel untuk koneksi ke database
$dbHost = "localhost";
$dbUser = "databaseusernameanda"; //user yang akan digunakan pada database.
$dbPass = "passworddatabase"; //password dari username untuk database.
$dbDatabase = "coba"; //dari database yang dibuat tadi

//Melakukan koneksi ke database
$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("koneksi gagal nih, cek apakah variabel sudah benar apa belum");

//memilih database
mysql_select_db("$dbDatabase", $db) or die ("Gagal memilih database");
$result=mysql_query("select * from users where username='$user' AND password='$pass'", $db);

//melihat apakah username dan password yang dimasukkan benar
$rowCheck = mysql_num_rows($result);

//jika benar maka
if($rowCheck > 0){
while($row = mysql_fetch_array($result)){

//mulai session dan register variabelnya
session_start();
session_register('username');

//Memberitahu jika login sukses
echo 'login berhasil..!!';

//redirect ke halaman lain untuk lebih memastikan
header( "Location: loginok.php" );

}
}
else {

//jika $rowCheck = 0, berarti username atau password salah, atau tidak terdaftar di database
echo 'Invalid username or password, coba lagi deh.. ';
}
}
?>

4. Membuat loginok.php

Nama filenya agak aneh? Sebenernya gabungan dari dua kata, login dan ok. Artinya file ini cuma akan diakses begitu username dan password telah valid dan session telah di register.
Scriptnya kurang lebih:

<?php
//mulai session
session_start();

//cek lagi apakah session telah terdaftar untuk username tersebut
if(session_is_registered('username')){

//dan jika terdaftar
echo 'Selamat Datang, session anda telah terdaftar. Dan hanya akan terhapus jika anda melakukan logout.';
}
else{

//jika tidak terdaftar, kembalikan user ke login.html
header( "Location: http://domainanda/login.html" );
}
?>

Function session_start() tidak hanya digunakan untuk memulai session, tapi juga untuk memastikan session itu berlanjut terus (tetap aktif). Session_start() dan if(session_is_registered() harus diletakkan paling atas pada kode yang dibuat, untuk mencegah user dikembalikan pada halaman login.

5. Membuat logout.php

<?php
//function start lagi
session_start();

//cek apakah session terdaftar
if(session_is_registered('username')){

//session terdaftar, saatnya logout
session_unset();
session_destroy();
}
else{

//variabel session salah, user tidak seharusnya ada dihalaman ini. Kembalikan ke login
header( "Location: http://domainanda/login.html" );
}
?>

Karena session terdaftar, maka pada proses logout, kita perlu menghapus variabel pada session tersebut dengan menggunakan function session_unset(). Dan untuk melengkapi penghapusan data yang berkaitan dengan session tadi, gunakan session_destroy()

Gampang kan untuk membuat php session login dan logout sederhana diatas? Demikian panduan membuat session login dan logout dari Rumahweb, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 3.8 / 5. Vote count: 13

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Domain & Hosting Gratis di Rumahweb

Rumahweb