olsufr
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору У меня IB2.1.9 и есть проблема с показом количества гостей. Т.е. в он-лайне всегда только один гость. По совету Alexander Ipp сделал все нужные коррекции, но все проблема не решена. Все предлагаемые изменения в файле whosonline не сделал, так как уже все ненужные строки отсутствовали, а те что нужно было добавить уже были добавлены. Файл icon.lib изменил как указывалось. Но не работает. Все по старому. Помогите, может для 2.1.9 (скачан с руборда) есть какие-то дополнительные нюансы? Цитата: Теперь откройте whosonline.cgi Найдите: Код: foreach $line (@onlinedata) { Выше добавьте: Код: &getmember("$inmembername"); if ($membercode eq "ad") { $viewusrIP = "ok"; } else { undef $viewusrIP; } Найдите: Код: ($savedusername, $savedtime, $savedwhere) = split(/\|/, $line); И замените на: Код: ($savedusername, $savedtime, $savedwhere, $usrIP) = split(/\|/, $line); unless ($viewusrIP eq "ok") {undef $usrIP;} Найдите: Код: <b>$savedusername</b> И замените на: Код: <b>$savedusername</b> $usrIP Найдите: Код: $lookfor = substr($savedusername, 0, 5); if ($lookfor eq "$ibtxt{'0043'}") { $savedusername = "$ibtxt{'0043'}"; } Уберите или закомментируйте эти строки. Найдите: Код: if ($savedusername eq "$ibtxt{'0043'}" && $savedwhere eq "Logging in") { next; } Сделайте с ней то же самое. Вроде всё, наслаждайтесь. | В файле icon.lib: Цитата: sub whosonline { local($instruct) = @_; ($tempusername, $where, $method) = split(/\|/, $instruct); $guests = 0; $members = 0; $currenttime = time; ### Если новая версия, с данной строкой поступаем как обычно. lol $membergone = 15; $userexpire = $currenttime - ($membergone * 60); $ipaddresstowo = $ENV{'REMOTE_ADDR'}; #$ipaddresstowo = "786.345.785.12"; ######## Stats hack #$logname = $tempusername; ######## &getmember("$inmembername"); if ($tempusername eq "Guest" || $userregistered eq "no") { $tempusername = "Guest"; } $filetoopen = "$ikondir" . "data/onlinedata.dat"; $filetoopen = &stripMETA($filetoopen); open(FILE,"$filetoopen"); #flock(FILE, 1); @onlinedata = <FILE>; close(FILE); open(FILE,">$filetoopen"); #flock(FILE, 2); $memberprinted = "no"; foreach $line (@onlinedata) { chomp $line; ($savedusername, $savedtime, $savedwhere, $savedip) = split(/\|/, $line); $savedusername =~ s/ /_/g; $tempusername =~ s/ /_/g; #$savedusername = &unHTML($savedusername); #$tempusername = &unHTML($tempusername); unless ("$userexpire" > "$savedtime") { if ($tempusername eq $savedusername) { if ($savedusername eq "Guest" && $savedip eq $ipaddresstowo) { print FILE "$tempusername|$currenttime|$where|$ipaddresstowo\n"; $memberprinted = "yes"; } elsif ($savedusername eq "Guest" && $savedip ne $ipaddresstowo) { print FILE "$line\n"; } elsif ($savedusername ne "Guest") { print FILE "$tempusername|$currenttime|$where|$ipaddresstowo\n"; $memberprinted = "yes"; } } else { print FILE "$line\n"; } } } # end foreach if ($memberprinted eq "no") { print FILE "$tempusername|$currenttime|$where|$ipaddresstowo\n";} close(FILE); ####### Stats hack #$referer = $ENV{'HTTP_REFERER'}; #$browser = $ENV{'HTTP_USER_AGENT'}; #$media = $ENV{'HTTP_ACCEPT'}; # #open(LOGFILE, ">>$ikondir/data/stats.log"); ##flock(FILE, 2); #print LOGFILE "$logname|$currenttime|$where|$referer|$ipaddress|$browser\n"; #close(LOGFILE); ####### if ($method eq "$ibtxt{'0016'}") { $filetoopen = "$ikondir" . "data/onlinedata.dat"; $filetoopen = &stripMETA($filetoopen); open(FILE,"$filetoopen"); @onlinedata = <FILE>; close(FILE); foreach $line (@onlinedata) { chomp $line; ($savedusername, $savedtime, $savedwhere, $savedipadr) = split(/\|/, $line); $lookfor = substr($savedusername, 0, 5); if ($lookfor eq "$ibtxt{'0043'}") { $guests++; } else { $members++; $cleanmember = $savedusername; $cleanmember =~ s/ /\_/g; $savedusername = substr($savedusername,0,20) if length $savedusername > 19; $memberoutput .= qq~» <a href="$profileprog?action=show&member=$cleanmember">$savedusername </a>~; } } } } # end routine | |