• 21-05-2020, 22:31:42
    #1
    Arkadaşlar php de karşılaştığım bir sorun hakkında yardım istiyorum . 2 tane input alanı oluşturup şifre doğrulama yapacağım hatta yaptımda fakat şöyle bir sorun var

    <form action="#" method="POST">
    <input type="text" class="form-control" name="password1" id="phone" placeholder="Şifrenizi giriniz">
    <input type="text" class="form-control" name="password2" id="fax" placeholder="Şifrenizi doğrulayınız">
    <button name="kullanicikaydet">Kayıt ol</button>
    </form>
    
    
    
    <?php
    
    echo $kullanici_password1=$_POST['password1']; echo "<br>";
    
    echo $kullanici_password2=$_POST['password2']; echo "<br>";
    
    if ($kullanici_password1==$kullanici_password2) {
    echo "doğru";
    
    
    } else {
    
    echo "yanlış";
    
    }
    
    
    
    ?>
    Sayfaya gittiğim zaman if içindeki kodlar inputa değer vermeden direk çalışmaya başlıyor ve şöyle bir hata çıkıyor:

    [B]Notice[/B]: Undefined index: password1 in [B]C:\xampp\htdocs\index.php[/B] on line [B]11[/B]
    
    
    [B]Notice[/B]: Undefined index: password2 in [B]C:\xampp\htdocs\index.php[/B] on line [B]13[/B]
    
    doğru
    Demek istediğim inputa şifre girmeden bu kodlar çalışmasın bir şifre girip butona basınca doğru mu yanlışmı desin...
  • 21-05-2020, 22:33:24
    #2
    Kodlarınızı aşağıdaki if bloğu arasına alın:
    if(isset($_POST(“kullanicikaydet”)){
    kodlar
    }
  • 21-05-2020, 22:36:03
    #3
    if ($kullanici_password1==$kullanici_password && strlen($kullanici_password1) > 5) {
    buradaki 5 ile de minimum password uzunluğunuzu 6 olarak belirlemiş olduk
  • 21-05-2020, 22:37:52
    #4
    Php tagının başına if($_POST[ ... Diye başla yani sifre1 ve sifre2 post edildiyse.....
    Cepten ancak bukadar yardimci olabiliyorum. Umarım anladınız
  • 21-05-2020, 22:38:02
    #5
    Sayfayı ilk açtığınızda formunuz post edilmemiş oluyor ve siz password1 değerini yazdırmaya çalışıyorsunuz. Berkay beyin söylediği kodları kullanarak form post edildikten sonra kontrol işlemini gerçekleştirebilirsiniz.
  • 21-05-2020, 22:47:49
    #6
    <input type="text" class="form-control" name="password1" id="phone" placeholder="Şifrenizi giriniz" required>
    <input type="text" class="form-control" name="password2" id="fax" placeholder="Şifrenizi doğrulayınız" required>
    tarayıcı üzerinde sorunu çözecektir. (Güncel tarayıcılar için)

    Bu kod gereksiz öğeler içeriyor.
    echo $kullanici_password1=$_POST['password1']; echo "<br>";
    echo $kullanici_password2=$_POST['password2']; echo "<br>";

    Bunun yerine;
     $minnumber = 4; // en az kaç karaktere izin varsa
    $kullanici_password1 = ( isset($_POST['password1']) && strlen($_POST['password1']) >= $minnumber ) ? $_POST['password1'] : false;
    $kullanici_password2 = ( isset($_POST['password2']) && strlen($_POST['password2']) >= $minnumber ) ? $_POST['password2'] : "";
    
    if ( $kullanici_password1 && $kullanici_password1==$kullanici_password2 ) {
    
    } else {
    
    }
  • 21-05-2020, 22:48:07
    #7
    Çok teşekkür ediyorum yardımlarınız için sorun halloldu