Diartikel ini, kita akan membuat form login dengan PHP dan MariaDB menggunakan PDO (PHP Data Objects).
Persiapan Data
Pertama kita buat dahulu tabelnya, anggap saja kita buat tabel dengan nama tb_login seperti berikut :
ditabel tb_login kita mempunyai 2 field yaitu username sebagai primary dan password. Keduanya bertipe varchar dan tidak boleh null. Untuk data pada tabel bisa di isi bebas, pada contoh ini saya mempunyai data username admin dan password nya adm1234.
Buat File Koneksi
buat file bernama koneksi.php, ketik kode berikut:
<?php
session_start();
$DB_host = "localhost";
$DB_user = "root";
$DB_pass = "";
$DB_name = "yudhatp_blog";
try
{
$DB_con = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);
$DB_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
include_once 'class_login.php';
$cls_login = new CLS_LOGIN($DB_con);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
catatan : nama database yang saya gunakan adalah yudhatp_blog, silahkan disesuaikan dengan database yang anda gunakan.
Buat File class_login
buat lagi file php bernama class_login.php. File ini berisi kode login yang akan digunakan pada form login. Ketik kode seperti berikut :
<?php
class CLS_LOGIN{
private $db;
function __construct($DB_con){
$this->db = $DB_con;
}
public function login($uname,$upass){
try{
$stmt = $this->db->prepare("SELECT * FROM tb_login WHERE username=:uname AND password=:upass LIMIT 1");
$stmt->execute(array(':uname'=>$uname, ':upass'=>$upass));
$userRow = $stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0)
{
return true;
}
else
{
return false;
}
}
catch(PDOException $e){
echo $e->getMessage();
}
}
}
?>
Buat File Login
Terakhir, buat file login.php untuk form login, pastikan file koneksi.php , class_login.php dan login.php berada dalam satu folder yang sama. Kode login.php sebagai berikut:
<?php
require_once 'koneksi.php';
if(isset($_POST['btn-login'])){
$uname = $_POST['username'];
$upass = $_POST['password'];
if($cls_login->login($uname,$upass)){
echo "<script>window.alert('Login Berhasil');</script>";
}
else{
echo "<script>window.alert('Login Gagal');</script>";
}
}
?>
<html>
<head>
<title>YudhaTP - Blog</title>
</head>
<body>
<form method="post">
<input type="text" name="username" placeholder="Username" autofocus required>
<br>
<input type="password" name="password" placeholder="Password" required>
<br>
<button name="btn-login" type="submit">Login</button>
</form>
</body>
</html>
Hasilnya
Ketika di input dengan value yang benar
ketika di input dengan value yang salah
Pada form login tersebut jika value benar maka hanya menampilkan alert message berisi teks login berhasil dan jika valuenya salah atau tidak cocok ditabel nya maka menampilkan teks login gagal.
Penjelasan Kode
Pada file class_login.php
public function login($uname,$upass)
Kita membuat suatu fungsi publik untuk login dengan 2 parameter yaitu uname dan upass yang menghasilkan nilai return berupa true atau false. Jika true berarti hasil query terdapat row, dimana row tersebut adalah row dari tabel di tb_login (jika hasil query berisi row, maka query tsb benar dan menghasilkan data).
Query yang digunakan sebagai berikut :
SELECT * FROM tb_login WHERE username=:uname AND password=:upass LIMIT 1
Query mempunyai 2 where clause yaitu berdasarkan username dan password, dan data dibatasi 1 (sebenarnya ini opsional saja, syntax limit 1 jika tidak dipakai pun hasilnya sama, field username juga sudah kita buat primary sehingga tidak bisa username yang sama di insert kembali karena akan menghasilkan duplicate entry.
Fungsi login ini dapat dipanggil dengan cara
$cls_login->login($uname,$upass)
variabel $cls_login sudah kita deklarasikan sebelumnya di file koneksi.php, jadi selama file php kita menginclude file koneksi.php, variabel $cls_login langsung bisa kita gunakan.
Sementara di file login.php, kita hanya membuat 1 tombol dengan tipe submit yang memanggil fungsi login tersebut, dimana jika return dari fungsi login true maka menampilkan window alert atau pesan login berhasil dan sebaliknya seperti berikut.
if($cls_login->login($uname,$upass)){
echo "<script>window.alert('Login Berhasil');</script>";
}
else{
echo "<script>window.alert('Login Gagal');</script>";
}
Semoga Bermanfaat
rerefensi : -
Artikel ini dibuat oleh Yudha Tri Putra sebagai penulis artikel, diperbolehkan menyalin artikel ini secara utuh tanpa mengubah atau menambah isi artikel.
0 komentar:
Posting Komentar