Jumat, 16 Maret 2012

Script Batasan Jumlah Login User Pada PHP

 Selamat pagi programer sekalian, kali ini saya sebagai awam akan sedikit memberikan penerangan (Lampu jalan kaleee penerangan segala) tentang Scrip PHP Login.

Setiap program berbasis dekstop yang menyediakan fasilitas Login User pasti akan ada batasan jumlah Login, begitu pula dengan Pemrograman Berbasis Web, dalam Web Script batasan jumlah Login User sudah tentu ada, jika pada program dekstop akan mengakhiri program ketika User menginputkan username dan password salah dalam jumlah yang telah ditentukan, maka dalam Web biasanya akan ada dua kemungkinan.
1. Akun Akan doblokir dalam database, mungkin gambarnya seperti ini
2. Akun akan login kembali setelah beberapa menit kemudian tergantung banyaknya pengaturan jumlah waktu, ini disebut timer login

Dalam posting kali ini, kami akan membahas No.1, yaitu bila User menginputkan Username dan Password salah dalam 3 kali, maka Username tersebut akan diblokir dan tidak bisa Login kembali sebelum menghubungi Admin. Langkahnya sebagai berikut :

1. Buat Database bebas, Misal Sumberdaya, Jika belum paham cara buat database MySql, silahkan baca kembali Cara Membuat database PHP MySql
FOTO
2. Jika database sudah dibuat, langkah selanjutnya adalah Buatlah Tabel misalkan kita berinama Users, untuk cara membuat tabel silahkan baca artikel pada nomor 1, satu paket dengan cara pebuatan database

3. Didalam tabel Users, yang wajib diperhatikan adalah filed batas_login dan blokir, kedua field inilah yang nantinya akan kita mainkan dalam script, Logikanya, jika batas login user adalah 3 kali, maka status blokir akan berubah 'Y' ketika user menginputkan sebanyak 3 kali salah





4. Langkah selanjutnya adalah, kita lihat script pada Cek_login.php
<?php
include "config/koneksi.php";
function antiinjection($data){
 $filter_sql = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
  return $filter_sql;
}

$username = antiinjection($_POST['username']);
$pass     = antiinjection(md5($_POST['password']));

if (!ctype_alnum($username) OR !ctype_alnum($pass)){
  echo "<script type=text/javascript>
        alert('Script Login');
        window.location = 'http://www.google.com/' //yang ini pengalihan ketika user salah
        </script>";
  //header('location:index.php');
}
else{

$login=mysql_query("SELECT * FROM users WHERE username='$username' AND password='$pass' AND blokir='N'");
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);

// Apabila username dan password ditemukan
    if ($ketemu > 0){
            mysql_query("UPDATE users SET batas_login = 0 where username='$username'");
            session_start();
            session_register("namauser");
            session_register("namalengkap");
            session_register("passuser");
            session_register("leveluser");

              $_SESSION[namauser]     = $r[username];
              $_SESSION[namalengkap]  = $r[nama_lengkap];
              $_SESSION[passuser]     = $r[password];
              $_SESSION[leveluser]    = $r[level];
             
        header('location:media.php?module=home');
            }
    else{
       
mysql_query("UPDATE users SET batas_login = batas_login + 1 where username='$username'");
       
       
 $a=mysql_fetch_array(mysql_query("SELECT batas_login from users where username = '$username'"));
        $b=$a['batas_login'];
        if($b > 2){
        mysql_query("UPDATE users SET blokir = 'Y' where username='$username'");
        echo "<script type=text/javascript>
              alert('Username $username Telah Di Blokir, Silahkan Hubungi Administrator');
              window.location = 'http://www.google.com/'
              </script>";
            }
        else{
        echo "<script type=text/javascript>
              alert('Username Atau Password Tidak Benar Anda, Sudah $b Kali Mencoba');
              window.location.href='index.php'
              </script>";
           }
        }
    }
?>


5. Keterangan tulisan warna merah
    - http://www.google.com/ adalah script pengalihan program ketika user diblokir
    - users adalah nama table dalam database
    - batas_login adalah field pada tabel users yang menentukan banyaknya batasan login
    - blokir adalah field yang ada pada tabel user yang berfungsi sebagai aktif dan tidaknya user
    - $b adalah variabel yang digunakan untuk penetuan banyaknya jumlah login
    - 2 adalah jumlah maksimal login

6. Jalankan program, dan Jika program dijalankan maka akan terlihat seperti ini
  Form Login
 masukan username yang telah ada pada database, kemudan masukan password yang salah, makan akan keluar alert, dan setelah memasukan passwrod sebanyak tigakali salah, maka alert terakhir adalah username diblokir

Catatan :
Untuk membuat script batasan jumlah login, kita hanya merubah sedikit pada file cek_login.php dan manipulasi database pada tabel users

Okeh, sekian dulu kawan artikel kali ini, semoga bermanfaat

Pesan: =========================================================== Hanya itu yang dapat kami tulis untuk potingan artikel ini, bila pengujung semua menyukai ini silahkan tinggalkan komentar anda.... Salam Hangat By Iwan Kurniawan ===========================================================


0 komentar

Posting Komentar

Cancel Reply