Перейти к содержанию

Ошибка авторизация пользователей с русскими никами


Рекомендуемые сообщения

Собственно проблема в авторизации пользователей с русскими именами, даже если я их создаю в админке, или меняю в ручную пароли, надпись при авторизации одна "Не верный логин или пароль", даже если пользователь отправил письмо на повторную авторизацию (смену пароля) все равно пользователь с новым паролем не может войти на форум. Переименовываю его в цивры или латиницу, и все окей.

 

 

Смотрел БД, все в UTF-8 , более не знаю, что там смотреть.

 

В чем может быть проблема, регистрируются нормально, письма приходят не смотря на русские имена, но при авторизации ни в какую?!

Ссылка на комментарий
Поделиться на другие сайты

у меня такая же фигня  происходит после каждого обновления форума до новой версии, помогло ручное переименование всех пользователей сперва в бд, потом на форуме в обратку

но это для тех, у кого пользователей на кириллице сравнительно мало и все равно это исправление следствий

а вот причину так и не нашли мы, если найдете, поделитесь, а то до 3.3.4 обновляться даже не хочется из-за этой фигни :14:

Ссылка на комментарий
Поделиться на другие сайты

Нужно смотреть на форуме, конкретно что-то сказать не получится.

Ссылка на комментарий
Поделиться на другие сайты

А как вы посмотрите если у вас нет такого "эффекта"?

может ли хостинг подтупливать или это в скриптах форума?

 

Скажите где и как сделать вывод ошибок.

Ссылка на комментарий
Поделиться на другие сайты

Соня, а ты первую тему которая при установки форума создается (типа велком и все дела) удалил? А то я чет нагуглил и кто-то где-то брякнул, что первую тему нужно удалять. Так ли - это? Или это бред сивой кобылы? А если не удальть что произойдет? Вот не хочу я удалять первую тему на форуме, даже разделы форумом не удаляю что бы оставлять нумерацию ID, это мой загон? да, но почему бы и нет?

Ссылка на комментарий
Поделиться на другие сайты

Соня, а ты первую тему которая при установки форума создается (типа велком и все дела) удалил? А то я чет нагуглил и кто-то где-то брякнул, что первую тему нужно удалять. Так ли - это? Или это бред сивой кобылы? А если не удальть что произойдет? Вот не хочу я удалять первую тему на форуме, даже разделы форумом не удаляю что бы оставлять нумерацию ID, это мой загон? да, но почему бы и нет?

нет, не удалила :14:

неужели, она тут при делах?о_О

можно, конечно, удалить и обновиться до 3.4.0, но ... "че то я очкую" :ng_biggrin:

Ссылка на комментарий
Поделиться на другие сайты

Соня, можешь не удалять эту тему, бред какой-то.

Я сразу ставил 3.4 и вот такая проблема.

Ссылка на комментарий
Поделиться на другие сайты

Соня, можешь не удалять эту тему, бред какой-то.

Я сразу ставил 3.4 и вот такая проблема.

а ты поверх старой ставил? у меня эта проблема с каждым обновлением до новой версии. когда я просто поставила 3,3,1 было норм. после апгрейда до 3.3.3 вылезло и  до 3.3.4

 

п.с. а провайдер не бегет случаем? :ng_z_4:

Ссылка на комментарий
Поделиться на другие сайты


помогло ручное переименование всех пользователей сперва в бд, потом на форуме в обратку

Ну а БД в какой кодировки, у меня и в БД ники отображаются корректно. Просто не хочет заходить. Думпером делал дамп в utf-8, потом так же экспортировал, не помогло.

 

Провайдер? не знаю, есть мысля что, что-то с сервером, но на нем два форума крутиться, на другом все в порядке.

Ссылка на комментарий
Поделиться на другие сайты

А логин и отображаемое имя одинаковое?

Ссылка на комментарий
Поделиться на другие сайты

Да и логин и отображаемое имя одинаковое.

Ссылка на комментарий
Поделиться на другие сайты

РЕШЕНИЕ

 

делаем в БД запрос

 

UPDATE `ibf_members` SET `members_l_display_name` = LOWER(`members_display_name`);
UPDATE `ibf_members` SET `members_l_username` = LOWER(`name`);

 

Дальше добиваемся, чтобы  mb_strtolower возвращал там строку, а не пустоту.

 

правим два файла
admin/sources/base/ipsMember.php
admin/sources/classes/member/memberFunctions.php

 

ищем strtolower и меняем все на mb_strtolower

 

В английском скрипте. 'members_l_username' => strtolower( $name )

В русском. 'members_l_username' => mb_strtolower( $name )

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

как хорошо, что ты нашел решение проблемы, будет ещё лучше, если оно поможет и мне, только твое решение написано для меня на арабском языке :hang1: :3:

поэтому прошу немного помощи :2:

делаем в БД запрос

 

