За последние 24 часа нас посетили 17487 программистов и 1279 роботов. Сейчас ищут 1449 программистов ...

Пустое значение в переменной $_POST['...']

Тема в разделе "Вопросы от блондинок", создана пользователем run, 18 апр 2016.

  1. run

    run Активный пользователь

    С нами с:
    18 апр 2016
    Сообщения:
    2
    Симпатии:
    0
    Доброго дня, прошу понять и простить..Первый пост на форуме
    Имею form
    HTML:
    1. <form method="post" action="action.php">
    2. <p>Введите имя:</p>
    3. <input type="text" name="username">
    4. <p><input type="submit"></p>
    5. </form>
    и action.php
    PHP:
    1. <?php
    2. if (isset($_POST['username'])){
    3.     echo "Hello ",$_POST['username'];
    4. }
    5. else {
    6.     echo "Вы не ввели имя";
    7. }
    8. ?>
    Проблема:
    Даже если отправить данные с пустым полем username, условие идет по первой ветке, которая подразумевает наличие $_POST['username']
    Вывод:
    Hello
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    там запятая лишняя (;
     
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Метод isset() проверяет существует ли такая переменная, если требуется проверить на пустоту, то логичнее использовать метод empty().
    http://php.net/empty
    http://php.net/isset
    --- Добавлено ---
    Так тоже можно успешно производить конкатенацию.
    --- Добавлено ---
    т.е. не совсем конкатенация, но это не ошибка.
     
    run нравится это.
  4. run

    run Активный пользователь

    С нами с:
    18 апр 2016
    Сообщения:
    2
    Симпатии:
    0
    Кажется разобрался, исправил
    PHP:
    1. <?php
    2. if (empty($_POST['username'])){
    3.     echo "Вы не ввели имя";
    4. }
    5. else {
    6.     echo "Hello ",$_POST['username'];
    7. }
    8. ?>
    Спасибо :)