php doğrulama

4 Cevap php

i teslim sayfa var in html. i form verilerini gönderdiğinizde, bu veritabanındaki verileri ekler bir php sayfasına gider.

benim soru nasıl ben html sayfasındaki veri javascript kullanmadan null veya boş olmadığından emin miydiniz? Bu php yapılabilir yine de var mı? teşekkürler!

4 Cevap

Her zamanki gibi kontrol yapıları kullanılır:

$non_empties = array('name', 'email', 'address');

foreach ($non_empties as $field) {
    if (! isset($_POST[$field]) || $_POST[$field] == '') {
        show_error("Please fill your $field, thank you.");
    }
}

$db->insert();

Daha gelişmiş bir örnek:

// Defined in your library
function validate_as_non_empty(Array $non_empties) {
    foreach ($non_empties as $field) {
        if (! isset($_POST[$field]) || $_POST[$field] == '') {
            throw new Exception("Please fill your $field, thank you.");
        }
    }
}

// Defined in your library
function validate_as_foo(Array $arr) { ... }

// Your request handler
try {
    validate_as_non_empty(array('name', 'address'));
    validate_as_foo(array('email'));
    $db->insert();
} catch (Exception $e) {
    show_error($e->getMessage());
}

Doğrulama yapmak için en az milyon yolu vardır. Genellikle güvenmek çerçevesinin bazı tür var. Yukarıdaki örnekler, sadece ilham için verilmiştir.

Php sayfanın en üstünde, (formun eylem niteliğinde bağlantılı sayfa) koymak:

if (isset($_POST['submit_check']) && strlen($_POST['whatever'])) { // submit_check is a hidden form field
    insert_to_db();
    header('Location: success.php'); // redirect to another page to prevent double-submits
    exit;
}

Yani html gibi görünebilir:

<form action="" method="post"> 
    <input type="text" name="whatever"/>
    <input type="hidden" name="submit_check" value="1"/> 
</form>

boş eylem değeri aynı sayfaya göndermek anlamına gelir, ama isterseniz başka bir sayfaya gönderebilir.

Bu gibi PHP dosyası $ _POST süper küresel kullanarak gönderilen veri alma:

$ _POST POST-ed ediliyor her HTML öğesi için ['Isim']. Eaxmple için, HTML:

<input type="text" name="firstname" />

Sonra regex, isset, vb, PHP kullanarak verileri doğrulamak ve buna göre ya bir başarı sayfasına, ya da geri HTML formu yönlendirmek.

Ayrıca Ajax (aynı PHP doğrulama sadece veri aktarım modeli biraz farklı, geçerli olacaktır) kullanarak aynı şeyi yapabilirsiniz

Ne soran olursa, 'ben veri olmadan javascript istemci tarafında geçerli olduğundan emin olabilirsiniz' sonra cevap hayır.

Ama yapmak istediğiniz tüm veritabanına eklemeden önce emin sonra kesinlikle, verileri doğrulamak için yapmak ise.

foreach ($_POST as $key=> $value) {

  switch ($key) {
   case 'my_value_name':
      //test $value is not null and other validation;
      //insert into database function
      break;

   ...

  }

}