contact
WA: 0822-8846-7823
SMS: 0822-8846-7823
Call: 0822-8846-7823
BBM: D7DB3491
ebsofmail@gmail.com

Membuat Login dengan Validasi Waktu

Posted in PHP MYSQL / i Life at 04 Januari 2017 With 0 Comments

Kali ini admin akan Posting artikel Cara Membuat Login Dengan PHP MYSQL dengan Validasi Waktu, maksudnya... Disini kita membuat login trial yang membatasi percobaan login  Jika kita salah dalam memasukkan password sebanyak 5 kali , kita harus menunggu sekitar 25 detik / lebih untuk bisa login kembali dan memasukkan password, hal ini biasa ada pada handphone, Ini juga salah satu bentuk verifikasi yang dapat mencegah serangan robot, Dalam Pembuatan logn ini kita bisa memberikan kesempatan login sesuai settingan, ada baiknya jika validasi ini di kombinasikan dengan Validasi Form Input Dengan Javascript yang kita buat contohnya :

" Kesempatan mencoba 3 kali lagi.
Login Gagal. Username atau Password yang Anda masukkan salah!
 
Nah.. user sudah mencoba beberapa kali login sesuai dengan batasnya , maka otomatis user harus menunggu sesuai waktu yang ditentukan

membuat login dengan PHP

Membuat Login PHP MYSQL dengan Sistem Validasi Waktu apabila Salah memasukkan username / password

File Index.php

<?php 
//index.php
session_start(); ?>
<h1>Home</h1>
<?php if (isset($_SESSION['username'])): ?>
Hello <?php echo $_SESSION['username']?> (<a href="login.php?logout">Logout</a>)
<p>
    Anda mendapatkan informasi penting.
</p>
<?php else: ?>
<p>
    Silakan <a href="login.php">login</a> untuk melihat informasi penting.
</p>
<?php endif; ?>
▼ Download Source Code Dibawah Ini ▼


Untuk Login.php

<?php
//login.php
session_start();

if (isset($_SESSION['username'])){    
    if (isset($_GET['logout'])) unset($_SESSION['username']);
    header("location: index.php");
} else {
    if ($_POST){
        //asumsi username and password hasil fetched form database
        $username = "admin";
        $password = "21232f297a57a5a743894a0e4a801fc3"; //admin
        //password di atas hasil md5("admin");

        if ($_POST['uname']==$username){ //bandingkan username
            if (md5($_POST['passwd'])==$password){ //bandingkan password
                //sukses
                unset($_SESSION['failed']); //hapus failed
                unset($_SESSION['delayto']); //hapus delayto
                $_SESSION['username']=$username; //catat username
                header("location: index.php"); //ke halaman utama
            }
        }
        //failed catat sudah berapa kali
        $message = "Username/password tidak match";
        if (!isset($_SESSION['failed'])) $_SESSION['failed']=0;
        $_SESSION['failed']++; //faileb bertambah

        //delay sebanyak 2 pangkat gagal
        $delay = pow(2,$_SESSION['failed']);
        $_SESSION['delayto'] = strtotime("+ {$delay} seconds");
    }
}
?>
<h2>Login</h2>
<?php
if (isset($message)) echo $message."<br/>";
if (isset($_SESSION['delayto'])) $delay = $_SESSION['delayto'] - time();
else $delay = 0;

if ($delay > 0): ?>

<p>
Sudah <?php echo $_SESSION['failed'];?> kali gagal.<br/>
Silakan coba
<span id="delay"><?php echo $delay;?></span>.
</p>
<script type="text/javascript">
  var seconds;
  var temp;
 
  function countdown() {
    seconds = document.getElementById('delay').innerHTML;
    seconds = parseInt(seconds, 10);
 
    if (seconds == 1) {
      temp = document.getElementById('delay');
      temp.innerHTML = "<a href='login.php'>login</a>";
      return;
    }
 
    seconds--;
    temp = document.getElementById('delay');
    temp.innerHTML = seconds+" detik lagi";
    timeoutMyOswego = setTimeout(countdown, 1000);
  }
 
  countdown();
</script>

<?php else: ?>

<form method="POST">
    Username: <br/>
    <input type="text" name="uname"><br/>
    Password :<br/>
    <input type="password" name="passwd"><br/>
    <input type="submit" value="Submit">
</form>

<?php endif; ?>

 Untuk Demo silahkan lihat disini

Artikel Rekomendasi



Artikel Terkait

Diskusi