if (isset($_POST['var1']) && isset($_POST['var2']) && isset($_POST['var3']))т.е. перечисляются все переменные из формы (имена переменных я заменил). Конечно можно заменить (и наверно даже нужно) на
if (isset($_POST['var1'], $_POST['var2'], $_POST['var3']))Вопрос немного в другом: я до этого проверял так (знакомый программер посоветовал):
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Какой способ лучше? Может, есть какие-то подводные камни (например связанные с безопасностью) ??
Спустя 30 минут, 41 секунда (9.09.2010 - 06:54) Michael написал(а):
Ваш последний способ лучше по сравнению с предыдущими.
Я делаю так:
Я делаю так:
if (!empty($_POST))
Спустя 27 минут, 16 секунд (9.09.2010 - 07:21) twin написал(а):
Задачи то у этих скриптов разные...
Этот
В обоих далее предложенных вариантах скрипт начнет работать при наличии хотя бы одной.
Этот
if (isset($_POST['var1'], $_POST['var2'], $_POST['var3']))ставит обязательным условием наличие всех переменных.
В обоих далее предложенных вариантах скрипт начнет работать при наличии хотя бы одной.
Спустя 3 часа, 19 минут, 21 секунда (9.09.2010 - 10:40) Basili4 написал(а):
о я делал так
$arr=$_SERVER['REQUEST_METHOD'] == 'POST'?$_POST:$_GET;
$a=isset($arr['a'])?$arr['a']:null;
..............
unset($arr);
Спустя 5 часов, 35 минут, 26 секунд (9.09.2010 - 16:16) Invis1ble написал(а):
А при каких условиях может не оказаться какой-либо переменной? Я вот никак не могу представить себе такую ситуацию.. Вроде, когда юзер нажимает submit, то отсылаются все переменные, хотя некоторые могут быть пустые...
Спустя 19 минут, 48 секунд (9.09.2010 - 16:36) twin написал(а):
Вот именно.
Спустя 3 минуты, 25 секунд (9.09.2010 - 16:39) Invis1ble написал(а):
Цитата (twin @ 9.09.2010 - 13:36) |
Вот именно. |
т.е. проверять наличие всех переменных смысла нет, я правильно понял?
Спустя 6 минут, 31 секунда (9.09.2010 - 16:45) silius написал(а):
тебе их нужно обработать, чтобы в них не подсунули фальш
Спустя 13 минут, 49 секунд (9.09.2010 - 16:59) Invis1ble написал(а):
silius обработаь-то понятно, они итак обрабатываются. Даже если будет false, все равно переменные уже существуют, а логика проверки заключается именно в этом
Спустя 3 минуты, 50 секунд (9.09.2010 - 17:03) Гость_Michael написал(а):
Цитата |
А при каких условиях может не оказаться какой-либо переменной? |
из всех кнопок type="submit" на форме передастся только та, на которую нажали.
Спустя 5 минут, 6 секунд (9.09.2010 - 17:08) Invis1ble написал(а):
Гость_Michael
ну а если не учитывать сами кнопки submit, остальные-то переменные все передаются, правильно?
ну а если не учитывать сами кнопки submit, остальные-то переменные все передаются, правильно?
Спустя 55 минут, 11 секунд (9.09.2010 - 18:03) Гость_Michael написал(а):
я всегда уже под конкретный случай проверяю isset-ом. А ты возьми создай формочку со всеми типами данных и проверь как передадутся если не выбрано/не щелкнуто на этих эл-тах. Например type="button" передается?
Спустя 5 минут, 50 секунд (9.09.2010 - 18:09) Invis1ble написал(а):
ну да, ну да... В общем надо специфику учитывать и затачивать под конкретные цели, но в общем случае (при передаче например только текстовых полей) достаточно $_SERVER['REQUEST_METHOD']
Спустя 4 минуты, 51 секунда (9.09.2010 - 18:14) Michael написал(а):
Конечно этого достаточно. Если под перечислением элементов подразумевалось типа защита от левых post запросов, то это не так делается.
Спустя 29 минут, 16 секунд (9.09.2010 - 18:43) Invis1ble написал(а):
Michael
немного непонял, что подразумевается под "левыми post запросами"?
немного непонял, что подразумевается под "левыми post запросами"?
Спустя 4 минуты, 35 секунд (9.09.2010 - 18:48) Rivalryzerg написал(а):
Invis1ble, любую форму можно подделать и прислать вместо 10 полей всего 3 или 20.
Спустя 1 минута (9.09.2010 - 18:49) DedMorozzz написал(а):
Открой для себя плагин "Tamper Data". Увидаешь возможности Данные можно менять, после того, как нажал сабмит и они "по идеи" уже ушли...
Спустя 29 минут, 58 секунд (9.09.2010 - 19:19) Invis1ble написал(а):
DedMorozzz
спасибо за открытие глаз... Не знал, не знал...
спасибо за открытие глаз... Не знал, не знал...
Спустя 3 часа, 33 минуты, 40 секунд (9.09.2010 - 22:53) twin написал(а):
Да я вообще не о том... И в нормальных формах не все переменные могут оказаться. Возьмите чекбокс тот же.
Если допустим нужно, чтобы все поля были заполнены (валидация своего рода), то не прокатит вариант
Нужно все проверить. Разные задачи это.
Если допустим нужно, чтобы все поля были заполнены (валидация своего рода), то не прокатит вариант
if(isset($_POST))
Нужно все проверить. Разные задачи это.
Спустя 45 минут, 38 секунд (9.09.2010 - 23:38) Invis1ble написал(а):
twin
это понятно, я просто не знал что данные еще и подделать можно..
это понятно, я просто не знал что данные еще и подделать можно..
Спустя 8 часов, 11 минут, 23 секунды (10.09.2010 - 07:50) Michael написал(а):
Цитата (Invis1ble @ 9.09.2010 - 17:43) |
Michael немного непонял, что подразумевается под "левыми post запросами"? |
Например трухацкер вместо того чтобы зайти к тебе на сайт, заполнить что надо, и нажать "Разместить комментарий" создаст у себя страничку, в ней формочку где action указывает на твою площадку где ты обрабатываешь сабмит своей формы и начнет клацать (или автоматически curl-ом).
Спустя 8 часов, 40 минут, 7 секунд (10.09.2010 - 16:30) Invis1ble написал(а):
Michael
Да, я понял. Буду учитывать
Да, я понял. Буду учитывать
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль