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!