webForumDet fria alternativet

Länka rätt baserat på url:en

ASP

11 svar · 994 visningar · startad av monAmour

Medlem sedan dec. 2002258 inlägg
Frågan#1

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 %>

Tack på förhand!

Medlem sedan nov. 20017 144 inlägg
#2

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
%>
Medlem sedan dec. 2002258 inlägg
#3

Jo det tror jag att jag ska kunna göra! Är ju en ren iis server skulle jag tro.
Så detta fungerar alltså på samma sätt som med "include" kommandot?

Tack för hjälpen annars...

Medlem sedan nov. 20017 144 inlägg
#4

monAmour skrev:

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.

Medlem sedan dec. 2002258 inlägg
#5

Guld! Tackar

Medlem sedan maj 2002560 inlägg
#6

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.

Medlem sedan dec. 2002258 inlägg
#7

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!?

Medlem sedan maj 2002560 inlägg
#8

jo, men tänk på att include inkluderar filen oavsett om det är den casesatsen som skall användas eller inte, detta görs inte vid en execute

Medlem sedan dec. 2003209 inlägg
#9

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*

/S

Medlem sedan dec. 2003209 inlägg
#10

Doh!

Nu vart det ju ett annat problem istället :(
Om man gör så här

<%
If Instr(Request.ServerVariables("HTTP_HOST"),"www.arnander.se")>0 Then
      Server.Execute("se\index.asp")

så får man upp index.asp i mappen se men bilder som ska finnas
på sidan laddas inte men om jag skriver in hela url:en

exempel:

[url]http://www.sidan.se/se/[/url]

så laddas bilderna in, varför? (bilderna ligger i mappen images)

/S

Medlem sedan juni 200032 967 inlägg
#11

Du får se till att du alltid länkar bilderna från roten.

<img src="/images/gammalbäver.gif">
Medlem sedan dec. 2003209 inlägg
#12

Tack @nders

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)