#!/usr/local/bin/perl #------------------------------------------------------------------------------ # Webmonkey Movie Database v1.0 # Written by Colin Ferm # ferm@wired.com # # Feel free to use this for your own purposes, changing it as you wish. Please # leave this header in all modifications, noting the changes made, and adding # your name to the author field. That's all we ask, and that you send on a URL # to wherever it's used, just so I can see all the neat things people might # do with it. # # 1.0 - First written for a Webmonkey article by Colin Ferm 11/24/98 #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Below is the standard input-getter thingy, which will grab the input regardless # of whether it's "get" or "post," and will save it to $in. #------------------------------------------------------------------------------ my $in; if ($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } else { $in = <STDIN>; } #------------------------------------------------------------------------------ # The first line pulls out the "+"s that should be spaces, and the second # line converts URI characters back to nonalphanumeric characters. # The line after that splits the input into %movie. #------------------------------------------------------------------------------ $in =~ s/\+/ /g; $in =~ s/%(..)/pack("c",hex($1))/ge; my %movie = split (/=/, $in); #------------------------------------------------------------------------------ # These lines read the database in to the variable @data and close the file. #------------------------------------------------------------------------------ open (DATA, "/usr/people/ferm/movies.dat"); my @data = <DATA>; close (DATA); #------------------------------------------------------------------------------ # This first print prints out the top of the document with the <body> tags # and just generally sets the flavor of the look of the page. #------------------------------------------------------------------------------ print <<END; Content-Type: text/html\n\n <html> <body bgcolor="#000000" text="#ffffff"> <center><h2>Results</h2></center><p> <center><hr size=1 width=50%></center> END #------------------------------------------------------------------------------ # This for loop is the real meat of the script. It runs through the array # looking for the title, then prints the relevant info out (depending on if # it's there or not). #------------------------------------------------------------------------------ for ($i = 0; $i <= $#data; $i++) { if ($data[$i] =~ /-- $movie{'title'} --/i) { print <<END; <center><b><font size="+1">$data[$i + 1]</font></b></center><br> $data[$i + 2]<br> END last; } elsif ($i == $#data) { print "<b><i>Sorry! I haven't reviewed that one yet!</i></b>"; } } #------------------------------------------------------------------------------ # This prints out the footer of the document. #------------------------------------------------------------------------------ print <<END; <center><hr size=1 width=50%></center> </body> </html> END