praymontana
@praymontana
Начинающий, туповат.

Почему никогда не выполняется первое условие?

Задание: считать данные из формы, и если были заполнены все поля, форма убирается и выводится сообщение с введенными данными. Иначе -- вывод сообщения и появление формы вновь.
Однако даже если заполнить все поля, у меня все равно выполняется только elseif. Что могло пойти не так? var_dump() указывает, что поля заполнены, echo (empty($_POST)) говорит о том, что он непустой.

<form action="" method="POST">
    <input type="text" name="name" placeholder="Введите имя..."> <br> <br>
    <input type="text" name="age" placeholder="Введите возраст..."> <br> <br>
    <textarea name="message" placeholder="Введите текст..."></textarea> <br> <br>
    <input type="submit" name="submit">
</form>

<?php
    var_dump($_POST);

    if (!empty($_POST['name']) and !empty($_POST['age']) and !empty($_POST['text']))
    {
        $name = strip_tags($_POST['name']);
        $age = strip_tags($_POST['age']);
        $text = strip_tags($_POST['text']);

        echo 'Привет, '.$name.'<br>';
        echo 'Вам '.$age.' лет <br>';
        echo 'Ваше сообщение: '.$text;
    }
    elseif ((empty($_POST['name']) or empty($_POST['age']) or empty($_POST['text'])) and (!empty($_POST)))
    {
        echo "Some fields are still empty. Try entering again";
    }
?>
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
t-alexashka
@t-alexashka
Сразу пишу legacy код
у вас проверка на поле text есть empty($_POST['text']) а самого поля с таким именем в форме нету
Ответ написан
neuotq
@neuotq
Прокрастинация
У вас в форме нет ничего что передаёт $_POST['text'], текстареа у вас с именем message, поэтому если вы перепутали то замените на $_POST['message'].
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы