Hej, jako że chcę zwiększyć bezpieczeństwo logowania, w moim projekcie chcę sprawić żeby po 3 nieudanych próbach logowania zablokować konto takiemu użytkownikowi na pewien czas.
Mam jednak problem z implementacją kodu według poradnika na stackoverflow
<?php
$cookie_name = "user";
$cookie_time = "time()+3600*24";
$cookie_value = "";
$user = $_POST['user'];
$pass = $_POST['pass'];
$link = mysqli_connect("localhost", "00261256", "haslo12345", "00261256");
if(!$link) { echo"Błąd: ". mysqli_connect_errno()." ".mysqli_connect_error(); }
mysqli_query($link, "SET NAMES 'utf8'");
$result = mysqli_query($link, "SELECT * FROM users WHERE user='$user'");
$rekord = mysqli_fetch_array($result);
if(!$rekord){
mysqli_close($link);
echo "Brak użytkownika o takim loginie!";
}else{
if($rekord['pass']==$pass){
$_COOKIE['cookie_value'] = $user;
setcookie($cookie_name, $cookie_value, (int)$cookie_time);
header('Location: menu.php');
function ip_details($info) {
$json = file_get_contents ("http://ipinfo.io/{$info}/geo");
$details = json_decode ($json);
return $details;
}
$ipaddress = $_SERVER["REMOTE_ADDR"];
$details = ip_details($ipaddress);
$details -> ip;
$info = $details -> ip;
$data = date ("Y-m-d", time());
$czas = date ("H:i", time());
$p = ',';
$czas2 = $data . $p . $czas;
$klienci = mysqli_query($link, "INSERT INTO logi(godzina, user, info) VALUES ('$czas2', '$user', '$info')");
}else{
mysqli_close($link);
echo "Błędny login lub hasło!";
}
}
$ipaddress = $_SERVER["REMOTE_ADDR"];
mysqli_query($link, "INSERT INTO `ip` (`address` ,`timestamp`)VALUES ('$ipaddress',CURRENT_TIMESTAMP)");
$result2 = mysqli_query($link2, "SELECT COUNT(*) FROM `ip` WHERE `address` LIKE '$ipaddress' AND `timestamp` > (now() - interval 10 minute)");
$count = mysqli_fetch_array($result2, MYSQLI_NUM);
if($count[0] > 3){
echo "Your are allowed 3 attempts in 10 minutes";
}
?>
Jak zaimplementować ten kod który będzie egzekwował takie limity i blokował konta np na 10 minut ?