За последние 24 часа нас посетили 18453 программиста и 1641 робот. Сейчас ищут 1706 программистов ...

Проверка заполнения формы

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

  1. Queebro

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

    С нами с:
    5 май 2011
    Сообщения:
    13
    Симпатии:
    0
    Подскажите, как сделать проверку: заполнены поля формы или нет? Пробовал так:

    index.php
    HTML:
    1. <form action="script.php" method="post">
    2. <input type="text" name="text" />
    3. <input type="submit" />
    4. </form>
    script.php
    PHP:
    1. <?php
    2.  
    3. if ( isset($_POST[text]) )
    4. {
    5. echo "Переменная существует!";
    6. }
    7. else
    8. {
    9. echo "Переменной не существует!";
    10. }
    11.  
    12. ?>
    При нажатии "Отправить" (при незаполненной строке ввода), в конструкции if возвращается Истина.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. if (empty($_POST['text'])) {
    2.     echo 'она пустая';
    3. }
     
  3. Queebro

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

    С нами с:
    5 май 2011
    Сообщения:
    13
    Симпатии:
    0
    Спасибо!
     
  4. Alex_pac

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

    С нами с:
    11 апр 2011
    Сообщения:
    285
    Симпатии:
    1
    Адрес:
    Россия, Тольятти
  5. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Alex_pac
    плохому учишь.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Alex_pac
    с чекбоксом будет косяк. наличие переменной проверяется через isset, через empty ее "пустость" =)
    а ты проверил длинну больше нуля. и какие выводы из этого можно сделать - нипанятна.
     
  7. siiXth

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

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    хрен его знает
    я вообще пишу if($_POST['makaka'])
    :D
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    siiXth
    В данном случае ты получишь такой расклад:
    - если постмакака не существует - ты получишь ворнинг в лог или в морду юзеру и else условия
    - если постмакака существует и равно нулю, пустой строке, null и т.п. - ты получишь else условия. Т.е. при чекбоксе пустом, но в котором галочка стояла - ты пролетишь мимо.

    т.е. если ты ждешь от юзера число, а он допустим ввел ноль - ты пролетишь
     
  9. siiXth

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

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ну да , не всегда конечно
    чекбоксы if($_POST['ckbox']=="on")
    а до этого if isset post submit
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    siiXth
    он может быть и не 'on' =), он может быть чего угодно, в том числе пустая строка.

    короче ты понял, что если ты ждешь пустую строку или нолик - ты проверяй "дословно"
     
  11. Alex_pac

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

    С нами с:
    11 апр 2011
    Сообщения:
    285
    Симпатии:
    1
    Адрес:
    Россия, Тольятти
    отлично.

    form.html



    HTML:
    1. <form action="pro.php" method="POST">
    2. текст <input type=text name=txt size=20><P>
    3. чекбокс1 <input type=checkbox name="chk[]" value="HelloWorld1"><p>
    4. чекбокс2 <input type=checkbox name="chk[]" value="HelloWorld2"><p>
    5. радиобокс1 <input type=radio name=rad value="r1"><p>
    6. радиобокс2 <input type=radio name=rad value="r2"><p>
    7. радиобокс3 <input type=radio name=rad value="r3"><p>
    8. <select name=sel>
    9.     <option>значение1</option>
    10.     <option>значение2</option>
    11.     <option>значение3</option>
    12.     <option>значение4</option>
    13. <input type=submit value="Отправить">
    14. </form>
    15.  
    16.  

    pro.php

    PHP:
    1. <?php
    2.  
    3. if (empty($_POST['txt'])) { print 'пустой txt'; } else { print 'нормальный txt '.$_POST['txt']; }
    4.  
    5. print '<br>';
    6.  
    7. if (empty($_POST['chk'])) { print 'пустой chk'; } else { print 'нормальный chk '.$_POST['chk'][0].' '.$_POST['chk'][1]; }
    8.  
    9. print '<br>';
    10.  
    11. if (empty($_POST['rad'])) { print 'пустой rad'; } else { print 'нормальный rad '.$_POST['rad']; }
    12.  
    13. print '<br>';
    14.  
    15. if (empty($_POST['sel'])) { print 'пустой sel'; } else { print 'нормальный sel '.$_POST['sel']; }
    16.  
    17.  
    и правда empty универсален. [​IMG]