Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Маленький глюк при вводе логина

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся вчера с таким багом:
если ввести какой-нибудь ник, можно совпадающий с реальным (но не обязательно), и левый пароль, то в шапке форума появляется приветствие, грузится меню пользователя (то, где Выйти, Профиль, Обновления etc.). А если ник совпадает с реальным - показывается наличие новых сообщений в ПМ. Вход в форум - не доступен. Это все, конечно, не опасно... но как-то не хорошо  
 
Попробовал исправить:
 
# убираем баг: любое имя вводишь и тебя приветствуют, показывают обновление содержимого ПМ, меню пользователя и т.п.
(выделен добавленный код)
 
открываем файл icon.lib
находим функцию  
 
sub title {
 
заменить эти строки  

Код:
 
sub title {
 
$newmail = "<p>";  
 
if ($inmembername eq "" || $inmembername eq "Guest") {
    $inmembername = "Guest";
    $loggedinas = qq~Гость: <a href="$loginprog">Войти</a> | <a href="$registerprog">Регистрация</a>~;
    }
    else {
        $memberfilename = $inmembername;
        $memberfilename =~ s/ /\_/g;
 

на  

Код:
sub title {
 
$newmail = "<p>";  
 
# убираем баг:  
&getmember("$inmembername");
 
if ($refpage && $refpage ne "$boardurl"."/register.cgi" && $action ne "addmember") { $admbbrok = "4"} else {$admbbrok = "5"}
if ($inmembername eq "" || $inmembername eq "Guest" || (($admbbrok eq "4") && ($userregistered eq "no")) ||  (($admbbrok eq "4") && ($inpassword ne $password))) {
    $inmembername = "Guest";
    $loggedinas = qq~Гость: <a href="$loginprog">Войти</a> | <a href="$registerprog">Регистрация</a>~;
    }
    else {
        $memberfilename = $inmembername;
        $memberfilename =~ s/ /\_/g;

 
Вот, вроде и всё    
Может кому понадобится...
 
да, исходный скрипт по FAF-Team, или Русский Iconboard

Всего записей: 11789 | Зарегистр. 03-12-2003 | Отправлено: 19:05 26-04-2005 | Исправлено: ALeXkRU, 19:42 03-05-2005
Rikimaru



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALeXkRU, Сделал всё как указано тобой и баг действительно был исправлен, но это запретило отсылку личных сообщений у всех юзеров другим юзерам. Можно было  отправлять только самому себе.

Всего записей: 15 | Зарегистр. 15-04-2005 | Отправлено: 16:50 28-04-2005 | Исправлено: Rikimaru, 16:51 28-04-2005
ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rikimaru
да, я тоже уже заметил..
сейчас попробую исправить...
 
Добавлено:
Всё оказалось даже ещё проще, чем я делал    
в sub getmember
ничего править не нужно, т.е. оставить первоначальный вариант:

Код:
$userregistered = "yes";  
    }    
    else { $userregistered = "no"; }  
}
 
 
а в sub title  
вместо такой строчки  

Код:
if ($inmembername eq "" || $inmembername eq "Guest") {

достаточно написать это:

Код:
if ($inmembername eq "" || $inmembername eq "Guest" || $userregistered eq "no" || ($inpassword ne $password)) {

Всего записей: 11789 | Зарегистр. 03-12-2003 | Отправлено: 17:14 28-04-2005
Rikimaru



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALeXkRU, Снова не то... =)
Тестировал, и меня просто разлогило. При попытке залогится снова, форум выдаёт мне в двух окошках ввода мой пароль и логин "Guest". Не логит и под моим ником и паролем. Но тот баг и в этом случае исправлен... =)

Всего записей: 15 | Зарегистр. 15-04-2005 | Отправлено: 19:38 28-04-2005 | Исправлено: Rikimaru, 19:41 28-04-2005
ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rikimaru
19:38 28-04-2005
Цитата:
Тестировал, и меня просто разлогило. При попытке залогится снова, форум выдаёт мне в двух окошках ввода мой пароль и логин "Guest". Не логит и под моим ником и паролем.

странно специально проверил у себя на компе и на сайте, под админским и простым ником  - все работает нормально... повторить то, что ты написал не удалось.  
может у тебя другая версия скрипта? или стоят какие-нить хаки?
не забыл вернуть все на место в функции getmember?
 
Проверь еще раз не забыл ли вставить вызов проверки пользователя перед if

Код:
# убираем баг:  
&getmember("$inmembername");  
if ($inmembername eq "" || $inmembername eq "Guest" || $userregistered eq "no" || ($inpassword ne $password)) {
 

Всего записей: 11789 | Зарегистр. 03-12-2003 | Отправлено: 01:01 29-04-2005 | Исправлено: ALeXkRU, 01:13 29-04-2005
Rikimaru



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALeXkRU, Чёрт... я просто не заметил кода проверки. Он у меня не был вставлен... Поэтому и не сработало как надо.
Теперь всё в норме. Благодарю!

Всего записей: 15 | Зарегистр. 15-04-2005 | Отправлено: 19:14 29-04-2005 | Исправлено: Rikimaru, 19:17 29-04-2005
ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На здоровье  

Всего записей: 11789 | Зарегистр. 03-12-2003 | Отправлено: 19:36 29-04-2005
Rikimaru



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALeXkRU, Ага... не прошло и недели.
В sub title
Обнаружил тут что вот эта правленая строка
Цитата:
   
 if ($inmembername eq "" || $inmembername eq "Guest" || $userregistered eq "no" || ($inpassword ne $password)) {
 
не позволяет регистрироваться новым юзерам.
Благодаря этой строке ник пользователя записывается в members как "Guest" и всем остальным желающим зарегистрироваться выдаётся ошибка,мол юзер с таким ником уже существует.
 

Всего записей: 15 | Зарегистр. 15-04-2005 | Отправлено: 15:54 03-05-2005 | Исправлено: Rikimaru, 15:59 03-05-2005
ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rikimaru
попробуй так:

Код:
if ($refpage && $refpage ne "$boardurl"."/register.cgi" && $action ne "addmember") { $admbbrok = "4"} else {$admbbrok = "5"}
if ($inmembername eq "" || $inmembername eq "Guest" || (($admbbrok eq "4") && ($userregistered eq "no")) ||  (($admbbrok eq "4") && ($inpassword ne $password))) {

(вместо той строки)
вроде должно работать...

Всего записей: 11789 | Зарегистр. 03-12-2003 | Отправлено: 19:39 03-05-2005
Rikimaru



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALeXkRU, Да вобще-то  баг сам по себе куда-то подевался... нету его. Уже не выскакивает уведомление о новой ПМке при неправильной попытке залогится.
Всегда бы так...

Всего записей: 15 | Зарегистр. 15-04-2005 | Отправлено: 20:15 03-05-2005 | Исправлено: Rikimaru, 20:15 03-05-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Маленький глюк при вводе логина


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru