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.open < prev    next >
Text File  |  2017-09-21  |  7KB  |  207 lines

  1. #!/usr/local/bin/perl -- -*-perl-*-
  2.  
  3. # ------------------------------------------------------------
  4. # Form-mail.pl, by Reuven M. Lerner (reuven@the-tech.mit.edu).
  5. #
  6. # Last updated: March 2, 1994
  7. #
  8. # Form-mail provides a mechanism by which users of a World-
  9. # Wide Web browser may submit comments to the webmasters
  10. # (or anyone else) at a site.  It should be compatible with
  11. # any CGI-compatible HTTP server.
  12. # Please read the README file that came with this distribution
  13. # for further details.
  14. # ------------------------------------------------------------
  15.  
  16. # ------------------------------------------------------------
  17. # This package is Copyright 1994 by The Tech. 
  18.  
  19. # Form-mail is free software; you can redistribute it and/or modify it
  20. # under the terms of the GNU General Public License as published by the
  21. # Free Software Foundation; either version 2, or (at your option) any
  22. # later version.
  23.  
  24. # Form-mail is distributed in the hope that it will be useful, but
  25. # WITHOUT ANY WARRANTY; without even the implied warranty of
  26. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  27. # General Public License for more details.
  28.  
  29. # You should have received a copy of the GNU General Public License
  30. # along with Form-mail; see the file COPYING.  If not, write to the Free
  31. # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  32. # ------------------------------------------------------------
  33.  
  34. # Define fairly-constants
  35.  
  36. # This should match the mail program on your system.
  37. $mailprog = '/usr/lib/sendmail -odq';
  38.  
  39. # This should be set to the username or alias that runs your
  40. # WWW server.
  41. $recipient = 'fairmaster@park.org';
  42.  
  43.  
  44. # Print out a content-type for HTTP/1.0 compatibility
  45. print "Content-type: text/html\n\n";
  46.  
  47. if ($ENV{'CONTENT_LENGTH'} <= 0) {
  48.     $reference = $ENV{'QUERY_STRING'} ;
  49.     $reference =~ tr/+/ /s;
  50.  
  51.     print <<EoI;
  52.  
  53. <head><title>Comments to Fair Administration</title></head>
  54. <BODY BGCOLOR="#FFFFFF" background="/Images/expo_hbk_01.gif" TEXT="#000000" LINK="#97694F" VLINK="#42426f">
  55.  
  56. <a href="/">
  57. <img align="left" width="545" height=127
  58. SRC="/Images/fair_header.gif" border="0">
  59. </a>
  60. <br clear="all">
  61.  
  62. <table width="600" height="0"  border="0" cellpadding="0" cellspacing="0">
  63.     <tr>
  64.         <td align="left" valign="top" width="100" height="26" colspan="2">
  65.     </td></tr>
  66. <tr>
  67. <td align="left" valign="top" width="100" >
  68. <td align="left" valign="top" width="500"  >
  69. <p>
  70.  
  71. <Head><Title>Comments to the Internet 1996 World Exposition</Title></Head>
  72. <Body>
  73. <font size="+2"><b>Comments to Fair Administration</font size="+2"></b>
  74.  
  75. <p>
  76. Please enter any comments you might have in the space below, and
  77. select the "Send comments" button when you are through.
  78. If your browser doesn't support forms, 
  79. <a href="mailto:fairmaster@park.org">mail</a> us your comments.
  80. <p>
  81.  
  82. <Form method=POST action="/cgi-bin/form-mail.fairmaster">
  83.  
  84. <inPUT NAME="username"> Your E-Mail Address<br>
  85. <inPUT NAME="realname"> Your Name<br>
  86. <inPUT NAME="url"> Relevant URL<br>
  87. <inPUT NAME="subject" Value="$reference" > Subject<P>
  88. <inPUT NAME="about" Value="$ENV{'HTTP_REFERER'}" Type="hidden">
  89. Please enter any comments you might have in the space below:<P>
  90.  
  91. <TEXTAREA NAME="comments" ROWS="10" COLS="50"></TEXTAREA><P>
  92.  
  93. <P>
  94.  
  95. <Input TYPE="submit" VALUE="Send comments">
  96. <Input TYPE="reset" VALUE="Erase comments"><p>
  97. </Form>
  98.  
  99.     </td>
  100.     </tr>
  101. </table>
  102.  
  103.    <p><a href="/Images/low_speed.map"><img align="left" width="638" height="87" alt="[Unreadable Image]" SRC="/Images/low_speed.gif" ISMAP border="0"></a>
  104.    <br clear="all">
  105.  
  106. </body>
  107. </HTML>
  108.  
  109. EoI
  110.  
  111. } else {
  112.     # Print a title and initial heading
  113.     print "<Head><Title>Thank you</Title></Head>";
  114.  
  115.     # Make the person feel good for writing to us
  116.  
  117. print "<BODY BGCOLOR=\"#FFFFFF\" background=\"/Images/expo_hbk_01.gif\" TEXT=\"#000000\" LINK=\"#97694F\" VLINK=\"#42426f\">";
  118. print "";
  119. print "<a href=\"/\">";
  120. print "<img align=\"left\" width=\"545\" height=\"127\" SRC=\"/Images/fair_header.gif\" border=\"0\"></a>";
  121. print "<br clear=\"all\">";
  122. print "";
  123. print "<table width=\"600\" height=\"0\"  border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
  124. print "    <tr>";
  125. print "        <td align=\"left\" valign=\"top\" width=\"100\" height=\"26\" colspan=\"2\">";
  126. print "    </td></tr>";
  127. print "<tr>";
  128. print "<td align=\"left\" valign=\"top\" width=\"100\" >";
  129. print "<td align=\"left\" valign=\"top\" width=\"500\"  >";
  130. print "<p>";
  131. print "<font size=\"+2\"><b>Thank You!</font size=\"+2\"></b>";
  132. print "";
  133. print "<p>";
  134.  
  135.  
  136.     # Get the input
  137.         read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  138.         # Split the name-value pairs
  139.         @pairs = split(/&/, $buffer);
  140.         foreach $pair (@pairs) {
  141.            ($name, $value) = split(/=/, $pair);
  142.  
  143.            # Un-Webify plus signs and %-encoding
  144.            $value =~ tr/+/ /;
  145.            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  146.  
  147.            # Stop people from using subshells to execute commands
  148.            $value =~ s/~!/ ~!/g;
  149.             $FORM{$name} = $value;
  150.         }
  151.  
  152. print "Thank you for your comments regarding:";
  153. print "<ul>  $FORM{'subject'} </ul><p>";
  154. print "";
  155.         if (! $FORM{'username'} || ! $FORM{'subject'} || ! $FORM{'comments'}) {
  156.                 print "<p>However, messages with no email address, subject or comments will not be sent.";
  157.                 print "<p>";
  158.         } else {
  159.                 # Now send mail to $recipient
  160.                 &send_mail;
  161.         }
  162.  
  163. print "    </td></tr></table>";
  164. print "";
  165. print "    </td>";
  166. print "    </tr>";
  167. print "</table>";
  168. print "";
  169. print "";
  170. print "<p><a href=\"/Images/low_speed.map\"><img align=\"left\" width=\"638\" height=\"87\" alt=\"[Unreadable Image]\" SRC=\"/Images/low_speed.gif\" ISMAP border=\"0\"></a>";
  171. print "<br clear=\"all\">";
  172. print "</body>";
  173. print "</HTML>";
  174.  
  175. }
  176. exit 0;
  177.  
  178. #
  179. #  send mail message
  180. #
  181. sub send_mail {
  182.     local($about) = $FORM{'about'};
  183.  
  184.     open (MAIL, "|$mailprog $recipient ") || die "Can't open $mailprog!\n";
  185.     print MAIL "Reply-to: $FORM{'username'} ($FORM{'realname'})\n";
  186.     print MAIL "Subject: $FORM{'subject'}\n\n";
  187.     print MAIL "$FORM{'username'} ($FORM{'realname'}) sent the following\n";
  188.     print MAIL "comment about $about:\n";
  189.     print MAIL  "------------------------------------------------------------\n";
  190.     print MAIL "URL: $FORM{'url'}\n";
  191.     print MAIL "$FORM{'comments'}";
  192.     print MAIL "\n------------------------------------------------------------\n";
  193.     print MAIL "Server name: $ENV{'SERVER_NAME'}\n";
  194.     print MAIL "Gateway Interface: $ENV{'GATEWAY_INTERFACE'}\n";
  195.     print MAIL "Path Info: $ENV{'PATH_INFO'}\n";
  196.     print MAIL "Path Translated: $ENV{'PATH_TRANSLATED'}\n";
  197.     print MAIL "Script Name: $ENV{'SCRIPT_NAME'}\n";
  198.     print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n";
  199.     print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n";
  200.     print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n";
  201.     print MAIL "User Agent: $ENV{'HTTP_USER_AGENT'}\n"
  202.       if defined($ENV{'HTTP_USER_AGENT'});
  203.     close (MAIL);
  204. }
  205.  
  206.