[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: isset и empty
maximka787
Ребят, объясните один раз. Делаю всегда во всех скриптах двойную проверку
if(isset($_POST['myvar']) && !empty($_POST['myvar']))
{
// запускаем обработку
}

т.е. надо чтобы переменная $_POST['myvar'] была введена всегда и не равна нулю моя конструкция подходит?

полез в мануалы официальные и там чушь какая-то, так усложнили все. или достаточно одного условия !empty($_POST['myvar'])?




Спустя 4 часа, 39 минут, 51 секунда (14.03.2012 - 18:46) twin написал(а):
Достаточно.

Спустя 37 минут, 19 секунд (14.03.2012 - 19:23) Winston написал(а):
Цитата (maximka787 @ 14.03.2012 - 13:06)
полез в мануалы официальные и там чушь какая-то, так усложнили все

Значит не туда полез.
http://www.php.net/manual/ru/types.comparisons.php
Таблица "Сравнение типов $x и результатов функций PHP, связанных с типами"

Спустя 11 минут, 25 секунд (14.03.2012 - 19:35) alex12060 написал(а):
Тебе, чтобы понять полностью, нужно для начала выяснить, какие существуют типы данных.

Спустя 20 минут, 2 секунды (14.03.2012 - 19:55) caballero написал(а):
if( strlen($_POST['myvar']) >0 )
на все случаи жизни

Спустя 30 минут, 42 секунды (14.03.2012 - 20:25) inpost написал(а):
caballero
а как же warning, переменная не существует?

maximka787
А если переданы данные как 0 ? !empty вернёт пустоту, скрипт не пройдет.
Правильно сделать проверки на isset, и выполнение скрипта запустить.
Внутри сделать проверку введённых данных, вот если данные правильно введены, или пустые - тогда выводить информацию и скрипт дальше не пропускать!

Спустя 1 час, 8 минут, 24 секунды (14.03.2012 - 21:34) ADiel написал(а):
Всегда делаю isset, а потом empty.
Считаю это правильным подходом.
Можно написать функцию для упрощения, которая вернет результат.
Например notnull($var)

Спустя 1 час, 24 минуты, 17 секунд (14.03.2012 - 22:58) walerus написал(а):
Я такую связку использую
if( isset( $_POST['myvar'] ) && trim( $_POST['myvar'] ) != '' )
{
// Тут если нужно проверка на то что введено, а уж потом....

// запускаем обработку


}


!empty($_POST['myvar']) - не использую, ( если конечно не массив принимается ), т.к. пробел спокойно пройдет эту проверку.

Спустя 10 часов, 17 минут, 56 секунд (15.03.2012 - 09:16) twin написал(а):
Хрень это всё. Читайте внимательнее:
Цитата
надо чтобы переменная $_POST['myvar'] была введена всегда и не равна нулю

Тут вполне достаточно !empty($_POST['myvar']) и нечего мудрить.

Спустя 2 часа, 25 минут, 12 секунд (15.03.2012 - 11:41) inpost написал(а):
Отправлена ли была форма = isset , которая побуждает запуск скрипта на работу с отправленной формой.
Скрипт же проверяет данные, если empty, значит возвращать ошибку надо в форму с текстом: "не заполнено поле".

Спустя 11 часов, 11 минут, 11 секунд (15.03.2012 - 22:52) walerus написал(а):
twin - Ты конечно молодес ), но что значит - "Хрень это всё" ?, ты считаешь что "пробел" - это адекватно введенные данные ? ), я думаю - нет.

Спустя 24 минуты, 43 секунды (15.03.2012 - 23:17) inpost написал(а):
walerus
А ты ручками пишешь трим каждый раз? Ай-ай-ай smile.gif Не устал?

Спустя 6 часов, 58 минут, 32 секунды (16.03.2012 - 06:16) twin написал(а):
Цитата (walerus @ 15.03.2012 - 19:52)
twin - Ты конечно молодес ), но что значит - "Хрень это всё" ?, ты считаешь что "пробел" - это адекватно введенные данные ? ), я думаю - нет.

Я считаю, что нужно делать так, как требует техническое задание. Где у ТС хоть полслова про пробел?

Спустя 12 часов, 22 минуты, 19 секунд (16.03.2012 - 18:38) walerus написал(а):
inpost
Цитата
walerus
А ты ручками пишешь трим каждый раз? Ай-ай-ай smile.gif Не устал?

Да, пишу каждый раз когда это необходимо, а ты как поступаешь в данном случае? если пользователь может случайно ввести пробел или просто пропустил поле ?

twin
Цитата
Я считаю, что нужно делать так, как требует техническое задание. Где у ТС хоть полслова про пробел?

Ну раз уж к точности задания придираться относится с четким решением, то где в твоем примере
Цитата
Тут вполне достаточно !empty($_POST['myvar']) и нечего мудрить.
проверка того, что введенные данные не равны нулю?, т.е. если пользователь введет "0", то твоя проверка, благополучно его пропустит.


Спустя 28 минут, 16 секунд (16.03.2012 - 19:06) inpost написал(а):
walerus
А ты подумай, где обычно ты его применяешь, и не прописать ли это в ядре, чтобы каждый раз не бегать за пробелами smile.gif


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.