/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
#include med variabel
Fra : Steffan


Dato : 16-01-04 22:49

Jeg vil høre, om det er muligt at have en variabel indsat, fx som her:
<--#include file=" request.qeurystring("side")".asp-->

Det er meningen med hovedsiden, at man vælger hvilken side man vil have, fx
tagwall. Når der trykkes på linket, kommer man hen på
default.asp?side=tagwall
Denne tagwall skal ligge i tagwall.asp, så det eneste der skal ske i
ovenstående SSI, er at variablen side bliver lagt ind, så der kommer til at
stå tagwall.asp,
og siden bliver hentet.

Her kommer et lille udsnit af min kode, hvis det skulle interessere nogen.
Hvis nogen har gode ideer til, hvordan det ellers kan lade sig gøre, vil jeg
gerne høre fra dem.

1: <%@LANGUAGE="VBSCRIPT"%>
<html>
<%side = Request.QueryString("side")%>
<head>
5: <title>- - -</title>
</head>
<body bgcolor="#999999" text="#000000">
<% if side = "" then %>
<!--#include file="forsiden.asp" -->
10: <% end if %>
<% if side = " tagwall " then %>
<p> test af andre sider.</p>
<!--#include file=" '& Request.Querystring("side") & ' .asp" -->
<% end if %>
15: </body>
</html>

Lidt forklaring til min hensigt med koden:
At have en fil, default.asp, som sørger for at alt bliver åbnet, ved at
hente variablen side. Det er også meningen, at variablen skal indsættes der
hvor der står tagwall, i linie 11. Koden er udelukkende tænkt som et
tankeeksperiment, men jeg løb ind i noget af en mur med det. Håber at nogen
kan hjælpe :)

Venlig Hilsen Steffan



 
 
Torben Brandt (16-01-2004)
Kommentar
Fra : Torben Brandt


Dato : 16-01-04 23:35

Steffan skrev:
> Jeg vil høre, om det er muligt at have en variabel indsat, fx som her:
> <--#include file=" request.qeurystring("side")".asp-->

Det kan man ikke.
Man kan dog bruge Server.Execute, som gør næsten det samme - dog ikke
helt, så bemærk forskellene.
Læs mere her: <URL:http://asp-faq.dk/article/?id=50>

[nogle linier er klippet væk herunder]
> <%side = Request.QueryString("side")%>
> <% if side = " tagwall " then %>

Mon ikke du skal skrive
<% if side = "tagwall" then %>
da 'side' nok ikke indeholder mellemrummene...


mvh Torben


Jan Vinten (17-01-2004)
Kommentar
Fra : Jan Vinten


Dato : 17-01-04 01:51

Hej Steffan,

Som Torben og nævner, kan det ikke lade sig gøre med include. Dog er kan du
bruge Server.Execute - men det kan jeg på ingen måde anbefale.

I grunden kan en "bandit" eller anden slem person, jo ændre i "side"
variablen og åbne andre filer på din server.

Feks:
http://www.dinside.dk/default.asp?side=c:\enfil.dat

Hvis du bestemt mener du vil gøre det på den måde, så sørg for, at gøre
flg.:

Server.Execute(Request.QueryString("side") & ".asp")

Så åbner den kun filer med endelsen .asp ..... men pas på!

/ Jan



"Steffan" <stuff.vip@post.cybercity.dk> wrote in message
news:bu9m47$o4h$1@news.cybercity.dk...
> Jeg vil høre, om det er muligt at have en variabel indsat, fx som her:
> <--#include file=" request.qeurystring("side")".asp-->
>
> Det er meningen med hovedsiden, at man vælger hvilken side man vil have,
fx
> tagwall. Når der trykkes på linket, kommer man hen på
> default.asp?side=tagwall
> Denne tagwall skal ligge i tagwall.asp, så det eneste der skal ske i
> ovenstående SSI, er at variablen side bliver lagt ind, så der kommer til
at
> stå tagwall.asp,
> og siden bliver hentet.
>
> Her kommer et lille udsnit af min kode, hvis det skulle interessere nogen.
> Hvis nogen har gode ideer til, hvordan det ellers kan lade sig gøre, vil
jeg
> gerne høre fra dem.
>
> 1: <%@LANGUAGE="VBSCRIPT"%>
> <html>
> <%side = Request.QueryString("side")%>
> <head>
> 5: <title>- - -</title>
> </head>
> <body bgcolor="#999999" text="#000000">
> <% if side = "" then %>
> <!--#include file="forsiden.asp" -->
> 10: <% end if %>
> <% if side = " tagwall " then %>
> <p> test af andre sider.</p>
> <!--#include file=" '& Request.Querystring("side") & ' .asp" -->
> <% end if %>
> 15: </body>
> </html>
>
> Lidt forklaring til min hensigt med koden:
> At have en fil, default.asp, som sørger for at alt bliver åbnet, ved at
> hente variablen side. Det er også meningen, at variablen skal indsættes
der
> hvor der står tagwall, i linie 11. Koden er udelukkende tænkt som et
> tankeeksperiment, men jeg løb ind i noget af en mur med det. Håber at
nogen
> kan hjælpe :)
>
> Venlig Hilsen Steffan
>
>



