Nasıl sayfa yenilendiğinde MYSQL veritabanına boş bilgi ekleyerek bir PHP formu durdurabilirim?

5 Cevap php

Gerekirse ben sadece kod ihtiyacım olacak bilmek istedim ve nerede veritabanına girilen boş alanları içeren bir form durdurmak için koyun yok kodunu yerleştirir.

Bir kod parçacığı duyacağız. Bu soru bana bildirin çok belirsiz olabilir.

Ben PHP ve mysql kullanıyorum.

5 Cevap

Sen veritabanına takmadan önce form içeriğini kontrol etmelisiniz.

Bu içeriği boş olup olmadığını kontrol etmek de önemlidir. Değişkeni var ama içerik belki boş olabilir. Alan isteğe olmadıkça, istemediğiniz bir şeydir.

Böyle bir şey:

<?php
    if (isset ($_POST['field']) && strlen($_POST['field'] >0))
    {
        insert_to_database();
    }
?>
if(isset($_POST['formfield'])) {
    //add to db
}
else {
    //don't add to db
}

http://www.php.net/isset

Eğer değilse gönderilen form geçerli olup olmadığını kontrol edin, veritabanına içine sokmayın.

Diğerleri önerilen gibi alanların boş olup olmadığını kontrol yanı sıra, tamamen bir sayfa yenileme çalıştırılan sorguları kaçınmak isteyebilirsiniz. Bunun için ben işlem yapmak ve bitirmek zaman ihtiyaç ne olursa olsun görüntüler son sayfaya kullanıcıyı yönlendirme "ara" komut dosyalarını kullanın: tüm DB işlem kodu, çünkü bu şekilde son sayfayı yenileyerek veritabanı üzerinde hiçbir şey yok el formu yeniden sürece başka komut ulaşmak olmaz.

Sayfa yenileme önlemek için, bir çerez yararlı olacaktır; Boş alanları kontrol etmek için, isset ()

<?php
//in the top of the page, BEFORE every output!
if(isset($_COOKIE['givemeaname'])){
    setcookie('givemeaname', 'some foo&bar data, maybe a timestamp?', time()+3600);
    //now check the mandatory fields and
    //do whatever you want with your db
}else{
    //do nothing, the page is been refreshed!
}
//do whatever you have to do now!
?>

Eğer çerez, sayfanın üst db-hakkında kodu taşımak sevmiyorum Eğer bir Boole VAR değerlendirebilen kontrol, ve sonra sadece yol seçmek ... bunu Chet.

Yerine çerez sizin için daha kolaylık .. ama davranış açık olmalıdır, sen, bir oturumu kullanabilirsiniz ;)

Bir POST form ile sayfayı isabet bile, sayfayı yenilemek için istendiğinde bazı tarayıcı tekrar bilgiyi yeniden isteyin (ve tembel kullanıcılar genellikle okumadan 'evet' tıklayın ya da anlamak becose Bu çözüm, size tüm defa kurtaracak ne demek ;)