Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка заполнения поля формы с помощью empty().
 
 автор: Ramundo   (25.10.2016 в 21:56)   письмо автору
 
 

Гуглил сейчас по поводу проверки формы на заполнение, и на многих форумах пишут, что
для этого существует функция empty().

Но ведь она, эта функция, считает поле с нулем за пустое, а поле, где кроме пробелов ничего нет, за
заполненное...
Второй случай можно решить с помощью trim(), но, мне кажется, это полумера, ведь не в каждом поле нужно чистить "левые" пробелы .
В случае с нулем вообще дичь ) Я преставляю, как сижу на сайте правоохранительных органов, там в форме есть поле "Введите количество Ваших уголовных нарушений". И ты такой вводишь 0, а тебе хопааааа, выдают: "Вы не заполнили количество нарушений) .

Очевидно , что я чего-то не понимаю, объясните пожалуйста, как решить эти проблемы с empty , и если не его использовать, то что?

  Ответить  
 
 автор: confirm   (26.10.2016 в 02:21)   письмо автору
 
   для: Ramundo   (25.10.2016 в 21:56)
 

А зачем левые, да и правые пробелы, какую существенную информацию они могут нести? А для того чтобы учитывать 0, серверный сценарий "знает", что за тип данных у каждого поля, и соответственно проверяет их. А чтобы не пропускать пустые поля, это trim, и empty совсем не обязательно, в РНР много инструментов, и на empty свет клином не сошелся.

  Ответить  
 
 автор: ramundo   (26.10.2016 в 21:45)   письмо автору
 
   для: confirm   (26.10.2016 в 02:21)
 

Спасибо за разъяснение, теперь все понятно. Меня вводило в заблуждение то, что очень часто тычут на это самое empty в темах о проверке заполнения формы.

  Ответить  
 
 автор: confirm   (27.10.2016 в 03:48)   письмо автору
 
   для: ramundo   (26.10.2016 в 21:45)
 

Мало ли чего пишут, пишут примеры, а думать и использовать инструментарий языка нужно самому.

<?
$data 
array_map('trim'$_POST);
if(
$empty array_intersect($data, [''])) {
    
//$empty содержит пустые поля формы
}

  Ответить  
 
 автор: Deed   (28.10.2016 в 08:31)   письмо автору
 
   для: confirm   (27.10.2016 в 03:48)
 

in_array "дешевле", не так ли?

  Ответить  
 
 автор: confirm   (28.10.2016 в 14:00)   письмо автору
 
   для: Deed   (28.10.2016 в 08:31)
 

Чего? Причем тут In_array, вы понимаете смысл написанного?

  Ответить  
 
 автор: Deed   (29.10.2016 в 11:07)   письмо автору
 
   для: confirm   (28.10.2016 в 14:00)
 


 <?
$data 
array_map('trim'$_POST);
if(
in_array(''$data)) {
    
//Зачем ему перечень пустых полей? А так - нашли пустое и сразу сообщили об этом. array_intersect же проходит весь массив до конца.

  Ответить  
 
 автор: confirm   (29.10.2016 в 16:14)   письмо автору
 
   для: Deed   (29.10.2016 в 11:07)
 

Еще раз - вы смысл этого понимаете?

<?
if($empty array_intersectarray_map('trim'$_POST), [''])) { 
    
//$empty содержит пустые поля формы 
}

  Ответить  
 
 автор: Deed   (29.10.2016 в 20:23)   письмо автору
 
   для: confirm   (29.10.2016 в 16:14)
 

ЗАЧЕМ ЕМУ МАССИВ С ИНДЕКСАМИ-ПУСТЫМИ ПОЛЯМИ?
Ему нужно просто знать, что какое-то поле пустое.
Не?

  Ответить  
 
 автор: confirm   (30.10.2016 в 01:08)   письмо автору
 
   для: Deed   (29.10.2016 в 20:23)
 

Из чего сделано заключение, что ему надо только наличие пустого?

Вопрос стоит о самом применении empty(), а для этого надо проверять каждый ключ отдельно и использование in_array() по сути не далеко от empty(). Прием данных формы, это диалог с клиентом, и сервер обязан сообщать об ошибках. А array_intersect($array, ['']), это не массив с пустыми полями, а ключи по которым сервер можно сообщить клиенту в каких полях формы допущены ошибки.

И только если вам по барабану что и где, можете применять in_array().

  Ответить  
 
 автор: Deed   (30.10.2016 в 09:29)   письмо автору
 
   для: confirm   (30.10.2016 в 01:08)
 

Ну да. Я ж про то и говорил.
Все нормально.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования