$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" – среагирует на единичку в конце (она допустима регуляркой).