#!/usr/bin/perl ################################################################# # UserLogger.pl # ################################################################# # Written by: Gobalopper <-> Gobalopper@Dune2k.com # ################################################################# # Lets you display which members are online on other pages of # # your site. This will log members in and they will be marked # # as online viewing your website. # # Usage: # # # # OR # # # # Use whatever method works. It will depend on your server and # # will change depending on where YaBB was installed. # # If you just want to log people in but not print out the # # current stats use UserLogger.pl?action=log_only instead. # ################################################################# $recentplver = "1 Gold - SP1"; ##Require## use CGI::Carp qw(fatalsToBrowser); require "Settings.pl"; require "$language"; require "$sourcedir/Subs.pl"; require "$sourcedir/Load.pl"; use CGI qw/:standard/; ##Load Cookie## &LoadCookie; ##Write Log## fopen( LOG, "$vardir/log.txt" ); @online = ; fclose( LOG ); fopen( LOG, ">$vardir/log.txt" ); $field = "$username"; my $iplog = "$ENV{'REMOTE_ADDR'}"; $webpage = "$ENV{'QUERY_STRING'}"; if ( $field eq "Guest" ) { $field = "$ENV{'REMOTE_ADDR'}"; } if ($hideme[0] == 1){ print LOG "$field\|$logdate\|$date\|$username\|$webpage\|$website\|$INFO{'username'}\|$INFO{'num'}|$user_ip|1\n"; } else{ print LOG "$field\|$logdate\|$date\|$username\|$webpage\|$website\|$INFO{'username'}\|$INFO{'num'}|$user_ip\n"; } foreach $curentry ( @online ) { $curentry =~ s/\n//g; ( $name, $value, $name1, $name2, $name3, $name4, $name5, $name6, $ipinfo ) = split( /\|/, $curentry ); $date1 = "$value"; $date2 = "$logdate"; &calctime; if ( $name ne "$field" && $result <= 5 && $result >= 0 && $name ne "$ENV{'REMOTE_ADDR'}" ) { print LOG "$curentry\n"; } if(-e "$memberdir/$name.dat" && $result > $OnlineLogTime) {&WriteLastOnline($name, $date, "x", "x");} } fclose( LOG ); ##Load Info## $guests = 0; $counter = 0; $users = ''; fopen( FILE, "$vardir/log.txt" ); @entries = ; fclose( FILE ); foreach $curentry ( @entries ) { chomp $curentry; ( $name, $value ) = split ( /\|/, $curentry ); if ( $name ) { &LoadUser( $name ); if ( exists $userprofile{ $name } ) { #$users .= qq~ $userprofile{ $name }->[1],\n~; #san add myself color in whologger &LoadUserDisplay($name, 1); $userprofile{ $name }->[1] = $userprofile{$user}->[1]; $whoonlogger = $link{$name}; $whoonlogger =~ s~size="2"~size="1"~; $users .= qq~$whoonlogger \n~; #san add myself color in whologger end $counter++; } else { ++$guests; } } } $users =~ s~,\n\Z~~; $countonl = $counter + $guests; ##Check Query String## &readform; ##Print Who's On## if ( $action eq 'log_only' ) { print "Content-type: text/html\n\n"; } else { print "Content-type: text/html\n\n"; #print "$who{'2'}
\n"; ##Choose Grammar## if ( $guests == 1 ) { $guest_info = qq~$guests $txt{'28'},~; } else { $guest_info = qq~$guests $txt{'141'},~; } if ( $counter == 1 ) { $user_info = qq~$counter $who{'103'}~; } else { $user_info = qq~$counter $txt{'142'}~; } ##Print Info## print "$guest_info $user_info
$users"; } 1;