проверка php, если форма отправлялась с нулевым полем - PullRequest
0 голосов
/ 26 сентября 2011

Как видно из названия, я пытаюсь выяснить, как проверить, есть ли в форме какие-либо пустые записи после нажатия кнопки отправки.

if(isset($_POST['submit']) && ($selected == ''|| $text == '' || $email == ''))
{
  // *do things*
}
else{
  //*more things*
}

это неправильно?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

Что вы можете сделать, это перебрать переменные $ _POST. Исключите те, в которых вы не заинтересованы, и сделайте что-то вроде:

$allIsOk = true;
foreach ($_POST as $index => $value) {
  if (strlen($value)<1) {
    $allIsOk = false;      
  }
}

... и тогда вы делаете свой выбор на $ allIsOk.

Этот подход по двум причинам:

  1. С предложением выше, вам нужно объединить чеки, так как empty () вернет true для 0 или даже "0" и может вызвать тряску головы проблемы.
  2. При таком подходе вы можете добавлять параметры без делая огромное заявление если

Конечно, это всего лишь идея. Всегда разумно проверять документацию. Кроме того, вы можете заменить цикл foreach вызовом array_walk, чтобы сделать вещи более изящными (особенно начиная с PHP 5.3 и далее). ; -)

Удачи!

PS Кроме того, чтобы выяснить, был ли ваш сценарий вызван действием POST, вместо того, чтобы учитывать элемент submit, я предлагаю вам использовать глобальную переменную $ _SERVER. http://php.net/manual/en/reserved.variables.server.php Просто проверьте параметр REQUEST_METHOD.

Итак, вы можете иметь:

if ('POST' == $_SERVER['REQUEST_METHOD']) {

  // It's ok for these to be null - or empty
  $exclude = array('submit', 'other_param');
  $allIsOk = true;
  foreach ($_POST as $index => $value) {
    if (!in_array($index, $exclude) && strlen($value)<1) {
      $allIsOk = false;      
    }
  }
}

if ($allIsOk) {
  // Do Something
} else {
  // Do Something Else
}
2 голосов
/ 26 сентября 2011

Вы бы ссылались на них так же, как вы обрабатывали кнопку отправки.

То есть: $_POST['input_name']

Оттуда проверьте это с помощью соответствующей функции: isset(), empty(), is_null() (хотя переменные формы редко встречаются как null)

Я бы также рекомендовал вам прочитать внешние переменные PHP .

...