Arkadaşlar merhaba. Kullanıcı 3 kez yanlış şifre girdiğinde ip'sini 3-5 dakika engellemek istiyorum. Aşağıdaki kodlarda da yaptığım şu: Kullanıcı girişini saydırıp session'a kaydediyorum. Session'daki sayı 3 olduğunda kullanıcıya uyarı veriyor, "3 kez hatalı giriş denemesi yaptınız" gibi. Şimdi, session'ı tanımlıyorum ama değer vermeden. Eğer "0" değerini verirsem sayfa boş geliyor. Eğer string bir değer verirsem session'ı saydıramıyorum ve log sayfasında, "numerik bir değer değil" uyarısını da veriyor. Ama "$_SESSION["guvenlikgirisi"];" bu şekilde kullanırsam saydırabiliyorum. Ama "undefined session" uyarısı veriyor log'da. Bu arada, database sayfasında session'ı başlattım önceden.

Bir de, ip'yi nasıl engellerim. Kullanıcı kayıt yaparken ip'sini kaydettiriyorum. Kullanıcı 3 kez yanlış denemesi yapmışsa, ip'si ile veritabanındaki ip'yi karşılaştırıyorum. Aynı çıkarsa uyarı veriyorum ama ip'yi nasıl engelleyebilirim bilemiyorum.
<?php
if($_POST['kullanicigirisgonder']) {

$_SESSION["guvenlikgirisi"];

$guvenlik_ip = $_SERVER['REMOTE_ADDR'];


$kullaniciadi = trim(strip_tags(base64_encode($_POST['kullanicigirisadi'])));
$kullanicisifre = trim(strip_tags(base64_encode($_POST['kullanicigirissifre'])));
$guvenlikkodudogrula = trim(strip_tags($_POST['guvenlikkodudogrula']));
$sessional = $_SESSION["kod"];


/* if(!empty($_SESSION["kod"]) AND ($guvenlikkodudogrula == $_SESSION["kod"])) { */
if($guvenlikkodudogrula != $sessional) {
?>

<div class='hatali-kullanicigirisi-uyarisi'>
<?php
echo ("Güvenlik kodu yanlış girilmiş olabilir <br> Lütfen Tekrar Deneyiniz <br> Giriş Formu'na Yönlendiriliyorsunuz");
header("Refresh:2; url=giris-formu-guvenlik.php");
?>
</div>

<?php
$_SESSION["guvenlikgirisi"] += 1;
if ($_SESSION["guvenlikgirisi"] > 2) {
header("Location:engellenmis.php");
}

/* header("Refresh:2; url=giris-formu-guvenlik.php"); */
} else {


$girissorgusu = "SELECT * FROM kullanicilar WHERE kullanicilar_kullaniciadi = '$kullaniciadi' AND kullanicilar_sifre = '$kullanicisifre'";
$girissorgu = mysqli_query($db, $girissorgusu);
$sonuc = mysqli_fetch_array($girissorgu);

if(($sonuc['kullanicilar_kullaniciadi'] == $kullaniciadi) AND ($sonuc['kullanicilar_sifre'] == $kullanicisifre)) {
$_SESSION['adi'] = $sonuc;
$_SESSION['sifresi'] = $sonuc;

if(!empty($_POST['benihatirla'])) {
$cerez = trim(strip_tags($_POST['benihatirla']));
$cerezadi = "kullanicicerezi";
$cerezdegeri = "kullanicicerezsifre";
setcookie($cerezadi, $cerezdegeri, time() + (86400), "/"); // 86400 = 1 day
} else {

}

header("Location:index.php");
} else {
?>
<div class='hatali-kullanicigirisi-uyarisi'>
<?php
echo "<center><img src='images/onayhataresimleri/unlem.png'></center>";
echo ("Giriş Bilgileriniz Hatalı <br> Lütfen Tekrar Deneyiniz <br> Giriş Formu'na Yönlendiriliyorsunuz");
header("Refresh:2; url=giris-formu.php");
}
?>
</div>
<?php
}
}
?>