membuat login sederhana dengan PHP PDO dan MySQL

membuat login sederhana dengan PHP PDO dan MySQL

Ok  di article sebelumnya kita sudah membahas CRUD dengan php SQLite, hari ini aku akan bahas  gimana cara membuat login dengan PHP dan MySQL dan tentunya kita akan memakai PDO demi kemanan bersama, proses login adalah salah satu bagian yang penting ketika kita membuat web, dengan login kita bisa membatasi orang lain untuk mengakses menu-menu penting, contoh paling simple adalah halaman login administrator. Karena kalian ga mau kan web kalian diacak-acak oleh orang yang tidak bertanggung jawab kan ?!

Oke pertama buatlah database baru dengan nama belajar  lalu buatlah table dengan nama user dan struktur table sebagai berikut :

atau kamu bisa copy code MySQL dibawah ini :

-- Adminer 4.6.3 MySQL dump

SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `user` (`id`, `username`, `password`) VALUES
(1,	'admin',	'admin1');

-- 2020-07-18 08:31:01

setelah itu buatlah file koneksi database MySQL untuk menghubungkan database dengan PHP dengan nama config.php berikut source codingnya.

<?php
$con = new PDO("mysql:host=localhost;dbname=belajar", "root", "mypass");
?>

lalu setelah membuat koneksi database, buatlah sebuah file bernama login.php, untuk source code-nya bisa copy dibawah ini

<html>
<head>
<title>Login Page</title>
</head>
<body>
<form action="#" method="post">
<table align="center">
<tr>
<td>Username : </td><td><input type="text" name="user"></td>
</tr>
<tr>
<td>Password : </td><td><input type="password" name="pass"></td>
</tr>
<tr>
<td></td><td><button align="center" type="submit" name="login" value="login">Login</button></td>
</tr>
</table>
</form>
</body>
</html>
<?php
include "config.php";
if(isset($_POST['login']))  //cek user sudah tekan tombol login apa belum
			{
$user = $_POST['user'];
$pass = $_POST['pass'];

$q = $con->prepare("SELECT * FROM user WHERE username = :user AND password = :pass");
$q->bindparam(':user',$user);
$q->bindparam(':pass',$pass);
$q->execute();
$cek = count($q->fetchAll());
//----------------------------------------------------------------------------------------------------------------
if($cek > 0)		//cek username dan password yang ada di database ada atau tidak, jika ada login sukses
	{						
session_start();	//Login sukses dan session dimulai
$_SESSION['login'] = "yes";
$_SESSION['user'] = $user;
	?>
<script type="text/javascript">
alert("Login sukses");
window.location.href = "index.php";
</script>
<?php
	}
else		//jika login salah, user akan diarahkan ke halaman login lagi			
{		
?>
<script type="text/javascript">
alert("Login sukses");
window.location.href = "index.php";
</script>
<?php
}
//----------------------------------------------------------------------------------------------------------------
			}
?>

source kode di atas adalah source code untuk halaman login dan proses loginnya. front end dan back end saya jadikan satu file agar menjadi ringkas, logika flownya adalah memncocokan username dan password yang diinput user dengan table user di database, jika username dan password cocok makan login sukses dan user akan di-redirect atau diarahkan ke halaman admin jika salah user akan di arahkan ke halaman login kembali.

nah berikutnya kita akan membuat halaman admin, dihalaman admin ini kita kasih SESSION agar halaman tidak bisa diakses langsung oleh user, jadi user diharuskan login terlebih dahulu untuk membuka halaman admin, jika seandainya ada user yang membuka halaman admin langsung tanpa login makan user akan diarahkan paksa ke halaman login.php, buatlah sebuah file dengan nama index.php untuk source code-nya seperti dibawah.

<?php
session_start();

//----------------------------------------------------------------------------------------------------------------
if(isset($_SESSION['login']))  //Cek user sudah login belum, jika sudah maka masuk halaman ini
{
echo "selamat anda berhasil login, klik <a href='logout.php'>Logout</a> untuk keluar";
}

//----------------------------------------------------------------------------------------------------------------


//----------------------------------------------------------------------------------------------------------------
else	//jika user belum login, user akan diarah kan ke halaman login
{
?>
<script type="text/javascript">
alert("Anda belum login");
window.location.href = "login.php";
</script>
<?php
}
//----------------------------------------------------------------------------------------------------------------
?>

nah untuk berikutnya kita buat menu logout, menu logout ini isinya hanya perintah menghapus semua session yang dibuat ketika kita berhasil login diawal tadi, buatlah file dengan nama logout.php, berikut source code-nya.

<?php
session_start();
session_destroy();
?>
<script type="text/javascript">
alert("Anda berhasil logout");
window.location.href = "login.php";
</script>

Posted on