КАРМА-хакРейтингование участников модераторами
Текущий рейтинг темы: Нет
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 28 ноября 2003 15:08
Может кто подскажет где таки ошиПка закралассь :( Уж ООчень хотца этот хак поставить.
--- FYI AKA Shatun
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 6 декабря 2003 7:56
вот сейчас вроде в форум модераторо можно войти.. строка - 1258 в файлике - ikon.lib в процедуре - sub getforum $privateforum заменил на $privateforums Используя ХАК от XXXXPro (скрытые форумы) вроде можно пользоваться, НО если явно указать линк форума то в этом случае гость без проблемм может просмотреть как форум так и темы модераторов. :( мне ещё не совсем понятно $privateforum изпользуется скриптами ikonboard.cgi, topic.cgi, post.cgi, postings.cgi, setforums.cgi, а также процедурой getforum в ikon.lib, модифицируется скриптами post.cgi, posting.cgi и setforums.cgi. а вот в описании написано.... Файл $membername.cgi Считывание файла производится с помощью процедуры getmember (файл ikon.lib), которая вызывается почти из всех скриптов. $privateforums - список закрытых форумов, к которым пользователь имеет доступ. Хранится в формате $forum=$access&$forum=$access, где $forum - номер закрытого форума, $access - разрешение на доступ (принимает значения "yes" или "no"); какой переменной пользоваться и как таки решить эту проблемму? Вот ещё неприятность, когда жмёшь на линк - Рейтинговать (usrating.cgi) вверху страницы - появляется Content-Type: text/html; charset=windows-1251 [B]JESUS[/B] у тебя есть такой баг??
--- FYI AKA Shatun
| | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 6 декабря 2003 11:26
$privateforums - это переменная, где перечисленно, к каким форумам пользователь имеет доступ $privateforum - переменная, которая определяет статус форум. Поэтому такую замену делать в принципе делать было нельзя!
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 8 декабря 2003 11:11
[q] Поэтому такую замену делать в принципе делать было нельзя![/q]
спасибо теперь понятно.. только вот как решить эту проблему не понятно. JESUS напиши 2- или 3-и буквы плиззз После установки этого ХАКА Модер и админ не могут войти в форум модераторов????
--- FYI AKA Shatun
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 8 декабря 2003 16:32
[B]Igor [/B] сорри... у мя тут куча разных серьезных траблов навалилась... так что пока молчу.... некогда.... не до этого... :(
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 11 декабря 2003 15:35
[B]Igor [/B] у меня все нормально с вхождением в закрытые форумы... хотя про то, что народ может войти в форум для администрации, но не в темы, - правда... в другой закрытый форум не могут.... странно...
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 12 декабря 2003 12:56
JESUS, так у меня даже в темы администрации ни модер ни админ войти не могут :( я так понимаю баг скрылся в ikon.lib или в topic.cgi XXXXPro подскажи какой код делает проверку для входа в закрытые форумы.
--- FYI AKA Shatun
| | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 12 декабря 2003 18:22
В файле forums.cgi за проверку входа отвечает вот этот код: <br> if (("$privateforum" eq "yes") && ("$allowed" ne "yes")) { &accessneeded; }<br> if (($inmembername eq "Guest") && ($privateforum eq "noguest")) {&error("входе в форум&Гостям доступ на этот форум запрещен. Войдите под своим именем или зарегистрируйтесь."); } <br> И еще вот этот кусок кода:
<br>if ($action eq "accessrequired") {<br> $inmembername = $query -> param('membername');<br> $inpassword = $query -> param('password');<br> &getmember("$inmembername");<br> if ($userregistered ne "no" && $allowedentry{$inforum} eq "yes" && $inpassword eq $password) {<br> $allowcookiename = "forumsallowed" . "$inforum";<br> print "Set-Cookie: $allowcookiename=yes\;";<br> print "\n";<br> $allowed = "yes";<br> }<br> else {<br> $allowed = "no";<br> }<br> }<br> else {<br> $tempaccess = "forumsallowed". "$inforum";<br> $testentry = cookie("$tempaccess");<br> if ($testentry eq "yes") { $allowed = "yes"; }<br> else { $allowed = "no"; }<br> }<br>
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 14 декабря 2003 9:02
УУУУРРРАААА!! Нашёёёл!! Если долго мучаться, чтонибудь получится Убираем in пометил красным. И ВСЁ! if (!$inmembername) { <br> $inmembername = "Guest"; <br> } <br> else { <br> &getmember("$inmembername"); <br> if ($allowedentry{$[COLOR=red]in[/COLOR]forum} eq "yes") { $allowed = "yes"; } <br> else { $allowed = "no"; } <br> &getmemberstime("$inmembername"); <br> &getlastvisit; <br> $forumlastvisit = $lastvisitinfo{$[COLOR=red]in[/COLOR]forum}; <br> $currenttime = time; <br> &setlastvisit("$[COLOR=red]in[/COLOR]forum,$currenttime"); <br>} Теперь всё точно работает. Можно ставить Хак и не париться Работу форума оттестировал на локалке.. Вот только строка Content-Type: text/html; charset=windows-1251 вверху форума вылетает.. :( - если точнее.. в самом - usrating.cgi это наверно в коде, где что-то за кодировку отвечает (в самом - usrating.cgi) С одной стороны и так всё прекрасно работает.. но не симпотно когда этот баг вверху моячит :( Может кто подскажет где сабака порылась ------------------- PS XXXXPro, как я тебя понимаю! Это ведь сума можно сойти пока всех блох выловишь.
--- FYI AKA Shatun
| | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 14 декабря 2003 17:29
Если такое выводится, значит, где-то стоит лишний print header (скорее всего, один - в начале файла, а второй - в процедуре output файла ikon.lib). P.S. Вот поэтому я и решил писать новый форум.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 20 декабря 2003 13:27
[B]Igor [/B] Разобрался с Content-Type: text/html; charset=windows-1251 ??? Если нет, то сообщаю, что нужно сделать для того, чтобы она не появлась.... В самом мначале скрипта меняешь код
<br>use CGI::Carp "fatalsToBrowser"; <br>use CGI qw(:standard); <p>eval { <br> на следующий...
<br>use CGI::Carp "fatalsToBrowser";<br>use CGI qw(:standard);<br>$CGI::POST_MAX=1024 * 150;<br>$CGI::DISABLE_UPLOADS = 1;<br>$CGI::HEADERS_ONCE = 1;<p>eval {<br>
короче... вот эта херотень$CGI::HEADERS_ONCE = 1; отвечает, чтобы head (в т.ч. и кодировка) по несколько раз по какой-то кривоте рук не вставлялась......
там я еще пару багов обнаружил.... и профиксил... находил кто-нить чего нить? в смысле карма не обнуляется при пересчете сообщений, про редактировании профиля в админке или самим юзером?... если нет - значит это не баги были, а мои кривые руки... а если да, то выложу фиксы....
| | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 20 декабря 2003 17:25
Если карма хранится в $membername.cgi, то вполне может и обнуляться - код сохранения профиля в каждом файле остается свой (как всегда, это - наследственный баг).
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 21 декабря 2003 6:45
JESUS В topic.cgi у меня стоит вот этот код:
$jmembername = $membername; <br>if ($membercode eq "ad") { <br>$posterfontcolor = "$adminnamecolor"; <br>$membername = "$membername";<br>$team="<img src=\"$imagesurl/images/team.gif\" border=0>"; <br>$rating = qq~<img src="$imagesurl/karma/icon6.gif">~; <br>if ($membertitle eq "") { $membertitle = "Администратор"; } <br>} <br>elsif ($membercode eq "mo") { <br>$posterfontcolor = "$teamnamecolor"; <br>$membername = "$membername";<br>$team="<img src=\"$imagesurl/images/team.gif\" border=0>"; <br>$rating = qq~<img src="$imagesurl/karma/icon6.gif">~; <br>if ($membertitle eq "") { $membertitle = "Модератор"; } <br>} <br>elsif ($membercode eq "banned") { <br>$rating = qq~<img src="$imagesurl/karma/icon-6.gif">~; <br>$posterfontcolor = "$posternamecolor"; <br>$membergraphic = ""; <br>$membertitle = "ИЗГНАН"; <br>} <br>else { <br>$posterfontcolor = "$posternamecolor"; <br>if ($rating eq -5) { $rating = qq~<img src="$imagesurl/karma/icon-5.gif"> -5~; } <br>elsif ($rating eq -4) { $rating = qq~<img src="$imagesurl/karma/icon-4.gif"> -4~; } <br>elsif ($rating eq -3) { $rating = qq~<img src="$imagesurl/karma/icon-3.gif"> -3~; } <br>elsif ($rating eq -2) { $rating = qq~<img src="$imagesurl/karma/icon-2.gif"> -2~; } <br>elsif ($rating eq -1) { $rating = qq~<img src="$imagesurl/karma/icon-1.gif"> -1~; } <br>elsif ($rating eq 0) { $rating = qq~<img src="$imagesurl/karma/icon0.gif"> 0~; } <br>elsif ($rating eq 1) { $rating = qq~<img src="$imagesurl/karma/icon1.gif"> 1~; } <br>elsif ($rating eq 2) { $rating = qq~<img src="$imagesurl/karma/icon2.gif"> 2~; } <br>elsif ($rating eq 3) { $rating = qq~<img src="$imagesurl/karma/icon3.gif"> 3~; } <br>elsif ($rating eq 4) { $rating = qq~<img src="$imagesurl/karma/icon4.gif"> 4~; } <br>elsif ($rating eq 5) { $rating = qq~<img src="$imagesurl/karma/icon5.gif"> 5~; } <br>} <br>if ($inmembercode eq "ad") { $rateuser = qq~<a href="$boardurl/usrating.cgi?membername=$jmembername">Рейтинговать</a>~; } <br>elsif ($inmembercode eq "mo") { $rateuser = qq~<a href="$boardurl/usrating.cgi?membername=$jmembername">Рейтинговать</a>~; }<br> вместо того который предложено поставить. переменная - $team пропущена :( Я правда не знаю нафиг она нужна, но без неё у меня были ошибки.. Есть конечно вопрос, почему рейтинг - 0 у старых участников не показывается?? offtop у меня в 98SE с локалкой опять траблы проверить не могу.. :((((
--- FYI AKA Shatun
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 21 декабря 2003 14:15
$team выводит картинку рядом с ником модеров и админов... глюк с обнулением я решил.... там дело именно в переменных, а не в профиле...
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 21 декабря 2003 15:29
JESUS, извиняй, забыл тебе пасиб сказать посмотрел.. $team действительно админскую картинку выводит офф уже локалкалку поставил, тоже обнуляется
--- FYI AKA Shatun
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 22 декабря 2003 6:57
[B]Igor[/B] ок... выложу фикс - только его написать нужно... я методом проб и ошибок нашел первый автор там с переменными намутил сильно...
| | |
Igor
Долгожитель форума
Откуда: Раменское Всего сообщений: 311 Рейтинг пользователя: 1 Дата регистрации на форуме: 8 апр. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 22 декабря 2003 9:45
[B]JESUS[/B] спасибо, ждём..
--- FYI AKA Shatun
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 22 декабря 2003 9:57
[q] Есть конечно вопрос, почему рейтинг - 0 у старых участников не показывается??
[/q]
[B]Igor[/B] у старых он не будет показываться...пока они профиль не поменяют... или ты не поменяешь... только пока не советую - обнулится все просто там напутано с переменными $inrating и $rating... поэтому и обнуляется в некоторых файлах....
| | |
JESUS
Новичок
Откуда: Минск Всего сообщений: 249 Рейтинг пользователя: 0 Дата регистрации на форуме: 10 сен. 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 22 декабря 2003 10:21
тэкс, значицца, что вспомнил.... В сетмемберс.цги if ($inrating eq "") { $inrating = 0; } <br>elsif ($inrating > 5) { $inrating = 5; } <br>elsif ($inrating < -5) { $inrating = -5; $inmembercode = "banned"; }
заменить на
if ($rating eq "") { $rating = 0; } <br>elsif ($rating > 5) { $rating = 5; } <br>elsif ($rating < -5) { $rating = -5; $inmembercode = "banned"; } <br> и если стоит хак пересчета сообщений у юзверей, то в процедуре sub countmsg (последняя в файле) проверить чтобы был код
|$rating| а не |$inrating| кроме того в профиль.цги нужно сделать следующую манипуляцию... ума не приложу, почему она не сделана была сразу.... В процедуре sub savemodify (она отвечает за сохранение изменений профиля, сделаных самим юзверем) добавить перед:if ($newsignature) { кодif ($rating = "") {<br>$rating = 0;<br>} - это даст возможность при любом изменении профиля пользователем сделать ему нолик в рейтинг (если там пусто)... ну и естественно проверить, чтобы строчка там была такая
..................|$rating|$misc1|$misc2|$misc3| если чего еще вспомню - напишу позже.... ----------------------- зы.... вообще хочу перелопатить все файлы и составить развернутый список, где изменяется профиль пользователя, чтобы при установке хаков, задевающих профиль не надо было искать на своих ошибках и глюках... я уже задел этот вопрос здесь - http://xxxxpro.ru/cgi-bin/ikonboard/topic.cgi?forum=10&topic=191 может есть резон подумать, как выделить всю эту строчку (которая в файл мембернэйм.цги пишется в переменную, например в икон.либ, а потом просто вызывать ее? или это невозможно принципиально? (Сообщение отредактировал JESUS 22 дек. 2003 13:25)
| | |
BlackWolf
Новичок
Откуда: Петрозаводск Всего сообщений: 32 Рейтинг пользователя: 0
Дата регистрации на форуме: 19 июня 2003
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 29 июня 2004 11:40
ТОлько ногам не бить Может кто выложит окончтальный вариант что и где менять...а то отслеживать всю тему..где какие ошибки вылезают )) тяжко... И еще а можно сделать так что бы все могли карму менять сами только не свою, а чужую.. ???
--- Иих сила в варварских законах ...их знамя шкуры серой блеск..их воля в древних темных кронах....из мрака созидавших лес
| | |
Время выполнения скрипта: 0.1081. Количество выполненных запросов: 18, время выполнения запросов 0.0367
|