• 03-09-2014, 16:10:32
    #1
    MErhaba bir forum yaptım ama sorunum şuki

    Formu gönderdiğim tablo ile kayıt yaptırdığım tablo aynı form içi boşsa bile sql kayıt atıyor ben sql tablolara boşsa kayıt almasın gibi bir şey nasıl yapabilirim.

    Forma required koydum boşsa göndermiyor ama sayfayı yenilediğim de boş kayıt gönderiyor.
  • 03-09-2014, 16:29:48
    #2
    Verileri post ederken kontrol ettirmelisin.

    Bunun için isset ve empty fonskiyonlarını kullanabilirsin.

    Örnek ;

    <?php
       if(empty($_POST['R10']) || empty($_POST['CEU'])) {
          echo 'gelen verilerden biri boş.';
       } else {
         echo 'tamam';
       // bu satırda mysql_query fonskyionunuzu çalıştırın.
       }
    ?>
    Kolay gelsin.
  • 03-09-2014, 17:20:51
    #3
    Ben bu şekilde yazıyorum.
    Alıntı
    <?PHP
    $isim = $_POST['isim_soyisim'];
    $bolum = $_POST['bolum'];
    $gsm_no = $_POST['gsm_no'];
    $dakika = $_POST['dakika'];
    $internet = $_POST['internet'];
    $sms = $_POST['sms'];
    $kisa_kod = $_POST['kisa_kod'];
    $kisa_not = $_POST['kisa_not'];
    //Veritabanına dosyaları gönderelim.
    $kaydet = mysql_query("insert into telefon (gsm_id, isim_soyisim, bolum, gsm_no, dakika, internet, sms, kisa_kod, kisa_not) values
    (NULL, '$isim', '$bolum', '$gsm_no', '$dakika', 'internet', '$sms', '$kisa_kod', '$kisa_not')")
    or die("Hata: kayıt işlemi gerçekleşemedi.");
    ?>
    Senin söylemen ile

    Alıntı
    <?php
    if(empty($_POST['isim_soyisim']) || empty($_POST['bolum'])) {
    echo 'gelen verilerden biri boş.';
    } else {
    echo 'tamam';
    // bu satırda mysql_query fonskyionunuzu çalıştırın.
    $kaydet = mysql_query("insert into telefon (gsm_id, isim_soyisim, bolum, gsm_no, dakika, internet, sms, kisa_kod, kisa_not) values
    (NULL, '$isim', '$bolum', '$gsm_no', '$dakika', 'internet', '$sms', '$kisa_kod', '$kisa_not')")
    or die("Hata: kayıt işlemi gerçekleşemedi.");
    }
    ?>
    Yukarıdaki şekilde uyguladım ama bu seferde göndermedi.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 17:20:51 -->-> Daha önceki mesaj 16:56:16 --

    Yokmu yardımcı olacak kimse
  • 03-09-2014, 18:12:35
    #4
    Üyeliği durduruldu
    if($_POST)
    sql kayıt

    ek olarak birşey belirtmek isterim güvenlik önlemleri ile ilgili.
    HTML, JQERY, JS ne biliyim dışarıda tarayıcı ile çalışan kodlarınıza güvenmeyiniz. Onlar ile zorunlu alan yapıyorsunuz ancak saldırganlar direk saldırabilir.

    Yani curl ile bir post yolladımı yine alıcağınız değer boş gelebilir.

    isset var mı
    empty boşmu
    ! yok mu
    $veri="tolga";
    strlen($veri) < 6 //karekter sayısı 5 doğru sonuç

    gibi birde yardım alırken lütfen konunuzu daha açıklayıcı olunuz.
  • 03-09-2014, 18:23:16
    #5
    Ceu adlı üyeden alıntı: mesajı görüntüle
    Verileri post ederken kontrol ettirmelisin.

    Bunun için isset ve empty fonskiyonlarını kullanabilirsin.

    Örnek ;

    <?php
       if(empty($_POST['R10']) || empty($_POST['CEU'])) {
          echo 'gelen verilerden biri boş.';
       } else {
         echo 'tamam';
       // bu satırda mysql_query fonskyionunuzu çalıştırın.
       }
    ?>
    Kolay gelsin.
    tolgatasci adlı üyeden alıntı: mesajı görüntüle
    if($_POST)
    sql kayıt

    ek olarak birşey belirtmek isterim güvenlik önlemleri ile ilgili.
    HTML, JQERY, JS ne biliyim dışarıda tarayıcı ile çalışan kodlarınıza güvenmeyiniz. Onlar ile zorunlu alan yapıyorsunuz ancak saldırganlar direk saldırabilir.

    Yani curl ile bir post yolladımı yine alıcağınız değer boş gelebilir.

    isset var mı
    empty boşmu
    ! yok mu
    $veri="tolga";
    strlen($veri) < 6 //karekter sayısı 5 doğru sonuç

    gibi birde yardım alırken lütfen konunuzu daha açıklayıcı olunuz.
    Anlamadım Nasıl kodlamam gerekiyor.
  • 03-09-2014, 19:55:39
    #6
    Üyeliği durduruldu
    2 döngü düşün

    1 döngüde if ile post verilerini süzerek kontrol etmen
    2 döngüde ise bunlar başarılı ise veri tabanına aktarman

    örnek veri boş mu kontrolü
    if((empty($_POST['bir']))or(empty($_POST['iki'])))
    print("veri bir veya iki boş");
    return false;
  • 08-09-2014, 23:43:22
    #7
    veritabanı tarafında da çözebilirsiniz. eğer phpmyadmin kullanıyorsanız table structure'ına girip ilgili stunlar için NULL özelliğini NOT NULL yaparsanız boş veri geldiğinde satır oluşturmayacaktır.

    ayrıca
    foreach($_POST as $input => $val) {
    if($val == "") $yap="ma";
    }

    ve aşağılarda
    if($yap != "ma") { //yani her değer doluysa
    //insert işleminiz burda
    }

    gibi bi yol kullanabilirsiniz.

    Bu çok basit bi algoritmadır. anlayabileceğinizi umarak yazdım umarım faydası olur.
  • 09-09-2014, 11:48:31
    #8
    bluexpres adlı üyeden alıntı: mesajı görüntüle
    veritabanı tarafında da çözebilirsiniz. eğer phpmyadmin kullanıyorsanız table structure'ına girip ilgili stunlar için NULL özelliğini NOT NULL yaparsanız boş veri geldiğinde satır oluşturmayacaktır.

    ayrıca
    foreach($_POST as $input => $val) {
    if($val == "") $yap="ma";
    }

    ve aşağılarda
    if($yap != "ma") { //yani her değer doluysa
    //insert işleminiz burda
    }

    gibi bi yol kullanabilirsiniz.

    Bu çok basit bi algoritmadır. anlayabileceğinizi umarak yazdım umarım faydası olur.
    Teşekkürler bu şekilde çözdüm.