Hej, har fått i uppdrag att skriva om ett skript så att inlänkning till olika sidor fungerar.
Ska fungera så att om man slår in https://www.arnander.se så ska filen index.se.asp inkluderas.
Slår man in https://www.arnander.com ska filen index.com.asp inkluderas och om man slår in https://www.adcando.com så ska index.adcando.asp inkluderas.
Det tidigare skriptet höll reda på se respektive com. Jag har fått i uppdrag att fixa så att det funkar med adcando också.
Är mer bevandrad i php så jag undrar om följande är rätt innan jag går skarpt med det.
<%
Mapp = "COM"
If Instr(Request.ServerVariables("HTTP_HOST"),"www.arnander.se")>0 Then Mapp = "SE"
Select case Mapp
Case "COM" %>
<!-- #include file="index.com.asp" -->
<% Case "SE" %>
<!-- #include file="index.se.asp" -->
<% End Select
ElseIf Instr(Request.ServerVariables("HTTP_HOST"),"www.adcando.com")>0 %>
<!-- #include file="index.adcando.asp" -->
<%
End if %>
Det känns lite tårta på tårta med först en if-sats sedan en select case.
Kan du köra med server execute så skulle jag ha gjort så här:
<%
If Instr(Request.ServerVariables("HTTP_HOST"),"www.arnander.se")>0 Then
Server.Execute("index_se.asp")
ElseIf Instr(Request.ServerVariables("HTTP_HOST"),"www.arnander.com")>0 Then
Server.Execute("index_com.asp")
ElseIf Instr(Request.ServerVariables("HTTP_HOST"),"www.adcando.com")>0 Then
Server.Execute("index_adcando.asp")
end if
%>
Så detta fungerar alltså på samma sätt som med "include" kommandot?
Hur det igentligen fungerar har jag ingen aning om.
Men resultatet/effekten är ju likvärdigt.
Tror att Server execute tom. är lite effektivare eftersom att en includefil kommer att laddas även fast den inte visas.
Som jag förstått det så inkluderas koden med #include.
När du använder server.execute så exekveras koden som en egen sida. Vilket i sin tur betyder att du egentligen skall dimma dina variabler och skapa dina objekt på den sidan när du använder den varianten. Det behöver du ju inte när du bara inkluderar den.
Aha okey, men jag har inte så mycket variabler som följer med in i sidorna som inkluderas.
Men om jag vill köra include så antar jag att jag bara kan byta execute raderna mot include-rader!?
Hur funkar det om man vill att den hoppar till en annan katalog?
t.ex:
<%
If Instr(Request.ServerVariables("HTTP_HOST"),"www.arnander.se")>0 Then
Server.Execute("se/index.asp")
ElseIf Instr(Request.ServerVariables("HTTP_HOST"),"www.arnander.com")>0 Then
Server.Execute("com/index.asp")
ElseIf Instr(Request.ServerVariables("HTTP_HOST"),"www.adcando.com")>0 Then
Server.Execute("adcando/index.asp")
end if
%>
När jag provade på detta sätt så fick jag följande felmeddelande:
Serverobjekt fel 'ASP 0228 : 80004005'
Server.Execute-fel
/Default.asp, rad 3
Anropet till Server.Execute misslyckades när sidan lästes in.
Oops! Såg just att jag satt fel slash ;(
sånt som händer, hehe *gäspar*