Вам не нужны две проверки на $subuser
в первом выражении - и если вы это сделали, вы должны использовать ||
для их разделения.
Используйте ctype_alnum()
вместо preg_match()
для проверки буквенно-цифровых символов.
function login($subuser, $subpass, $subremember){
global $database, $form; //The database and form object
$field = "user"; //Use field name for username
if (!strlen($subuser = trim($subuser))) {
$form->setError($field, "* Username not entered");
//} elseif (!preg_match('/^[\da-z]+$/i', $subuser)) {
} elseif (!ctype_alnum($subuser)) {
$form->setError($field, "* Username not alphanumeric");
}
}
- логика проектирования в первом условном выражении состоит в том, чтобы обновить значение
$subuser
, а затем проверить его длину, чтобы второе условное не получило строку сначальные или конечные пробелы.
Вот демонстрация .