#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<BODY BGCOLOR=#FFFFFF TEXT=#000000><h2><center>";
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

   # Split the name-value pairs
   @pairs = split(/&/, $buffer);

   foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);

      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

      $cgi{$name} = $value;
   }


$nickname=$cgi{'nickname'};
$nickname =~ tr/A-Z/a-z/;
$age=$cgi{'age'};
$user=$cgi{'user'};
$user =~ tr/A-Z/a-z/;
$pass=$cgi{'ref'};
$deduct=0;
@record = split(/ /,$cgi{'file'});
$file = join('',"/var/spool/news/htdocs/tlcplus/",@record[0],@record[2],".html");
open(Fin,$file);
while(<Fin>){
	($n,$a,$e)=split(/:/,$_);
	$n=~tr/A-Z/a-z/;
	if( ($nickname=~/$n/) && ($age==$a) ){
		$deduct=1;
		#print "$n $a <A HREF=mailto:$e>$e</A><BR>\n";
	}
}
close(Fin);
$allow=0;
open(F,"/usr/local/etc/httpd/htdocs/tlcplus/passwd.html");
open(Fout,">passwd.new");
while(<F>)
{
	($u,$p,$nv)= split(/:/,$_);
	$u =~ tr/A-Z/a-z/;
	if( ($user =~ /$u/) && ($pass =~ /$p/) && ($nv != 0))
	{
		$allow=1;
		$nv-=$deduct;
		$timetocheck = $nv;
	}
	$u =~ s/\r//eg;
	$u =~ s/\n//eg;
	$p =~ s/\r//eg;
	$p =~ s/\n//eg;
	$nv =~ s/\r//eg;
	$nv =~ s/\n//eg;
	print Fout "$u:$p:$nv\n";
}
close(Fout);
close(F);
system('mv passwd.new /usr/local/etc/httpd/htdocs/tlcplus/passwd.html');
#rename('passwd.new','passwd');
if( $allow == 1){
	print "<img src=/home.gif><BR>";
	if($deduct==1){
	@record = split(/ /,$cgi{'file'});
	$file = join('',"/var/spool/news/htdocs/tlcplus/",@record[0],@record[2],".html");
	open(F,$file);
	while(<F>){
		($n,$a,$e)=split(/:/,$_);
		$n=~tr/A-Z/a-z/;
		if( ($nickname=~/$n/) && ($age==$a) ){
			print "$n $a <A HREF=mailto:$e>$e</A><BR>\n";
		}
	}
	close(F);
	}elsif($deduct==0)
	{
		print "Record not Found!!<BR>";
	}
	
	print "<BR>You have $timetocheck more credit to check e-mail database<BR>\n";
	open(F,"tail.file");
	while(<F>){
		print $_;
	}
	close(F);
}else{
	open(F,"/var/spool/news/htdocs/tlcplus/notic.html");
	while(<F>){
		print $_;
	}
	close(F);
}
