Raymond
6.11.2016 - 00:20
К примеру, у меня есть форма, где пользователь из тега select name = 'country' может выбрать страну проживания. Т.к. форму можно подделать, и в $_POST["county"] мне может прилететь что угодно, то стоит ли проверять этот самый $_POST["county"] на наличие в массиве с названиями стран?
и если нет, то какая практика в таких случаях применяется? Как проверять данные на соответствие определенному набору значений?
Это называется валидацией.
Процесс, условно, выглядит следующим образом. Сначала форма проверяется простыми правилами: наличие обязательных полей, их тип, минимальные-максимальные значения (число) или длинна (строка), допустимые символы (пароль), корректность структуры почтового адреса и т.д.
Если первая проверка прошла успешно, можно переходить к проверке "смыслового" содержания. Этот этап, как правило, тесно связан с БД и нацелен на сохранение консистентности данных. Благо таких полей в формах обычно немного.
Вам нужно проверять не само слово (название страны) а существование соответствующего ID в справочнике стран. Ну или ключа массива, тут смотря какая задача, может быть база данных и не нужна, если это что-то совсем простое, типа формы обратной связи, которая отсылает данные сразу на почту.
Но вообще-то вангую неправильную архитектуру БД вашего проекта.
RaymondКонечно надо проверять. Где хранишь название стран - с тем и сверяй.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).