[ASP] Dynamisch .asp files includen

Pagina: 1
Acties:

  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Ok, halve zitten zoeken en ik denk dat het simpelweg onmogelijk is in asp... voor de zekerheid hier nog even vragen:

Ik wil graag dynamisch .asp (met asp code dus!) files kunnen includen in een pagina.

Zoals dit...
Maar liever zoals dit...
Alleen dit is een dus gewoon een text stream

Dus als ik index.asp?p=welkom opgeef dat hij dan welkom.asp ergens in de index.asp include EN alle asp code in welkom.asp ook netjes uitvoert.

In php is dit heel makkelijk... maar in asp dus niet... toch?

  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
Ik heb het volgende gebruikt:
Server.Execute(Request.QueryString("p") & ".asp")

index.asp?p=welkom heeft dus als gevolg dat welkom.asp op dat punt wordt ingevoegd, met code uitgevoerd.

  • Victorio
  • Registratie: Januari 2001
  • Laatst online: 01-02-2024
Waarom staat dat niet op de plekken waar ik vandaag heb gezocht!!!! 8)7

Werkt perfect! Thnx!

[ Voor 80% gewijzigd door Victorio op 05-12-2006 19:07 ]


  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
Ben sinds 2 dagen ook wat met asp bezig en had dit vandaag pas ergens gevonden :), fijn dat het is gelukt!

  • Razr
  • Registratie: September 2005
  • Niet online
Misschien is het handiger om je eens te verdiepen in Masterpages. Ik kom ook van PHP af, en ben ook nog niet zo lang bezig, maar dat met die Masterpages werkt echt heel mooi en handig.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:39

gorgi_19

Kruimeltjes zijn weer op :9

Razr schreef op woensdag 06 december 2006 @ 09:16:
Misschien is het handiger om je eens te verdiepen in Masterpages. Ik kom ook van PHP af, en ben ook nog niet zo lang bezig, maar dat met die Masterpages werkt echt heel mooi en handig.
ASP 3.0 != ASP.Net

Masterpages is van ASP.Net

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Kermit.de.Kikker
  • Registratie: Februari 2002
  • Laatst online: 23-09 21:22
Voordat je het op deze manier oplost zou ik eens kijken naar functies en sub(routines). Als je code die je uitgevoerd wilt hebben in losse bestanden zet ben je niet echt veilig bezig. Iedereen kan dan die bestanden aanroepen! Je kan dus beter die ASP in een functie knallen en en dan die 'bibliotheek' van functies includen, bijvoorbeeld zo:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Language=VBScript %>
<% Option Explicit %>
<% Response.Buffer = true %>
<!--#include virtual="/includes/common.asp" -->
<!--#include virtual="/includes/classes/cls.tip.asp" -->
<!--#include virtual="/includes/resources/resx.tip.asp" -->
<%

        Dim id          : id        = CheckInteger(Request("id"))
        Dim strView     : strView   = Request("view")
        Dim strAction   : strAction = Request("act")

        If (strView = "new" ) or (strView = "edit" AND Not id = 0) Then
            Call dspModifyTip(strView,strView,id,strReturn)
        Else
            Call dspListAdminTip(strReturn,intStatus,strSearch,intPage,intSort)             
        End if

%>


De subroutines dspModifyTip en dspListAdminTip stan in dit geval in het bestand /includes/resources/resx.tip.asp

  • Razr
  • Registratie: September 2005
  • Niet online
gorgi_19 schreef op woensdag 06 december 2006 @ 10:12:
[...]

ASP 3.0 != ASP.Net

Masterpages is van ASP.Net
Owjah, ik dacht eigenlijk automatisch dat het over .NET ging ook omdat er werd gezegd dat iemand pas 2 dagen bezig was met ASP, lijkt me niet dat je dan een oudere taal gaat kiezen.

  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08 15:02
Inderdaad
Server.Execute(Request.QueryString("p") & ".asp")
is erg gevaarlijk.
stel dat ik een url aanroep waar p het volgende is:
<gevaarlijk bestand> &rommel=
dan wordt gevaarlijk bestand geinclude en uitgevoerd, en hoeft dus niet eens asp te zijn.

Human Bobby


Verwijderd

Victorio schreef op dinsdag 05 december 2006 @ 18:06:
Waarom staat dat niet op de plekken waar ik vandaag heb gezocht!!!! 8)7

Werkt perfect! Thnx!
Het werkt pas sinds asp 3.0 en veel tutorials op internet gaan uit van asp 2.0..

Zie bijvoorbeeld ook de code van Kermit.de.Kikker, hij/zij zet nog steeds de Buffer Response op True terwijl dat sinds asp 3.0 de standaard is... In asp 2.0 moest je dit nog zetten in 3.0 (bestaat sinds 1999) niet meer....

  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
Justice schreef op woensdag 06 december 2006 @ 10:51:
Inderdaad
[...]
is erg gevaarlijk.
stel dat ik een url aanroep waar p het volgende is:

[...]

dan wordt gevaarlijk bestand geinclude en uitgevoerd, en hoeft dus niet eens asp te zijn.
Nogmaals, ik weet er maar weinig vanaf, maar geldt dat ook als ik bijvoorbeeld het domein en submap in de code vast zet? Dan kan je dus niet een willekeurige file/url opgeven, voorbeeld:

Server.Execute("domein.nl/asp/" & Request.QueryString("p") & ".asp")

  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

Wat ik ooit gedaan heb is een mapping gebruikt.
paginas.asp (included in default.asp)
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
PaginaNaam = Request.QueryString("p")
    
Select Case PaginaNaam
    Case "home"
        Pagina = "home.asp"
        PaginaType = 1

    Case "advertentievoorbeeld"
        Pagina = "home-voorbeeld.asp"
        PaginaType = 2

    Case "agenda"
        Pagina = "agenda.asp"
        PaginaType = 1
    
    Case "history"
        Pagina = "history.asp"
        PaginaType = 3
    
    Case Else
        Pagina = "home.asp"
        PaginaType = 1
End Select
Pagina = "pages/" + Pagina

default.asp:
VBScript:
1
<% Server.Execute(Pagina) %>


Op deze manier vang je nietbestaande requests af, en kun je ook nog heel overzichtelijk andere zaken instellen. Ik gebuikte dit bijvoorbeeld om aan te geven of in het generieke deel van de pagina advertenties zichtbaar moesten zijn.

[ Voor 23% gewijzigd door PhysicsRules op 06-12-2006 13:29 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Uiteindelijk zijn het allemaal workarounds (met ieder zijn (enigzins acceptabele) nadelen) om de volgende limitatie: dynamisch includes in asp bestaan niet. Ik kan mij bijvoorbeeld herinneren dat die Server.Execute geen parameters ondersteund.

Terecht eerder opgemerkt: nu nog met classic ASP gaan beginnen?!?!

[ Voor 12% gewijzigd door mulder op 06-12-2006 13:47 ]

oogjes open, snaveltjes dicht


  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
* SierdW is net zo blij met zijn stap van html naar asp
Ik ben meer hobby programmeur, dus echt asp gebruik ik niet, af en toe een beetje :)
Pagina: 1