Получение сообщения об ошибке перед вводом текста в текстовое поле - PullRequest
0 голосов
/ 26 апреля 2018

В приведенном ниже коде я получаю сообщение об ошибке Sorry your name is not in correct format даже до того, как введу какой-либо текст.Может кто-нибудь сказать мне, какую ошибку я делаю?

if ((isset($_POST['name'])) and(isset($_POST['email'])) and (filter_var($email, FILTER_VALIDATE_EMAIL)) and (preg_match('/^[A-Za-z0-9\s]+$/', $name))) {

    //if yes, it is writing it into file
    $myfile = fopen("names.txt", "w") or die("Unable to open file!");
    $txt = $name . "\r\n" . $email;
    fwrite($myfile, $txt);

    fclose($myfile);
}
else {
    echo "Sorry, your name is not in correct format.";
}

1 Ответ

0 голосов
/ 26 апреля 2018

Вы должны разделить свое состояние в двух if утверждениях.Первый, чтобы проверить, если что-то было опубликовано.Вторая проверка правильности ввода.Оператор else должен идти после второго if (если ввод недействителен).

if (isset($_POST['name']) && isset($_POST['email'])) 
{
    $name = $_POST['name']; // get data from $_POST
    $email = $_POST['email']; // get data from $_POST
    if (filter_var($email, FILTER_VALIDATE_EMAIL) && preg_match('/^[A-Za-z0-9\s]+$/', $name))
    {
        //if yes, it is writing it into file
        $myfile = fopen("names.txt", "w") or die("Unable to open file!");
        $txt = $name . "\r\n" . $email;
        fwrite($myfile, $txt);
        fclose($myfile);
    }
    else {
        echo "Sorry, your name or email are not in correct format.";
    }
}
...