Avatar billede mydream Nybegynder
27. september 2005 - 17:33 Der er 10 kommentarer og
1 løsning

include file inkl. variable

Jeg har et problem med #include file= ""

Jeg kan ikke inkludere en fil+variable som f.eks. file="DBHent.asp?ID=5"

Jeg kan ikke bruge iframe til formålet, da indholdet DBHent har forskellig højde alt efter ID.

Er der nogen der kender en god metode?
Avatar billede busschou Praktikant
27. september 2005 - 19:31 #1
Du kan ikke benytte SSI til at inkludere dynamisk
SSI udføres i øvrigt altid før asp scriptet
Med andre ord vil alle dine #includes blive inkluderet uanset hvad
Fx hvis du har en psudokode som
if "noget" then
  #include 1.asp
else
  #include 2.asp
end if
Så inkluderes begge uanset hvad
Løsningen er fx at benytte Server.Execute
fx
---
id = request.querystring("ID")
if id = 5 then
  server.execute("5.asp")
else
  server.execute("default.asp")
end if
Avatar billede busschou Praktikant
27. september 2005 - 19:32 #2
og du burde også kunne kalde den som
server.execute("DBHent.asp?ID=5")
Avatar billede mydream Nybegynder
27. september 2005 - 22:14 #3
Når du siger at det ikke virker med if else, er det så i nogle specielle browsere?

For jeg skriver:

<% Sti = request("I")
if Sti = "VisDetaljer_inc.asp" then
%>
<!-- #include file='VisDetaljer_inc.asp' -->
<%end if
  if not Sti = "VisDetaljer_inc.asp" then
%>
<!-- #include file='Tip_inc.asp' -->
<%end if
%>


og det virker efter hensigten i IE
Avatar billede mydream Nybegynder
27. september 2005 - 22:22 #4
Egentlig vil jeg helst helt undgå if else.

Jeg vil gerne skrive i url:

http://www.hulubulu.dk/testforside.asp?Anm=Nej&I=VisDetaljer2_inc.asp

og så lave en variabel:

URL= request(I)

og så sige

<!-- #include file= VARIABEL URL -->

Er det tydeligt nok?

Kan det lade sig gøre på nogen måde?
Avatar billede mydream Nybegynder
27. september 2005 - 22:26 #5
Det ser ud til at

<%server.execute(URL)%>

virker.
Avatar billede mydream Nybegynder
27. september 2005 - 22:27 #6
Perfekt. Tak for hjælpen.
Avatar billede busschou Praktikant
27. september 2005 - 22:40 #7
var lige lidt væk :o)
Når du bruger SSI (Server Side Include) , så køres dette på serveren før ASP koden
Det kører på serveren og har derfor intet med browseren at gøre
Se evt her http://activedeveloper.dk/artikler/default.asp?articleid=50
By the way... Så er det en dårlig ide direkte at eksekvere den asp fil som man skriver i url´en
Du bliver således sårbar over for evt onde personer
Hvis folk får luret hvad dine asp filer hedder vil de jo så via url´en kunne eksekvere dem direkte
Du bør derfor have en if sætning eller lignede som tjekker hvilken asp side de angiver inden du eksekverer den

Tak for points :o)
Avatar billede mydream Nybegynder
27. september 2005 - 22:49 #8
Nu bliver jeg nysgerrig: Hvad vil onde personer kunne gøre?
Avatar billede busschou Praktikant
27. september 2005 - 22:55 #9
Som jeg forstår det ønsker du man kan taste sådan her
www.dinside.dk/ditscript.asp?vis=enside.asp
og dernæst vil du includere enside.asp på siden
En given ond person vil måske kunne finde ud af at udnytte dette til at kalde
www.dinside.dk/ditscript.asp?vis=enbeskyttetfarligside.asp
eller lignende
Endvidere så når du kalder server.execute direkte på querystringen så er det måske muligt at eksekvere kode direkte den vej, jeg er ikke sikker, men det er generelt ikke anbefalelsesværdigt at gøre sådan
Det er bedre at kalde
www.dinside.dk/ditscript.asp?vis=1
og
www.dinside.dk/ditscript.asp?vis=2
og så have koden
select case request.querystring("vis")
  case "1"
    server.execute "min_ene_side.asp"
  case "2"
    server.execute "min_anden_side.asp"
  case else
    respose.write "Du må ikke rette i adresselinjen!"
end select
Avatar billede busschou Praktikant
27. september 2005 - 22:56 #10
om ikke andet vil man kunne crashe din server ved at kalde siden med sig selv så den uendeligt kalder sig selv
www.dinside.dk/ditscript.asp?vis=ditscript.asp?vis=ditscript.asp?vis=ditscript.asp?vis=ditscript.asp?vis=ditscript.asp
Avatar billede mydream Nybegynder
27. september 2005 - 23:01 #11
ok point taken. Det var bare så dejlig nemt. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester