#!/usr/sbin/perl
############################################################
# feedback.cgi - Tulassay Zsolt <tulas@c3.hu> 1998.
# 0.1 változat
############################################################
$sendmail = "/usr/lib/sendmail";


####################
sub parse_input {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@valtozoparok = split(/&/, $buffer);
foreach $valtozopar (@valtozoparok) {
   ($nev, $ertek) = split(/=/, $valtozopar);
   $ertek =~ tr/+/ /;
   $ertek =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $ertek =~ s/<!--(.|\n)*-->//g;
   $FORM{$nev} = $ertek;
   }
if ($FORM{'to'}) { $to = "$FORM{'to'}" }
   else { &error(no_to) }
if ($FORM{'subject'}) { $subject = "$FORM{'subject'}" }
   else { $subject = "Feedback" }
if ($FORM{'link'}) { $link = "$FORM{'link'}" }
   else { $link = "http://www.c3.hu/~tulas/feedback.html" }
if ($FORM{'name'}) { $name = "$FORM{'name'}" }
   else { $name = "Névtelen" }
if ($FORM{'email'}) { $email = "$FORM{'email'}" }
$sender = "$name <$email>";   
if ($FORM{'message'}) { $message = "$FORM{'message'}" }
   else { &error(no_message)}
}


####################
sub time {
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
   if ($sec < 10) { $sec = "0$sec" }
   if ($min < 10) { $min = "0$min" }
   if ($hour < 10) { $hour = "0$hour" }
   if ($mon < 10) { $mon = "0$mon" }
   if ($mday < 10) { $mday = "0$mday" }
$year = $year + 1900;
@napok = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
@honapok = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$date = "$napok[$wday], $mday $honapok[$mon] $year $hour\:$min\:$sec +0100";
}


####################
sub mail {
open(MAIL,"|$sendmail $to");
print MAIL "From: $sender\n";
print MAIL "To: $to\n";
print MAIL "Subject: $subject\n";
print MAIL "Date: $date\n";
print MAIL "X-Sender: feedback.cgi v0.1 by Tulassay Zsolt tulas\@c3.hu\n";
print MAIL "$message\n";
close(MAIL);
}


####################
sub error {
if ($_[0] eq 'no_to') {
   &htmloutput("Hiba: Nincs címzett magadva."); 
   exit }
if ($_[0] eq 'no_message') {
   &htmloutput("Hiba: Nincs üzenet.");
   exit }
}


####################
sub htmloutput {
$hibauzenet = $_[0];
print "Content-type: text/html\n\n";
print "<html>\n<head><title>Feedback</title>\n";
print "<style type=\"text/css\">\n<!--\n a { text-decoration: none}\n-->\n</style>\n";
print "</head>\n\n<body bgcolor=white text=#191970 link=#00a000 vlink=#9480d3>\n";
print "<table border=0 width=400 bgcolor=#eee8aa cellspacing=0 cellpadding=0>\n";
print "<tr><td width=20>&nbsp;</td><td><font face=\"verdana,arial,helvetica\">\n";
print "<br><b>feedback.cgi - &copy; 1998. <a href=\"http://www.bke.hu/~zsolt/\">Tulassay Zsolt</a> &lt;<a href=\"mailto:tulas\@c3.hu\">tulas\@c3.hu</a>&gt;<br>\n";
print "<br>&nbsp;&nbsp;$hibauzenet</b><br>&nbsp;</td></tr>\n";
print "</table>\n\n</body>\n</html>\n";
}


############################################################
# A program
###########

if ($ENV{'CONTENT_LENGTH'} eq '') {
   &htmloutput("Hiba: Nincs bemenő adat.") }
else {
   &parse_input;
   &time;
   &mail;
   print "Location: $link\n";
   print "Content-type: text/html\n\n";
}