UPDATE `ibf_members` SET `members_l_display_name` = LOWER(`members_display_name`);
UPDATE `ibf_members` SET `members_l_username` = LOWER(`name`);
Дальше добиваемся, чтобы  mb_strtolower возвращал там строку, а не пустоту.

у меня возвращает такое
это оно?

и так должно быть?

ну да, я там твое ibf заменила на ipb, а то оно меня при первом варианте куда-то далеко посылало :(

 

 

 

 

правим два файла
admin/sources/base/ipsMember.php
admin/sources/classes/member/memberFunctions.php

 

ищем strtolower и меняем все на mb_strtolower

в них по поиску этих strtolower 17 в первом и 7 во втором. все их править?

 

 

 

 

В английском скрипте. 'members_l_username' => strtolower( $name )

В русском. 'members_l_username' => mb_strtolower( $name )

это про что? чувствую, что это как-то к правке предыдущих файлов относится, но не понимаю

а, ну  нашла именно такие записи, то есть править только их? остальные strtolower(которых 17 в первом и 7 во втором шаблоне) не трогать?

 

 

и если я исправлю файлы и залью обратно, что при запросе в базе данных должно писать?

 

и да, я такая тупая, легче умереть, чтоб не мучиться :cray: :14:

 

 

 

Ссылка на комментарий
Поделиться на другие сайты


и так должно быть?

Думаю запросы прошли успешно.

 


в них по поиску этих strtolower 17 в первом и 7 во втором. все их править?

Да, менять нужно все, при этом лучше сделать копию данных файлов на всякий случай..

Ссылка на комментарий
Поделиться на другие сайты

Думаю запросы прошли успешно.

 

 

Да, менять нужно все, при этом лучше сделать копию данных файлов на всякий случай..

я поменяла все, и когда загрузила не смогла авторизоваться с русского ника

надо было менять все таки только members_l_username' => strtolower( $name )

поменяла, загрузила, нормально захожу :16:

ну настоящая проверка будет только когда я обновлюсь, но зато теперь сразу знаю, что надо менять :good:

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...


В английском скрипте. 'members_l_username' => strtolower( $name )
все сделал кроме

 

В английском скрипте. 'members_l_username' => strtolower( $name )

В русском. 'members_l_username' => mb_strtolower( $name )

 

Немного не понял где это меняется и в каком файле?

Ссылка на комментарий
Поделиться на другие сайты


Немного не понял где это меняется и в каком файле?

admin/sources/base/ipsMember.php
admin/sources/classes/member/memberFunctions.php

В обоих файлах ищи strtolower и меняй на mb_strtolower

Ссылка на комментарий
Поделиться на другие сайты

Respected, спасибо 

но я это не понял 

В английском скрипте. 'members_l_username' => strtolower( $name )

В русском. 'members_l_username' => mb_strtolower( $name )

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за решение проблемы, работает, но сохранилась ещё одна проблемка - в обсуждение (ЛС) невозможно добавить пользователя с русским ником.

Думаю пробелма та же самая, надо ещё в каком-нибудь файле заменить функцию, но в каком?

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Добрый день!

Стало актуально после интеграции IPB и DLE.

 

В файлах нету таких записей, как сделать дабы IPB принимал кириллицу в логинах?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

После данных изменений, при попытке смены имени или логина выдает ошибку 500

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

РЕШЕНИЕ

 

делаем в БД запрос

UPDATE `ibf_members` SET `members_l_display_name` = LOWER(`members_display_name`);
UPDATE `ibf_members` SET `members_l_username` = LOWER(`name`);

 

Дальше добиваемся, чтобы  mb_strtolower возвращал там строку, а не пустоту.

 

правим два файла

admin/sources/base/ipsMember.php

admin/sources/classes/member/memberFunctions.php

 

ищем strtolower и меняем все на mb_strtolower

 

В английском скрипте. 'members_l_username' => strtolower( $name )

В русском. 'members_l_username' => mb_strtolower( $name )

помоему лучше в файле memberFunctions.php

в строке

                        $this->DB->build( array( 'select' => "members_display_name, member_id, email",
                                                                                   'from'   => 'members',
                                                                                   'where'  => $checkField . "='". $this->DB->addSlashes( mb_strtolower($unicodeName) ) . "'" . ( $member['member_id'] ? " AND member_id != " . $
                                                                                   'limit'  => array( 0,1 ) ) );
                                                              

сделать

'where'  => "LOWER(" . $checkField . ")='"

вместо апдейта всех логинов в нижний регистр, а тем более отображаемых юзернеймов, которые к авторизации не относятся

Ссылка на комментарий
Поделиться на другие сайты

  • 8 месяцев спустя...

после данных манипуляций не меняется логин, в админке, даже на андглийский...сразу выдает ошибку

 

ну и при авторизации всё тоже самое Логин или пароль неверны.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...