Klockan :
 ASP, Grunderna - Omdirigering 2002-07-08 00:49:56 
 Information om författaren :
Namn : Jimmy Staff
Epost : admin@aspwebb.com
Hemsida : http://www.aspwebb.com
Presentation :
Ansvarig på ASPWebb!
 Meny :
Startsidan (www.aspwebb.com)
Artikelarkivet
Föregående sida
Utskriftsvänlig sida
Kommentera artikel

ASP, Grunderna - Omdirigering

I denna artikel ska vi lära oss hur vi omdirigerar en användare på hemsidan.

 

Hur fungerar det ?

Det man först bör veta är att man inte får skicka någon HTML-kod till användaren innan man dirigerar om till en annan sida, detta för att ASP-koden inte kan skicka en halv sida och sen helt plötsligt byta sida.

Jag tänker inte gå till djupet med varför det fungerar så utan endast nämna att varje gång en sida skickas till webbläsaren så skickas även något som kallas för HEADER med gömt i bakgrunden, den innehåller information så som ip-adresser osv..

Det man gör när man omdirigerar en användare är att manipulera denna information så att webbläsaren laddar en annan sida. Har man redan skickat denna information så går det då alltså inte att omdirigera användaren.

 

Buffer

Om du använder en webbserver som ej Buffrar sidan innan den skickas till webbläsaren, så måste du använda följande kod längst upp på asp sidan :

<% Response.Buffer = True %>

Den koden gör att hela sidan laddas klart innan informationen skickas till webbläsaren.

Får du detta felmeddelande så ska du testa med att använda koden ovan :

Response-objektfel 'ASP 0156 : 80004005'

Fel på huvuden

/sidan.asp, line X

HTTP-huvudena har redan skrivits till klientläsaren. Ändringar till HTTP-huvudena måste göras innan sidinnehållet skrivs.

 

Koden

För att omdirigera en användare skriver du :

<% Response.Redirect("sida.asp") %>

Eller

<% Response.Redirect("http://www.aspwebb.com") %>

 

Det som händer med koden ovan är att HEADERN ändras vilket gör att webbläsaren begär en ny sida.

Det finns dock ett annat sätt att lösa detta på, med Server.transfer så kan du omdirigera användaren till en annan sida. Detta görs utan att webbläsaren märker något då omdirigeringen gör på servern.

 

Nackdelen med Server.transfer är att den endast kan omdirigera till sidor på samma webbserver.

 

Exempel

För att omdirigera användaren skriver du :

<% Server.Transfer("sida2.asp") %>

Denna kod fungerar alltså inte :

<% Server.Transfer("http://www.aspwebb.com") %>

 

Thats all folks!

 © 2010 Staff consulting - Jimmy Staff