PHP: if(($pol != 'F') && ($pol != 'M')) { echo "Error!"; } != неравно == равно ||или && и т.е выдаст "Error!" если $pol не F и не M ps: Код (Text): telepatmode:on
== так же как и === обозначает равенство, только === дополнительно требует одинаковых типов у сравниваемых переменных. Аналогично с != и !==. т.е. 1 == '1', но 1 !== '1' опять же or и || оба jобозначают «или» вот я и не понимаю что именно хочет ТС
гениально. а мы-то думали, что это другими средствами предусматривается. меня вот только одно интересует, везде используется M и F или для пользователя преобразовывается в Male и Female?
MALE FEMALE, mALE fEMALE,MaLE FeMALE..... забыл Это что бы хакер не смог себе средний род поставить УХахаххахаха
а мож типа сделать эту переменную true false? тада и "левый" пол поставить нельзя будет ?^^ если конечно автор не захочет потом добавить туда поле "трансвестит" или еше чё DD
http://phpfaq.ru/slashes вообще-то и ассоциативного массива вида 'm' => 'Male' было бы достаточно; и проверять через array_key_exists(). Вот тогда расширяй по самое немогу
Luge Ну а почему бы не использовать проверку на M или F перед mysql_real_escape_string? Если не проходит прверку, делаем exit()
валидация данных и подготовка запроса. разницу видишь? давай рассмотрим отвлечённый пример: строка приходит от пользователя. Перененная содержит текст, длина строки не превышает максимального размера для поля в БД, в строке не содержится ненормативная лексика. Если эти условия выполняются, то принимаем данные от пользоателя. Если нет — то показываем ошибку. Вот тут у нас прошла валидация. Данные соответствуют нашим критериям. Перед вставкой в бд нам надо проэкранировать все служебные символы (некоторые любят их незаслужанно называть «опасными»). Вот тут мы защищаемся от инъекций. Наличие/отсутствие тех же самых кавычек вовсе не являлось обязательным условием для валидации, так же как ожидаемый ответ от пользователя никак не связан с инъекциями. К чему это я? А просто не надо путать совершенно разные процессы.