Gelandang Internet yang mencoba melewati lorong sempit tanpa batas ruang dan waktu

Cara Membuat Halaman Login dengan PHP dan MySQL

· · 2 comments
Assalamu'alaikum, wr.wb

Membuat Form Login dan Logout dengan PHP dan MySQL - Baik aplikasi atau software yang dibuat dengan Bahasa Pemograman Destop maupun Bahasa Pemograman Web seperti PHP, Halaman login sangatlah penting. Fungsi halaman login bertujuan untuk melindungi konten database dari perubahan oleh user umum. Sehingga hanya admin saja yang mempunyai akses dalam melakukan otak atik data seperti menghapus atau merubah data yang ada di database.
Membuat Form Login dan Logout dengan PHP dan MySQL
Bahasa Pemograman PHP

Tutorial membuat form login di PHP dan MySQL ini dilengkapi dengan fungsi PHP Session. Fungsi session ini digunakan untuk menyimpan aktivitas login di browser, sehingga tidak memerlukan tindakan ulang seperti memasukan username dan password ketika login kembali. Funginya sama ketika kita login difacebook, maka ketika kita membuka facebook kembali tidak perlu memasukan email dan password walaupun sebelumnya komputer sudah dimatikan. 

Tutorial membuat form loagin dengan PHP dan MySQL ini memerlukan 4 buah file PHP, file untuk login, file menjalankan fungsi login, file koneksi serta file home atau halaman utama. Berikut langkah-langkah lengkap membuat halaman login di PHP dan MySQL : 

1. Buat database dengan nama login dan tabel dengan nama  users. Cara membuat database dan tabel rekan bisa baca disini Contoh membuat database dan tabel MySQL dengan PHPMyAadmin. Untuk lebih mudah membuat tabel users silahkan copykan script ini di Fungsi SQL seperti gambar dibawah ini, kemudian klik Go. 
Bahasa Pemograman PHP
Maka akan otomatis terbuat tabel users dengan field id, username, password dan confirm.

2. Buat file login.php dan copykan kode dibawah ini :

<?php
session_start();
$username = $_SESSION['username'];
if (isset($username)){
header ('location:home.php');
}
else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>

<body>

<form action="log_act.php" method="post">
<div> Username :</div><input name="username" type="text" />
<div> Password :</div><input name="password" type="password" />
<input type="submit" value="Login" />
<div><a href="register.php">register</a></div>
</form>
</body>
</html>
<?php
}
?>
Bahasa Pemograman PHP
Pada koding 6 baris pertama digunakan untuk mencatat (session) apakah user sudah login atau belum. Jika sudah maka akan langsung diarahkan ke home.php (File untuk halaman utama).

2. Pada coding form login diatas bagian form action memanggil file log_act.php, kita buat sebuah file lagi dengan nama log_act.php. Copykan manteranya dibawah ini untuk file log_act.php. 

<?php
//ini adalah membuat sessionnya
session_start();
include "db.php";
function anti_injection($data){
  $filter = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
  return $filter;
}
$username = anti_injection($_POST['username']);
$password = anti_injection($_POST['password']);
//script berikut berfungsi untuk mengecek apakah form sudah terisi dengan benar
if (!ctype_alnum($username) OR !ctype_alnum($password)){
  echo "Sekarang loginnya tidak bisa di injeksi lho.";
}
else{
if ($username&&$password){
$get_sql = mysql_query ("SELECT * FROM users WHERE username = '$username'");
$num = mysql_num_rows($get_sql);
//script ini berfungsi untuk mengecek apakah usernama sudah ada atau belum
if ($num==0){
echo "Username Belum terdaftar";
}
else {
while($row = mysql_fetch_assoc($get_sql)){
$dbusername = $row ['username'];
$dbpassword = $row ['password'];
}

/*Script ini berfungsi untuk mengecek kebenaran username dan password,
jika sudah benar maka program akan membuat sessiojn login
  */
$pass = md5($password);
if ($username == $dbusername && ($pass==$dbpassword)){
$_SESSION['username'] = $username;
header ('location:home.php');
}
else {
echo "Password Salah";
}
}
}
else {
echo "Tolong penuhi field";
}
}
?>

3. Karena script pada nomor 2 diatas akan memanggil tabel users untuk memeriksa username dan password, maka kita membutuhkan file koneksi database. Buat file koneksi database dengan nama db.php

<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "login";

mysql_connect ($host, $user, $pass) or die ("Tidak bisa konek dengan database".mysql_error);
mysql_select_db ($dbname) or die ("Gagal membuka database".mysql_error);
?>

4. Selanjutnya kita akan membuat halaman utama ketika brehasil login. Buat file dengan nama home.php

<?php
/*fungsi script ini sama seperta yang ada pada file login.php cuma ini kebalikannya
jika user sudah login maka akan mengarah ke home.php dan jika belum maka akan kembali ke login.php
*/
session_start();
$username = $_SESSION['username'];
if (isset($username)){
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home</title>
</head>

<body>

<div>Selamat Datang</div>
//<div><a href="logout.php">Logout</a></div>
</body>
</html>
<?php
}
else {
header ('location:login.php');
exit();
}

?>


Selesai sudah langkah-langkah membuat halaman login menggunakan PHP dan MySQL yang dilengkapi dengan fungsi session. Dari contoh diatas fungsi session dibuat pada file login.php, log_act.php dan halaman home.php. Fungsi session dihalaman home digunakan untuk memproteksi file home.php sehingga file tersebut dibuka akan mengarah ke file login.php jika sebelumnya belum ada login dari user yang bersangkutan. Penerapan session tidak hanya berlaku untuk halaman home.php saja. Fungsi session dapat digunakan pada semua file php sehingga ketika halaman lain tersebut dibuka dalam keadaan belum pernah login maka otomatis akan memanggil halaman login.php. Begitulah kira-kira.

Baca juga Contoh program hapus data dengan PHP dan MySQL

2 comments:

- Komentar yang mengandung hujatan, negatif akan dianggap spam
- Komentar link akan dilaporkan ke posyandu terdekat & tidak akan ditampilkan