#!/usr/bin/perl -w # The first line of the file is unnecessary for the Novonyx servers, but is necessary for other # web servers, leave it in to keep the code portable. ################################ # Necessary Fields in HTML Form: # senderemail = specifies the remote users email address for replies # sendername = specifies the remote users real identity # subject = the subject line that will appear in your email # link1 = the url for the link, relative to your web entry point # (ie link1="/index.html") # link2 = the text that will be printed for the link back on the return html page # (ie link2="Back to Wild Things Photography Home") # The first thing that must be printed out to a web page is the following line. It doesn't # actually print, but it tells the web server what format you will be sending it from this # program print "Content-type: text/html\n\n"; # Sendmail is saved as a separate program, so in order to use it, it must be "required" require("sendmail.pl"); # If the requestMethod is "POST", the data will be read from STDIN, # if "GET" it will be read from the URL line $requestMethod = $ENV{"REQUEST_METHOD"}; $input = ""; if($requestMethod eq "POST") { read(STDIN, $input, $ENV{"CONTENT_LENGTH"}); } else { $input = $ENV{'QUERY_STRING'}; } # Strip off white space and any html tags that come in with the form data, and # create an array of the name/value pairs %in = UnencodeFormData(); sendmail(%in); # Print Return HTML # Any reference to graphics of other URLs need the path relative to your web entry point # If your entry point is sys:/novonyx/suitespot/docs and your graphics are in # ~docs/web/graphics # the url to use is /web/codebreak/graphics/image.jpg print "Thanks For Your Submission\n"; print "\n"; print "\n"; print "
\n"; print "
Thank You!\n"; print "


Your submission has been received.\.
\n"; print "Your submission will be reviewed by the Professional Development Department
\n"; print "
\n"; print "
$ITEM{link2}
\n"; print ""; sub UnencodeFormData { # separate fields @fields = split(/&/, $input); # separate field names from field values foreach $field (@fields) { ($name, $value) = split(/=/, $field); # Convert + signs to spaces, $value =~ tr/+/ /; # convert %HEX values to ASCII characters $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # remove any embedded comments in case of server-side includes $value =~ s///g; # remove any HTML tags $value =~ s/<([^>]|\n)*>//g; $ITEM{$name} = $value; } # Replace spaces with underscores in the category name # $ITEM{category} = FixCategoryName($UNDERSCORE, $ITEM{category}); return(%ITEM); }