Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Perl web redirect

by davis (Vicar)
on Jun 10, 2002 at 15:15 UTC ( [id://173185]=note: print w/replies, xml ) Need Help??


in reply to Perl web redirect

You could try:
#!/usr/bin/perl use warnings; use strict; use CGI; my $q = new CGI; print $q->redirect(-uri=>"http://www.somewhere.com/");
For more information, see the docs on CGI.pm thusly:
perldoc CGI
Cheers
davis
Is this going out live?
No, Homer, very few cartoons are broadcast live - it's a terrible strain on the animator's wrist
Update: Fixed blockquote dumbness on my part
Update 2: Changed "location" to "uri" as per little's catch below.

Replies are listed 'Best First'.
Re: Perl web redirect
by Abigail-II (Bishop) on Jun 10, 2002 at 15:45 UTC
    Using CGI for this triviality seems like overkill.
    #!/usr/bin/perl print "Location: http://www.somewhere.com\n\n"; __END__
    Will do. Of course, using perl is overkill, you may as well write a one liner in C:
    int main () {printf ("Location http://www.somewhere.com\n\n");}

    Abigail

      For the simple case, agreed. Unfortunately it's difficult to tell from the poster's question whether or not this was the script's sole purpose.
      Abigail,

      Please read the specs if you want to do it by hand and right. There is quite more to be remitted, eg. the HTTP Status code, which in this case would be "302", which means MOVED. No, I don't think that using CGI.pm would be overkill (what about tachyon's suggestion for a light weight module instead?), it just helps you to have easy acces to teh Interface without knowing each little detail. Additionallly it helps you to protect your server against attacks very easily.

      Another hint on CGI's redirection, the name for the parameter is "uri" not "location", eg.

      print redirect(-uri=>"http://www.perlmonk.org/", -nph=>1, -cookie=>$cookie)
      Please study what the output is to see what has to be remitted.


      Have a nice day
      All decision is left to your taste
        We are talking CGI here, not HTTP. A Location header is the proper CGI response, it's up to the web server to turn the CGI response into an HTTP response.

        You aren't terminating your emitted lines with a CR LF either - the server takes care of such details.

        Abigail

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://173185]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (3)
As of 2024-05-26 19:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found