PHP form doğrulama sorunu gönderin

3 Cevap php

Ben formu göndermek için deneyin ve ben yıl alanına hiçbir şey girmemiş, her zaman ben Incorrect year! nasıl hala bir yıl girmek zorunda kalmadan formu gönderebilirsiniz olsun. Diğer bir deyişle boş yıl alanını terk ve bir uyarı almıyorum?

Burada PHP kodudur.

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
} else {
    $year = NULL;
}

if($year == NULL) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

3 Cevap

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
} else {
    $year = false;
}

if ($year === false) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

OR (Eğer başka bir yerde YILINI set vermedi)

if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
}

if (!isset($year)) {
     echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}
if(preg_match('/^\d{4,}$/', $_POST['year'])) {
    $year = mysqli_real_escape_string($mysqli, $_POST['year']);
} else if(empty($_POST['year'])){
    $year = '';
} else {
    $year = null;
} 

if($year == NULL) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

Belki de ben yanlış değilim, ama bu ne istediğiniz gibi geliyor.

Hey sen sadece bu kısmını alabilir ve bu alanı boş olmak göndermek için izin yankı dışarı alacak

if($year == NULL) {
    echo '<p class="error">Incorrect year!</p>';
} else {
    //do something
}

Ben veritabanına boş gitmek için izin tavsiye etmem. Belki de sadece sunucu veya kullanıcı bunu doldurun yoktu anlam varsayılan değeri varsayılan tarihini kapmak. Bu hatayı almaya ama yine veritabanı alanında bir şeyler bırakacaktı.