PDA

View Full Version : Redirectat


acidfred
2000-09-23, 19:07
I asp finns funktionen
response.redirect

som skickar användaren till en ny sida, när man har kört den kod som behövs.

Kan man göra så med perl åxå?
/fred

------------------
**IT UF, gör hemsidor för både stora och små företag. Hjälper till med det mesta utan att ta ut rövarpriser**
everything.at/it/ (http://everything.at/it/)

stevenet
2000-09-23, 19:27
#!/usr/bin/perl
$ny_sida = "http://www.webforum.nu";
print "Location: $ny_sida\n\n";
exit;

------------------
SteveNet (http://www.webmarkit.net/stevenet) - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.

acidfred
2000-09-24, 05:37
Jag får det inte att fungera...den bara skriver ut adressen...som text asså

Vad gör jag för fel?
/fred

------------------
**IT UF, gör hemsidor för både stora och små företag. Hjälper till med det mesta utan att ta ut rövarpriser**
everything.at/it/ (http://everything.at/it/)

stevenet
2000-09-24, 08:26
Testa någon av följande:

Kod 1:
#!/usr/bin/perl
print "HTTP/1.0 302 Temporary Redirection\r\n" if $ENV{PERLXS} eq "PerlIS";
$ny_sida = "http://www.webforum.nu";
print "Location: $ny_sida\n\n";
exit;
Kod 2:
#!/usr/bin/perl
print "Content-type: text/html\n";
$ny_sida = "http://www.webforum.nu";
print ("Location: $ny_sida\n\n");
exit;

------------------
SteveNet (http://www.webmarkit.net/stevenet) - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.

[Redigerat av stevenet den 24 sep 2000]

Peter_B
2000-09-24, 09:42
Du måste vara noga med att "Location: <A HREF="http://ny_location...\n\n"" TARGET=_blank>http://ny_location...\n\n"</A> är det första och enda som kommer ur programmet (med undantag för cookies och annat förstås.. men absolut ingen Content-type: text/html).

tänk även på att inte avsluta http-headern för tidigt. i exemplet ovan avslutas headern med ett extra \n, men på tidigare rader skall det bara vara ett \n, inte två.

prova att bara skriva ett litet testprogram på några rader. då kan du testa precis vad som händer, och ta dina erfarenheter med dig vidare till större projekt. det där lät väl bra? :)

Peter Bredlöv
http://www.scorpiondata.com


[Redigerat av Peter_B den 24 sep 2000]

stevenet
2000-09-24, 13:55
Skälet till att jag lade till Content-type: text/html, var att det första exemplet inte fungerade samt att det fungerar och används på min server.
Dessutom fungerar det bäst, på min server, med två \n.

Annars håller jag med Peter, prova på!

------------------
SteveNet (http://www.webmarkit.net/stevenet) - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.

Peter_B
2000-09-24, 22:02
tja, jag har bara provat det med apache och linux, men om det funkar på andra sätt så har iaf jag lärt mig nått.. fast bra skummt va det isf :)

Hansen
2000-09-25, 07:32
Hej!
Det ska ju funka på alla browsers som följer standarden.

Här kommer ett utdrag från rfc2616 Hypertext Transfer Protocol - HTTP/1.1 @ http://www.faqs.org/rfcs/rfc2616.html


14.30 Location

The Location response-header field is used to redirect the recipient
to a location other than the Request-URI for completion of the
request or identification of a new resource. For 201 (Created)
responses, the Location is that of the new resource which was created
by the request. For 3xx responses, the location SHOULD indicate the
server's preferred URI for automatic redirection to the resource. The
field value consists of a single absolute URI.

Location = "Location" ":" absoluteURI

An example is:

Location: http://www.w3.org/pub/WWW/People.html

Note: The Content-Location header field (section 14.14) differs
from Location in that the Content-Location identifies the original
location of the entity enclosed in the request. It is therefore
possible for a response to contain header fields for both Location
and Content-Location. Also see section 13.10 for cache
requirements of some methods.


//Hansen

------------------
Hansen
c.h@ngmedia.com

[Redigerat av Hansen den 25 sep 2000]