#!/usr/bin/perl -w use strict; use diagnostics; # available from http://www.perl.com/CPAN/ use CGI; use Mysql; # ---------------------------------------- # Name some global variables my $sender_name = ""; my $sender_email = ""; my $recipient_name = ""; my $graphic_name = ""; my $postcard_text = ""; # Create an instance of CGI my $query = new CGI; # Send an appropriate MIME header print $query->header("text/html"); # Get the name to match from the query string my $id = $query->param("keywords"); # Check that the user entered a postcard ID if ($id == 0) { print $query->start_html(-title => "No ID given!"); print "<P>Sorry, but I can retrieve "; print "postcards only when an ID number is "; print "provided. Please enter one, and I "; print "will try to find a postcard "; print "matching that ID number.</P>\n"; print "<isindex>\n"; print $query->end_html; exit; } # Connect via Unix sockets to the database on # this server my $dbh = Mysql->connect("localhost", "test"); # Build up our SQL command my $command = ""; $command = "select sender_name,sender_email,"; $command .= "recipient_name,graphic_name,"; $command .= "postcard_text from postcards "; $command .= "where id_number = $id"; # Uncomment for debugging # print "<P>SQL command: \"$command\"</P>\n"; # Send the query my $sth = $dbh->query($command); # Make sure that $sth returned reasonably die "Error with command \"$command\"" unless (defined $sth); # Report an error if no rows are returned if ($sth->numrows == 0) { print $query->start_html(-title => "Invalid ID!"); print "<P>Sorry, but the ID number you "; print "provided does not match any postcard"; print "in my database. Please try again, "; print "and I will try to find a postcard "; print "matching that ID number.</P>\n"; print "<isindex>\n"; print $query->end_html; exit; } # ---------------------------------------------------- # Iterate through the returned rows my @arr = (); while (@arr = $sth->fetchrow) { # Assign our variables to the returned row ($sender_name, $sender_email, $recipient_name, $graphic_name, $postcard_text) = @arr; } # ---------------------------------------------------- # Begin the HTML output print $query->start_html(-title => "Postcard for $recipient_name"); print "<img src=\"/tmp/$graphic_name\"</P>\n"; print "<P><pre>$postcard_text</pre></P>\n"; print "<P>From $sender_name ($sender_email)</P>\n"; # End the HTML print $query->end_html; exit;