PHP

Почему боты обходят обработчик PHP

Здравствуйте, почему боты обходят обработчик регистрации пользователя? Все равно регистрируются без имени. То есть с пустым значением.
Смотри вот смотри копируй что между кавычек и регайся "     " - это чисто пример. тебе нужно фильтровать post запросы от шелов,sql инъенкций, и спец символов которые корявят код страницы
АБ
Али Беляев
7 589
Лучший ответ
Владимир Андреев фильтрация есть trim, htmlspecialchars и еще много чего, замена одинарных и двойных кавычек на html сущности, все равно регаются пустым значением.
Владимир Андреев Я проверил на счет нескольких пробелов, да и вообще убрал все фильтры, поле идет именно пустым.
Роман Колпаков %20 это пробелы
Потому, что ты НЕ прописал адрес обработчика регистрации в файле robots.txt - который задаёт список адресов, запрещённых к индексированию поисковыми системами.
Владимир Андреев А причем тут robots.txt, думаете гугл или яндекс шарит? я смотрел айпишники самые разные страны, а вот e-mail адреса только mail.ru идет.
запрети обход и прекрати тупить
Саша Саша
Саша Саша
47 629
 $login = substr(htmlspecialchars(trim($_POST['login'])),0,100);
if(preg_match("/^[a-zA-Z0-9]+$/",$login)) {
// регистрируем
} else {
// "некорректный логин"
}
Паттерн a-zA-Z0-9 допускает использование только символов a-z (a, b, c, d, ..., x, y, z) в обоих регистрах и цифр от 0 до 9. Отредактируйте паттерн под свои нужды. Например для почты он будет такой:
 /^[a-zA-Z0-9\.\_]+\@[a-zA-Z0-9\.]+\.[a-zA-Z]+$/ 

Знак "+" в конце набора символов обязывает поле логина содержать как минимум один символ, подходящий под требования, то есть логин должен быть не пустой. Однако это подразумевает, что могут зарегистрироваться и пользователи с логинами из одной буквы или цифры. Если необходимо больше обязательных символов, например 3, замените "+" на конструкцию "{3,}" – от трёх символов и более, или "{3,100}" – не менее 3 символов и не более 100.

Конструкция "^...$" даёт понять скрипту, что необходимо проверять всю строку на соответствие. Если эти символы убрать – скрипт отдаст true даже в случае, если логин будет представлять из себя "фывФЫВ&1" – среагирует на единичку в конце (она допустима регуляркой).