#!/usr/local/bin/perl # sets a page's rank and returns a thank you message $aflag = 0; $myquery = $ENV{'QUERY_STRING'}; ($myvote,$mygametitle,$mybegin,$myend,$bypasscache) = split(/\&/,$myquery); $mygametitle =~ tr/\+/ /; $mylink =~ tr/\~/\'/; if ($mybegin == 0) { $dbnumber = "1"; } if ($mybegin != 0) { $dbnumber = "2"; } open(FORLOCK,"gmlock.pl") or dienice("Rank set script could not open lock file: $!"); flock(FORLOCK, 2) or dienice("Rank set script could not gain exclusive lock on database: $!"); open(INF,"gmlist" . $dbnumber . ".pl") or dienice("Rank set script could not open proper game database for reading: $!"); @ary = ; close(INF); $i = -1; $gamenumber = -1; if ($mybegin != 0) { $i = $mybegin - 2; } while ($gamenumber == -1) { $i++; $line = @ary[$i]; chomp($line); ($gmtitle,$gmdescription,$gmurl,$totalvalue,$totalvotes,$averagevote,$clicks,$visibility,$siteid,$timesince,$lastip) = split(/\|/,$line); if ($gmtitle eq $mygametitle) { $gamenumber = $i; } } $line = @ary[$gamenumber]; chomp($line); ($gmtitle,$gmdescription,$gmurl,$totalvalue,$totalvotes,$averagevote,$clicks,$visibility,$siteid,$timesince,$lastip) = split(/\|/,$line); if ($lastip ne $ENV{'REMOTE_ADDR'}) { $totalvalue = $totalvalue + $myvote; $totalvotes++; $averagevote = $totalvalue / $totalvotes; $myavg = $averagevote; } $lastip = $ENV{'REMOTE_ADDR'}; if (($dbnumber == 1) && ($totalvotes > 2)) { @ary[$gamenumber] = ""; open(OUTF,">gmlist" . $dbnumber . ".pl") or dienice("Rank set script could not re-open proper database for writing: $!"); print OUTF @ary; close(OUTF); $dbnumber = 2; open(INF2,"gmlist" . $dbnumber . ".pl") or dienice("Rank set script could not open proper game database for reading: $!");; @ary = ; close(INF2); push(@ary,"this text will be replaced\n"); $gamenumber = $#ary; $aflag = 1; } @ary[$gamenumber] = "$gmtitle|$gmdescription|$gmurl|$totalvalue|$totalvotes|$averagevote|$clicks|$visibility|$siteid|$timesince|$lastip\n"; if ($aflag == 1) { # if the game is switching databases if ($gamenumber != 0) { $exitflag = -1; $i = $gamenumber; while ($exitflag == -1) { $i--; $line = @ary[$i]; chomp($line); ($gmtitle,$gmdescription,$gmurl,$totalvalue,$totalvotes,$averagevote,$clicks,$visibility,$siteid,$timesince,$lastip) = split(/\|/,$line); if ($myavg >= $averagevote) { $holder = @ary[$i]; @ary[$i] = @ary[$gamenumber]; @ary[$gamenumber] = $holder; $gamenumber--; } else { $exitflag = 2; } if ($i == 0) { $exitflag = 2; } } } } else { if ($myvote >= $myavg) { if ($gamenumber != 0) { $exitflag = -1; $i = $gamenumber; while ($exitflag == -1) { $i--; $line = @ary[$i]; chomp($line); ($gmtitle,$gmdescription,$gmurl,$totalvalue,$totalvotes,$averagevote,$clicks,$visibility,$siteid,$timesince,$lastip) = split(/\|/,$line); if ($myavg >= $averagevote) { $holder = @ary[$i]; @ary[$i] = @ary[$gamenumber]; @ary[$gamenumber] = $holder; $gamenumber--; } else { $exitflag = 2; } if ($i == 0) { $exitflag = 2; } } } } else { $exitflag = -1; $i = $gamenumber; while ($exitflag == -1) { $i++; $line = @ary[$i]; chomp($line); ($gmtitle,$gmdescription,$gmurl,$totalvalue,$totalvotes,$averagevote,$clicks,$visibility,$siteid,$timesince,$lastip) = split(/\|/,$line); if ($myavg < $averagevote) { $holder = @ary[$i]; @ary[$i] = @ary[$gamenumber]; @ary[$gamenumber] = $holder; $gamenumber++; } else { $exitflag = 2; } if ($i == $#ary) { $exitflag = 2; } } } } open(OUTF2,">gmlist" . $dbnumber . ".pl") or dienice("Rank set script could not re-open proper database for writing: $!"); print OUTF2 @ary; close(OUTF2); close(FORLOCK); print < ZG Games

Thanks! When you are done playing the game, click END_of_Multiline_Text if ($mybegin == 0) { print "here"; } if ($mybegin != 0) { print "here"; } print <

END_of_Multiline_Text sub dienice { my($msg) = @_; print "Content-type: text/html\n\n"; print "

Error

\n"; print "

" . $msg . "

\n"; print "

Please e-mail this error and the current time to \"rjahrman\@aol.com\" (no quotes).

\n"; exit; }