Torben Brandt (17-01-2004)
Kommentar
Fra : Torben Brandt


Dato : 17-01-04 14:31

Jan Vinten skrev:
> Som Torben og nævner, kan det ikke lade sig gøre med include. Dog er kan du
> bruge Server.Execute - men det kan jeg på ingen måde anbefale.
>
> I grunden kan en "bandit" eller anden slem person, jo ændre i "side"
> variablen og åbne andre filer på din server.
>
> Feks:
> http://www.dinside.dk/default.asp?side=c:\enfil.dat
>
> Hvis du bestemt mener du vil gøre det på den måde, så sørg for, at gøre
> flg.:
>
> Server.Execute(Request.QueryString("side") & ".asp")
>
> Så åbner den kun filer med endelsen .asp ..... men pas på!

Det skal man selvfølgelig være opmærksom på, men hvis man f.eks. laver
det sådan her:
Select Case Request.QueryString("side")
Case "tagwall"
Server.Execute("tagwall.asp")
Case "forside"
Server.Execute("forside.asp")
Case Else
Server.Execute("forside.asp")
End Select
Så kan man kun eksekvere de sider som programmøren har lagt ind i Select
Case'n.

Vil du ikke gerne svare under det du citerer.
<URL:http://usenet.dk/netikette/citatteknik.html>

mvh Torben


Steffan (17-01-2004)
Kommentar
Fra : Steffan


Dato : 17-01-04 22:22

> Jan Vinten skrev:
> > Som Torben og nævner, kan det ikke lade sig gøre med include. Dog er kan
du
> > bruge Server.Execute - men det kan jeg på ingen måde anbefale.
> >
> > I grunden kan en "bandit" eller anden slem person, jo ændre i "side"
> > variablen og åbne andre filer på din server.
> >
> > Feks:
> > http://www.dinside.dk/default.asp?side=c:\enfil.dat
> >
> > Hvis du bestemt mener du vil gøre det på den måde, så sørg for, at gøre
> > flg.:
> >
> > Server.Execute(Request.QueryString("side") & ".asp")
> >
> > Så åbner den kun filer med endelsen .asp ..... men pas på!
>
> Det skal man selvfølgelig være opmærksom på, men hvis man f.eks. laver
> det sådan her:
> Select Case Request.QueryString("side")
> Case "tagwall"
> Server.Execute("tagwall.asp")
> Case "forside"
> Server.Execute("forside.asp")
> Case Else
> Server.Execute("forside.asp")
> End Select
> Så kan man kun eksekvere de sider som programmøren har lagt ind i Select
> Case'n.
>
> Vil du ikke gerne svare under det du citerer.
> <URL:http://usenet.dk/netikette/citatteknik.html>
>
> mvh Torben
>
Jeg siger mange tak for responsen. Så må jeg bare lave lidt om på koden, som
jeg havde forestillet mig..
Kan I evt. svare på, om det er muligt at hive en variabel ind i
server.execute(" & request.querystring("id") "), eller om dette også er
umuligt?
På forhånd tak for hjælpen :)

Hilsen Steffan



Torben Brandt (17-01-2004)
Kommentar
Fra : Torben Brandt


Dato : 17-01-04 22:45

Steffan skrev:
> Kan I evt. svare på, om det er muligt at hive en variabel ind i
> server.execute(" & request.querystring("id") "), eller om dette også er
> umuligt?

Hvis du tænker på om det kan lade sig gøre at skrive
Server.Execute("side.asp?var=val")
så kan det ikke.
Du kan evt lægge værdier over i en session-variabel, for at føre dem
over til en anden side - det mener jeg godt man kan:
Session("var") = "val"
Server.Execute("side.asp")

/Torben


Jørn Andersen (17-01-2004)
Kommentar
Fra : Jørn Andersen


Dato : 17-01-04 23:28

On Fri, 16 Jan 2004 22:48:38 +0100, "Steffan"
<stuff.vip@post.cybercity.dk> wrote:

>Jeg vil høre, om det er muligt at have en variabel indsat, fx som her:
><--#include file=" request.qeurystring("side")".asp-->

Du har fået udmærkede svar på dit direkte spørgsmål.
Min kommenatr går kun på, at når man løber ind i en sådan problematik,
så er det tit fordi man har fået vendt sin "grundlæggende
kodestruktur" [TM] på hovedet.

Nu skriver du godt nok, at det er et tanke-eksperiment - og det skal
der jo også være plads til - så det gør det selvfølgelig lidt svært at
"nå frem til en løsning" ...

Hvad er det egentlig mere grundlæggende dit problem er?
Det spørgsmål kan nogle gange føre til helt andre løsninger end de
"hacks" man ellers løber ud i.

Good luck!

--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste