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

Jan 12, 2015 16:05

if ($_POST['gender'] == 'Мужщина' ) $gender = 'mr'; else $gender = 'ms';

Leave a comment

Comments 8

killeranimals January 12 2015, 17:25:43 UTC
Вершина мысли :)

Reply


redis January 12 2015, 17:26:34 UTC
Для надежности надо было проверить на вариант "Женчина" :)

Reply


display_none January 12 2015, 17:30:56 UTC
Это не WTF, это обыкновенный нубский говнокод, благо чудесный язык подобные конструкции поощряет.
---

Кстати: потом кто-то сделает автору замечание, и ему придется менять "Мужщина" на "Мужчина" во всех ста сорока семи формочках которые сабмитятся в этот .php файл, я уверен!

Reply

eh0t January 13 2015, 15:31:52 UTC
Подобные конструкции позволяет любой язык, если что ;)

Я не знаю, что двигало в принципе им (автором).

Форму, кстати, не видел.
Я проводил аудит безопасности знакомым, которым какой-то фрилансер сайт наговнокодил. В каждом скрипте были запросы типа

mysql_query ("SELECT * FROM users WHERE id=".$_POST['user_id']);

В общем, я массовым поиском им эскейпил инпут, а эта хрень до кучи на глаза попалась, скрасила мой скучный вечер.

Reply

display_none January 13 2015, 17:09:33 UTC
Позволяет, но не поощряет. Не в каждом языке параметры, переданные постом вываливаются в глобальный ассоциативный массив _POST, а во многих языках вообще принято использовать разные фреймворки где параметр приходит ввиде енума а текст на форме не имеет к нему никакого отношения и вообще берется из файла локализации, какого-нибудь ru_locale. В PHP тоже есть фреймворки, но увы.

>>эскейпил инпут,
А еще все другие языки поощряют prepared statements которые убирают SQL Injection на концептуальном уровне. В PHP тоже есть PDO, но почему-то никто и никогда. И это не говоря о том, что во многих популярных языках практически стандартом де-факто является использование фреймворка с ORM.

Reply

eh0t January 13 2015, 17:21:45 UTC
1. Извиняюсь насчет "поощрает". Это действительно так :(
2. В PHP уже давно (с версии 5.4) mysql_query deprecated и PDO везде и повсюду (в нормальных проектах). Это я к чему: неважно, что за язык и какие технологии, все упирается в конкретно взятого исполнителя.

Reply


atrus_at_lj January 12 2015, 19:54:12 UTC
Мужщина, вы что не видите, у нас обед.

Reply


dil January 12 2015, 20:53:24 UTC
Искренне надеюсь, что в форме это поле не текстовое, а radiobutton или drop-down list :)

Reply


Leave a comment

Up