Получение сообщения об ошибке перед вводом текста в текстовое поле

В коде ниже я получаю сообщение об ошибке 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.";
}

0

Решение

Вы должны разделить свое состояние на две части 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.";
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]