За последние 24 часа нас посетили 33479 программистов и 1693 робота. Сейчас ищут 952 программиста ...

Проверка данных на "пустоту"

Тема в разделе "PHP для новичков", создана пользователем antiv89, 19 май 2010.

  1. antiv89

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

    С нами с:
    3 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    Проверка переменных на "пустоту"
    Если пользователь оставил пустые поля, то должно выводиться сообщение, но почему-то данная конструкция не срабатывает. Проверяется только первая переменная $_POST['fio']
    PHP:
    1. if ($_POST['fio'] == "" and $_POST['pass'] == "" and $_POST['datepass'] == "") {
     
  2. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    попробуйте or вместо and
     
  3. antiv89

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

    С нами с:
    3 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    При использовании or для того, чтобы все выражение было true, достаточно чтобы хотябы одно условие выполнилось. Поэтому, к сожалению он мне не подойдет.[/list]
     
  4. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    наверное, не так понял, что вам нужно. поставьте перед условием var_dump($_POST); посмотрите, что у вас в массиве вообще есть.
     
  5. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    PHP:
    1. <?php
    2. $fio = isset($_POST['fio'])?$_POST['fio']:null;
    3. $pass = isset($_POST['pass'])?$_POST['pass']:null;
    4. $datepass = isset($_POST['datepass'])?$_POST['datepass']:null;
    5. $err = array();
    6.  
    7. if(empty($fio)) $err[] = 'ФИО';
    8. if(empty($pass)) $err[] = 'pass';
    9. if(empty($datepass)) $err[] = 'datepass';
    10.  
    11. $err = implode('<br>',$err);
    12. echo $err;
    13. ?>
    А если нужно проверить, не пусты ли все эти поля вместе то типа так:
    if(count($err) == 0) echo 'Все поля заполнены';
    Эту строчку вставлять до implode();
     
  6. antiv89

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

    С нами с:
    3 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    PHP:
    1. $fio = isset($_POST['fio'])?$_POST['fio']:null;
    Распишите, пожалуйста, эту строку. Ничего в ней не пойму...

    Почему нельзя просто взять переменную $_POST['fio'], без проверки?
     
  7. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    antiv89
    Можно эту строчку "перевести" как:
    PHP:
    1.  
    2. <?php
    3. if(isset($_POST['fio'])) $fio = $_POST['fio'];
    4. else $fio = '';
    если тебе так проще для понимания.
    Проще работать с переменной, а не постоянно с ПОСТ-массива чтото доставать.

    МОжно и без проверки. Но ты ж всеравно будешь эти данные добавлять в файл или базу и всеравно придется проверять.