PHP değişken değeri azalmıyor

MehmetSengul

Picopat
Katılım
10 Eylül 2020
Mesajlar
291
Çözümler
1
Yer
C:\BurdaBiryerde
Daha fazla  
Cinsiyet
Erkek
Meslek
Web Dev.
Merhaba; saatlerdir bu sorunu çözmeye çalışıyorum fakat bulamadım istediğim şey kullanıcı 3 adet giriş yapma hakkı olacak fakat kullanıcı 3 kere yanlış giriş yapınca $kalanhak değişkenim'deki değer azalmıyor nasıl yapabilirim? Her zaman 2'de kalıyor.

Kod:
<?php
$kalanhak = 3;
if(isset($_POST['submit-btn'])){
   

    $k_adi  = $_POST['k_adi'];
    $k_pass = $_POST['k_pass'];
    if($k_adi == "admin" && $k_pass == "5551"){
        echo "<b><font color=green>Başarıyla Hesabınıza giriş yapıldı...</font></b>";
    }
    else{
        echo "<b><font color=red>Hesabınıza giriş yapılamadı lütfen tekrar deneyin</font></b>";
        $kalanhak = $kalanhak - 1;
        echo "<br> Kalan Hakkınız : $kalanhak";
    }

}
else{
    echo "<b><u>Lütfen hesap bilgilerinizi giriniz...</u></b>";
}
?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <table>
        <form action="?" method="POST">
        <tr>
        <td>Username : </td>
        <td><input type="text" name="k_adi"></td>
        </tr>

        <tr>

        <td>Password : </td>
        <td><input type="password" name="k_pass"></td>

        </tr>
        <tr>
            <td><input type="submit" name="submit-btn" value="Gönder"></td>
        </tr>
    </form>
    </table>
   

</body>
</html>
 
Çünkü sayfaya her girildiğinde $kalanhak = 3; yapıp hakkı tekrar 3 yapıyorsun. "$kalanhak" değişkenini deneme hakkı ile değiştirip if sorgusu içinde başka tanımladığın deneme sayısı değişkeninden çıkartarak işlem yapman gerekiyor.
 
Hocam, kodu düzelterek aktarabilirseniz gerçekten çok daha iyi anlayacağım güzel bir şekilde açıkladığınızdan eminim fakat kafam çok bulanık olduğundan anlayamadım.
 
Hocam, kodu düzelterek aktarabilirseniz gerçekten çok daha iyi anlayacağım güzel bir şekilde açıkladığınızdan eminim fakat kafam çok bulanık olduğundan anlayamadım.
Arkadaşın demek istediği `$kalanhak` olarak ayarlanan değişkenin kendisini sayfa her çalıştığında tekrar ettiği için istenilen çıktıyı vermemesi.

Bir Session oluştur ve sayfa her açıldığında onu kontrol et.
PHP:
session_start();

$kalanHak = $_SESSION['KALAN_HAK'] ?? 3;

if(isset($_POST['submit-btn'])){
  

    $k_adi  = $_POST['k_adi'];
    $k_pass = $_POST['k_pass'];
    if($k_adi == "admin" && $k_pass == "5551"){
        echo "<b><font color=green>Başarıyla Hesabınıza giriş yapıldı...</font></b>";
    }
    else{
        echo "<b><font color=red>Hesabınıza giriş yapılamadı lütfen tekrar deneyin</font></b>";
        $_SESSION['KALAN_HAK'] = $kalanHak - 1;
        echo "<br> Kalan Hakkınız : $kalanHak";
    }

}
else{
    echo "<b><u>Lütfen hesap bilgilerinizi giriniz...</u></b>";
}
 

Yeni konular

Geri
Yukarı