Запрет UTF-8 имен (логинов)

Автор Maksovich, 25 февраля 2015, 04:24:10

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Maksovich

Всем привет. Занялся модернизацией форума под себя, решил было сначала запретить русские ники но потом подумал что есть еще другие языки использующие utb-8 символы.
К тому же спец символы utf-8 никто не отменял. Дабы заранее предотвратить всякие изощренно извращенные логины решил полностью запретить все кроме латинских букв, цифр, подчеркивания и тире.

Добрался до файла Profile-Modify.php. Есть там такие строки начиная с 587 строки:


if (trim($value) == \'\')
return \'no_name\';
elseif ($smcFunc[\'strlen\']($value) > 60)
return \'name_too_long\';
elseif ($cur_profile[\'real_name\'] != $value)
{
require_once($sourcedir . \'/Subs-Members.php\');
if (isReservedName($value, $context[\'id_member\']))
return \'name_taken\';
}
return true;


Я добавил следующее:


if(!preg_match(\'~^[a-z0-9_\-]*$~i\', trim($value)))
return \'Тут текст при наличии неразрешенных символов\';
elseif ($smcFunc[\'strlen\']($value) < 4)
return \'Тут текст при слишком коротком логине\';


Так вот там через return возвращаются значения ошибок no_name, name_too_long, name_taken. Выводятся они не через $txt. Откуда они берутся? Где посмотреть содержание всех этих значений?