Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Oct 2003 02:57:33 -0600 (MDT)
From:      Nick Rogness <nick@rogness.net>
To:        Charles Howse <chowse@charter.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Perl cgi redirect not working
Message-ID:  <20031005025435.U45148-100000@skywalker.rogness.net>
In-Reply-To: <005901c3883e$12780030$04fea8c0@moe>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 1 Oct 2003, Charles Howse wrote:

> Hi,

> I'm *copying an example* perl cgi script from "FreeBSD Unleashed" pp.
> 699. I have 2 issues.
>
> 1. The redirect on the last line isn't working.  It opens a blank page
> and prints the text "Location: http://howse.no-ip.org/thanks.shtml".
> That's not what I want.  I want to open the page thanks.shtml.
>
> 2. I can't see the text in the book clear enough to know whether the
> characters I've marked with ^ should be dashes or tildies.
>
> I've Googled for the redirect, and tried a few examples, no joy. Would
> someone be kind enough to help?
>
>
> #!/usr/bin/perl
>
> read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
> @pairs = split(/&/, $buffer);
> foreach $pair (@pairs)
> {
>     ($name, $value) = split(/=/, $pair);
>     $value =~ tr/+/ /;
>             ^
>     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>             ^
>     $value =~ s/~!/ ~!/g;
>             ^   ^   ^
>     $FORM{$name} = $value;
> }
>
> print "Content-type: text/html\n\n";
>
> open (MAIL,"| /usr/sbin/sendmail -oi -t");
> print MAIL "From: $FORM{'name'} <$FORM{'email'}>\n";
> print MAIL "To: charles\n";
> print MAIL "Subject: Contact form output\n\n";
> print MAIL "$FORM{'name'}, from $ENV{'REMOTE_HOST'}
> ($ENV{'REMOTE_ADDR'}), has sent you the following comment:\n\n";
> print MAIL "$FORM{'comment'}\n";
> close (MAIL);
>
> print "Location: http://howse.no-ip.org/thanks.shtml\n\n";
>

1) This is a little extreme for a simple redirect.  A simple 3 liner will
   do the trick:

  #!/usr/bin/perl

  print "Location: http://howse.no-ip.org/thanks.shtml\n\n";
  exit;


2) They are suppose to be tildes (~).

Nick Rogness <nick@rogness.net>
-
  How many people here have telekenetic powers? Raise my hand.
  				-Emo Philips




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031005025435.U45148-100000>