webForumDet fria alternativet

Problem med länkar och include.

14 svar · 305 visningar · startad av Troll

TrollMedlem sedan dec. 2003229 inlägg
#1

Har en liten fundering som jag skulle behöva ha hjälp med. Har märkt att länkar av denna typ inte är allt för ovanliga: www.ööö.com/default.asp?sida=ööö

Jag testade lite men jag får det inte att funka, det som jag först tänkte var ungefär såhär. Låt oss säga att vi har en tabell med två kollumner brevid varandra, i den ena är menyn inkluderad och i den andra är själva förstasidan och sidan är döpt till default.asp

Alla val i menyn är länkade till default.asp men skickar med en querystring med namnet på filen vi vill hämta, tex om jag ska inkludera lankar.asp i default.asp så gjorde jag som så att i default.asp så hämtar jag upp querystringen och skriver ut allt där jag vill att det ska visas:

If Request.QueryString("sida") = "" Then
strSida = Default
Else
strSida = Request.QueryString("sida")

Response.Write "<!-- #include file="strSida".asp -->"

Har pillat som en tok med detta med alla möjliga olika varianter och jag har sökt efter liknande trådar men eftersom jag inte riktigt vet vad jag letar efter så var det lite svårt att hitta :/

Senare kom jag på att include kanske laddas _före_ själva ASPkoden så då är det ju förståligt att det inte funkar, men om det inte är det varför funkar det inte och hur ska jag lösa det?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Senare kom jag på att include kanske laddas _före_ själva ASPkoden så då är det ju förståligt att det inte funkar

Så är det. SSI-direktiv körs först, sedan gör asp-tolken sitt.

Om det inte är sidor du verkligen behöver inkludera, utan en exekvering går bra, kan du prova:

Server.Execute strSida & ".asp"
TrollMedlem sedan dec. 2003229 inlägg
#3

Ok, men hur ska jag lösa detta så att det fungerar?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Se min redigering ovan. :)

TrollMedlem sedan dec. 2003229 inlägg
#5

Aaah, ok :) Tackar!

Men nu måste jag ju passa på att fråga innan jag börjar med detta, är detta det enda sättet att lösa problemet på eller finns det bättre lösningar?

TrollMedlem sedan dec. 2003229 inlägg
#6

Glömde bort att fråga detta också.. uppnår jag samma sak med include file och Server.Execute? Vad är skillnaden?

@ndersMedlem sedan juni 200032 969 inlägg
#7

Skillnaden är att filen inte inkluderas, utan bara exekveras. Med Server.Execute kan du alltså inte i det exekverande dokumentet använda dig av koddelar från den sidan som exekveras, utan det som egentligen händer är att sidan körs för sig själv, och du får tillbaka det som sidkörningen resulterar i.

Mvh

TrollMedlem sedan dec. 2003229 inlägg
#8

Aaah, I see... men jag kan använda mig asp-kod i filen som exekveras utan att det blir knas? Aldrig använt mig av Server.Execute så jag är lite osäker av mig, förlåt om jag är jobbig ;)

@ndersMedlem sedan juni 200032 969 inlägg
#9

Ja, du kan göra vad som helst i filen som du exekverar. Men, om du har en funktion, till exempel:

function foo(bar)
     foo = bar * 2
end function

, så är den funktionen inte tillgänglig i sidan som exekverar. Så, kod som finns i sidan du kör, finns bara just där, sedan är den förverkad.

Jobbig? Alla är väl nybörjare någon gång? :)

TrollMedlem sedan dec. 2003229 inlägg
#10

Ok, tack så mycket! Ska kila och testa lite nu.

True, true :)

TrollMedlem sedan dec. 2003229 inlägg
#11

Det vill inte funka... får detta fellmedelande:

" Objektet stödjer inte egenskapen eller metoden.: 'Execute' "

Jag använder PWS och har kryssat i 'Execute' i inställningrna för mappen som sidan ligger på, vad beror detta på?

har testat med:

Server.Execute ("sida.asp")

och

Server.Execute ("sida")+".asp"

Har även testat utan " och andra varianter, vad gör jag fel?

@ndersMedlem sedan juni 200032 969 inlägg
#12

Troll skrev:

Jag använder PWS

Det var tråkigt att höra. :/

Vilket OS använder du?

Server.Execute finns inte med i PWS-utgåvorna för NT4 och Windows 98 / 95, utan finns endast i IIS 5.0 och senare, dvs Windows 2000 och senare.

TrollMedlem sedan dec. 2003229 inlägg
#13

Aaaha, ok :/

Dämn... använder mig av Win98 på datorn jag jobbar på och XP på den andra. Fasiken... Hur ska jag gör nu då?! Finns det något sätt att lösa det på som funkar i både PWS och IIS? Blir ju lite surt om det jag gör inte funkar alls sen när jag lägger ut det för allmänheten :/

@ndersMedlem sedan juni 200032 969 inlägg
#14

Det finns egentligen inget (vettigt) sätt att lösa det på för att få till dynamisk exekvering på PWS för Windows 98. Kan du inte sparka igång IIS på XP-maskinen istället?

TrollMedlem sedan dec. 2003229 inlägg
#15

Jo det är sant, får ta och göra det. Så surt bara för jag och min gamla burk har en speciell relation ;) Nämen detta ska nog lösa sig, tack så mycket för all hjälp!

261 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
126 ms — hämta forumlista (db)
127 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)