Будет полезно для нашего форума, а может и ещё кто нагуглит.
Это защита от регистраций ников с русскими и латинскими буквами одновременно.
Например, вот реальный админ
Stark, а вот кто-то создал фейка
Stаrk, с русской буквой "а"... явно ж не к добру. )
Решение:1) в файле \Sources\Register.php ищем строку:
if (trim($context['checked_username']) == '')
$context['valid_username'] = false;
чуть ниже добавляем:
// check rus-lat symbols
if (!RegisterCheckRusLat($context['checked_username']))
$context['valid_username'] = false;
2) в конец этого же файла \Sources\Register.php добавляем функцию:
function RegisterCheckRusLat($string) {
$bHaveRus = $bHaveLat = false;
for($i=0; $i<strlen($string); $i++) {
if(strpos('AБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя', $string[$i]) !== false)
$bHaveRus = true;
if(strpos('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', $string[$i]) !== false)
$bHaveLat = true;
}
return !($bHaveRus AND $bHaveLat);
}
тестировал на движке SMF 2.0.5