#!/usr/bin/perl -w use strict; use diagnostics; available from http://www.perl.com/CPAN/ use CGI; use Mysql; # This should match the mail program on your # system. my $mailprog = '/usr/lib/sendmail'; # Create an instance of CGI my $query = new CGI; # Send an appropriate MIME header print $query->header("text/html"); # Grab values from some my $sender_name = $query->param("sender_name"); my $sender_email = $query->param("sender_email"); my $recipient_name = $query->param ("recipient_name"); my $recipient_email = $query-> param("recipient_email"); my $graphic_name = $query->param("graphic_name"); my $postcard_text = $query->param("postcard_text"); # Get the lowest digits from the time of day, # which should serve as a relatively unique ID # number my $id_number = time & 0xFFFFF & $$; # Connect via Unix sockets to the database on # this server my $dbh = Mysql->connect("localhost", "test"); # Build up our SQL command my $command = ""; $command = "insert into postcards "; $command .= " (id_number, sender_name, "; $command .= "sender_email, recipient_name, "; $command .= "recipient_email, graphic_name, "; $command .= "postcard_text) "; $command .= "values "; $command .= "($id_number, \"$sender_name\", $command .= "\"$sender_email\", "; $command .= "\"$recipient_name\", $command .= "\"$recipient_email\", "; $command .= "\"$graphic_name\", $command .= "\"$postcard_text\") "; # Uncomment for debugging # print "<P>SQL command: <B>$command</B></P>\n"; # Send the query my $sth = $dbh->query($command); # Make sure that $sth returned reasonably die "Error with command \"$command\"" unless (defined $sth); #--------------------------------------------------------------- # Send a postcard notification via e-mail open (MAIL, "|$mailprog $recipient_email") || die "Can't open $mailprog!\n"; # Headers in the mail message print MAIL "From: $sender_email\n"; print MAIL "To: $recipient_email\n"; print MAIL "Reply-to: $sender_email "; print MAIL "($sender_name)\n"; print MAIL "Subject: Postcard waiting for "; print MAIL "you\n\n"; # Body of the mail message print MAIL "A postcard from $sender_name "; print MAIL "($sender_email) is waiting for"; print MAIL "you at the URL \n\n"; # the following line wraps due to column width print MAIL "http://www.oursitename.com/cgi-bin/show-postcard.pl?$id_number\n"; close (MAIL); #-------------------------------------------------------------- # Begin the HTML output print $query->start_html(-title => "Thanks!"); print "<P>Thanks for sending a postcard!</P>\n"; # End the HTML print $query->end_html; exit;