ExBB Community » Файловый ExBB » Решение проблем » Проблема с регистрацией на форуме

Страниц (1): [1]
 

1. BON - 10 октября 2011 — 18:45 - перейти к сообщению
Народ не знаю была ли такая тема или нет, но кажется отловил ещё один баг. Если пробовать зарегистрироваться с ником Дядя Ёжик то выдаст такую муру:

В имени пользователя разрешается использовать только русские и латинские буквы, цифры, символы "_", "-", "."(точка) и знак пробела. Также не допускается использование сочетания букв "moder" и "admin" в русской и английской раскладке.

Чё это за лобуда?
2. Umbr - 10 октября 2011 — 18:49 - перейти к сообщению
Может дело в Ё? Попробуйте "Е", хотя и звучит как-то по польски Ха-ха
3. BON - 10 октября 2011 — 18:59 - перейти к сообщению
да, походу трабла с буквой "Ё" . Програмеры как это дело исправить?
4. Zeg - 10 октября 2011 — 19:05 - перейти к сообщению
BON, moder и admin зарезервированы, поэтому с такими именами зарегистрироваться не получится. А про букву "Ё" - где-то было, кажется. Для ісправленія нужно поправіть регулярное выражение, но кажется еще что-то было с настройками локали. Надо смотреть. Не победишь, стучи в аську.
5. BON - 10 октября 2011 — 19:15 - перейти к сообщению
усе, можно удалить тему. победил эту фигню
6. electron - 10 октября 2011 — 19:17 - перейти к сообщению
в register.php
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername'])) {

Замените её строкой:
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яё|А-ЯЁ]{1,}#is",$fm->input['inmembername'])) {

Далее найдите строку:
CODE:
if (preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername']) && preg_match("#[a-z|A-Z]{1,}#is",$fm->input['inmembername'])) {

Замените её строкой:
CODE:
if (preg_match("#[а-яё|А-ЯЁ]{1,}#is",$fm->input['inmembername']) && preg_match("#[a-z|A-Z]{1,}#is",$fm->input['inmembername'])) {

Далее найдите строку:
CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->input['inmembername'])) {

И замените её строкой:
CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-яЁё-_\.\s])#is",$fm->input['inmembername'])) {
7. igrok54 - 12 октября 2011 — 08:46 - перейти к сообщению
Электрон, в приведенных регулярных выражениях я бы однозначно убрал флаг "i', определяющий, что поиск должен быть регистронезависимый, так как в составе искомых символов Вами указаны символы и в верхнем и в нижнем регистре.

Например, если посмотреть на это:
Цитата:
"#[а-яё|А-ЯЁ]{1,}#is"
, то тут определено так: искать один символ русского алфавита в нижнем либо (красное тут и в регулярке) в верхнем регистре, поиск вести регистронезависимый (флаг "i"Подмигивание, точка в регулярке может быть переводом строки (флаг "s"Подмигивание.
Это можно написать так: "#[а-яёА-ЯЁ]{1,}#" - убрав флаги "поиск вести регистронезависимый", "включая переводы строк" (т.к. в регулярке нету точки, которая могла бы быть этим переводом строки). Знак "либо" так же совершенно лишний.

Не обижайтесь на критику. Растерялся , знаю, что Вы не программер, и что это маленькие минусы от прежних разработчиков.
8. BON - 12 октября 2011 — 12:13 - перейти к сообщению
igrok54, намалюй как должно быть правильно
9. igrok54 - 14 октября 2011 — 06:51 - перейти к сообщению
Правки регулярных выражений для сообщения Электрона:

в register.php
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername'])) {

Замените её строкой:
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёА-ЯЁ]{1,}#",$fm->input['inmembername'])) {

Далее найдите строку:
CODE:
if (preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername']) && preg_match("#[a-z|A-Z]{1,}#is",$fm->input['inmembername'])) {

Замените её строкой:
CODE:
if (preg_match("#[а-яёА-ЯЁ]{1,}#",$fm->input['inmembername']) && preg_match("#[a-zA-Z]{1,}#",$fm->input['inmembername'])) {

Далее найдите строку:
CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->input['inmembername'])) {

И замените её строкой:
CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-яЁё-_\.\s])#i",$fm->input['inmembername'])) {
10. саня - 14 октября 2011 — 07:31 - перейти к сообщению
igrok54, я не могу найти такой строчки есть такая

CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўі|А-ЯЁҐЄІЇЎІ]{1,}#is",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);


и такая

CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars);
11. BON - 14 октября 2011 — 14:21 - перейти к сообщению
а у тебя заплатка стоит та что электрон закинул
12. Mishanya75 - 14 октября 2011 — 15:08 - перейти к сообщению
Cпасибо, помогло
13. igrok54 - 15 октября 2011 — 10:10 - перейти к сообщению
саня пишет:
igrok54, я не могу найти такой строчки есть такая

CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўі|А-ЯЁҐЄІЇЎІ]{1,}#is",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);


и такая

CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars);

Это у Вас прописана возможност регистрации украинских, видимо, имен. Тогда, соответственно, так:
Строку:
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўі|А-ЯЁҐЄІЇЎІ]{1,}#is",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);

Заменить на:
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўіА-ЯЁҐЄІЇЎІ]{1,}#",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);

Строку:
CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#is",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars);

Заменить на:
CODE:
if (preg_match("#(guest|admin|moder|админ|".$fm->LANG['Guest']."|модер|[^0-9A-Za-zА-Яа-я-_\.\s])#i",$fm->_LowerCase($fm->input['inmembername']))) {
$fm->_Message($fm->LANG['Registration'],$wrongchars);
14. BON - 15 октября 2011 — 11:19 - перейти к сообщению
igrok54, если я захочу чтобы и у меня была возможность регистрации украинских име, тогда строку
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-я|А-Я]{1,}#is",$fm->input['inmembername'])) {

можно заменит сразу на эту:
CODE:
if ($fm->exbb['ru_nicks'] === FALSE && preg_match("#[а-яёґєіїўіА-ЯЁҐЄІЇЎІ]{1,}#",$fm->input['inmembername'])) {
$fm->_Message($fm->LANG['Registration'],$fm->LANG['RuNicksOff']);


?????
15. igrok54 - 15 октября 2011 — 23:10 - перейти к сообщению
BON пишет:
igrok54, если я захочу чтобы и у меня была возможность регистрации украинских име, тогда...

А тут все особенные буквы украинского алфавита? Я его совсем не знаю Огорчение
Перечислите необходимые для добавления буквы - допишу, как поправить, чтобы украинские имена проходили регистрацию...

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0813]     [ ]