home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet 1996 World Exposition
/
park.org.s3.amazonaws.com.7z
/
park.org.s3.amazonaws.com
/
cgi-bin
/
form-mail.fairmaster.old
< prev
next >
Wrap
Text File
|
2017-09-21
|
7KB
|
201 lines
#!/usr/local/bin/perl -- -*-perl-*-
# ------------------------------------------------------------
# Form-mail.pl, by Reuven M. Lerner (reuven@the-tech.mit.edu).
#
# Last updated: March 2, 1994
#
# Form-mail provides a mechanism by which users of a World-
# Wide Web browser may submit comments to the webmasters
# (or anyone else) at a site. It should be compatible with
# any CGI-compatible HTTP server.
#
# Please read the README file that came with this distribution
# for further details.
# ------------------------------------------------------------
# ------------------------------------------------------------
# This package is Copyright 1994 by The Tech.
# Form-mail is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
# Form-mail is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with Form-mail; see the file COPYING. If not, write to the Free
# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# ------------------------------------------------------------
# Define fairly-constants
# This should match the mail program on your system.
$mailprog = '/usr/lib/sendmail -odq';
# This should be set to the username or alias that runs your
# WWW server.
$recipient = 'fairmaster@park.org';
# Print out a content-type for HTTP/1.0 compatibility
print "Content-type: text/html\n\n";
if ($ENV{'CONTENT_LENGTH'} <= 0) {
$reference = $ENV{'QUERY_STRING'} ;
$reference =~ tr/+/ /s;
print <<EoI;
<head><title>Comments to Fair Administration</title></head>
<BODY BGCOLOR="#FFFFFF" background="/Images/expo_hbk_01.gif" TEXT="#000000" LINK="#97694F" VLINK="#42426f">
<a href="/cgi-bin/imagemap/Images/htoolbar.map">
<img align="left" width="486" height="101"
SRC="/Images/htoolbar.gif" ISMAP border="0"></a>
<br clear="all">
<table width="600" height="0" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" valign="top" width="100" height="26" colspan="2">
</td></tr>
<tr>
<td align="left" valign="top" width="100" >
<td align="left" valign="top" width="500" >
<p>
<Head><Title>Comments to the Internet 1996 World Exposition</Title></Head>
<Body>
<font size="+2"><b>Comments to Fair Administration</font size="+2"></b>
<p>
Please enter any comments you might have in the space below, and
select the "Send comments" button when you are through.
If your browser doesn't support forms,
<a href="mailto:fairmaster@park.org">mail</a> us your comments.
<p>
<Form method=POST action="/cgi-bin/form-mail.fairmaster">
<inPUT NAME="username"> Your E-Mail Address<br>
<inPUT NAME="realname"> Your Name<br>
<inPUT NAME="url"> Relevant URL<br>
<inPUT NAME="subject" Value="$reference" > Subject<P>
<inPUT NAME="about" Value="$ENV{'HTTP_REFERER'}" Type="hidden">
Please enter any comments you might have in the space below:<P>
<TEXTAREA NAME="comments" ROWS="10" COLS="70"></TEXTAREA><P>
<P>
<Input TYPE="submit" VALUE="Send comments">
<Input TYPE="reset" VALUE="Erase comments"><p>
</Form>
</td>
</tr>
</table>
</body>
</HTML>
EoI
} else {
# Print a title and initial heading
print "<Head><Title>Thank you</Title></Head>";
# Make the person feel good for writing to us
print "<BODY BGCOLOR=\"#FFFFFF\" background=\"/Images/expo_hbk_01.gif\" TEXT=\"#000000\" LINK=\"#97694F\" VLINK=\"#42426f\">";
print "";
print "<a href=\"/cgi-bin/imagemap/Images/htoolbar.map\">";
print "<img align=\"left\" width=\"486\" height=\"101\" ";
print "SRC=\"/Images/htoolbar.gif\" ISMAP border=\"0\"></a>";
print "<br clear=\"all\">";
print "";
print "<table width=\"600\" height=\"0\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
print " <tr>";
print " <td align=\"left\" valign=\"top\" width=\"100\" height=\"26\" colspan=\"2\">";
print " </td></tr>";
print "<tr>";
print "<td align=\"left\" valign=\"top\" width=\"100\" >";
print "<td align=\"left\" valign=\"top\" width=\"500\" >";
print "<p>";
print "<font size=\"+2\"><b>Thank You!</font size=\"+2\"></b>";
print "";
print "<p>";
# 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
$value =~ s/~!/ ~!/g;
$FORM{$name} = $value;
}
print "Thank you for your comments regarding:";
print "<ul> $FORM{'subject'} </ul><p>";
print "";
if (! $FORM{'username'} || ! $FORM{'subject'} || ! $FORM{'comments'}) {
print "<p>However, messages with no email address, subject or comments will not be sent.";
print "<p>";
} else {
# Now send mail to $recipient
&send_mail;
}
print " </td></tr></table>";
print "";
print " </td>";
print " </tr>";
print "</table>";
print "";
print "";
print "</body>";
print "</HTML>";
}
exit 0;
#
# send mail message
#
sub send_mail {
local($about) = $FORM{'about'};
open (MAIL, "|$mailprog $recipient ") || die "Can't open $mailprog!\n";
print MAIL "Reply-to: $FORM{'username'} ($FORM{'realname'})\n";
print MAIL "Subject: $FORM{'subject'}\n\n";
print MAIL "$FORM{'username'} ($FORM{'realname'}) sent the following\n";
print MAIL "comment about $about:\n";
print MAIL "------------------------------------------------------------\n";
print MAIL "URL: $FORM{'url'}\n";
print MAIL "$FORM{'comments'}";
print MAIL "\n------------------------------------------------------------\n";
print MAIL "Server name: $ENV{'SERVER_NAME'}\n";
print MAIL "Gateway Interface: $ENV{'GATEWAY_INTERFACE'}\n";
print MAIL "Path Info: $ENV{'PATH_INFO'}\n";
print MAIL "Path Translated: $ENV{'PATH_TRANSLATED'}\n";
print MAIL "Script Name: $ENV{'SCRIPT_NAME'}\n";
print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n";
print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n";
print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n";
print MAIL "User Agent: $ENV{'HTTP_USER_AGENT'}\n"
if defined($ENV{'HTTP_USER_AGENT'});
close (MAIL);
}