Toon posts:

[ASP] Include file

Pagina: 1
Acties:
  • 153 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil in ASP een file includen. Het probleem is dat het dus variable filename is.

Ik heb vanalles geprobeerd maar het wil dus niet lukken..snik...

Wie is er zo lief om mij te helpen :-)

Verwijderd

Dit misschien?

<#include file="<%strFileName%>">

  • roelkw
  • Registratie: Augustus 2000
  • Laatst online: 23-08 13:48
Dat kannie volgens mij.
Wat SSI wordt eerst helemaal geprocessed en dan de ASP pas...

Verwijderd

Topicstarter
Ja inderdaad, dat gaa dus niet ..aargh..
Maar ik weet dus niet hoe ik het dan moet gaan oplossen...

Verwijderd

Mischien gewoon openen, uitlezen en schrijven naar de pagina of variabelen

Verwijderd

Ik heb ook een dergelijk probleem gehad en heb het als volgt opgelost:<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR><%
Dim objOpenFile, objFSO, strPath, pagina
pagina = Request.QueryString("pagina")
If pagina = "" Then
pagina = "index.htm"
End If
strPath = Server.MapPath(pagina)
Set objFSO = _
Server.CreateObject("Scripting.FileSystemObject")

Set objOpenFile = _
objFSO.OpenTextFile(strPath, 1)
Do While Not objOpenFile.AtEndOfStream
Response.Write objOpenFile.Read(100)
Loop
objOpenFile.Close
Set objOpenFile = Nothing
Set objFSO = Nothing
End If
%>[/quote]Hopelijk heb je hier wat aan

Verwijderd

Topicstarter
Hee l heeel erg bedankt... je weet niet hoeveel dit mij helpt....

Als ik jouw nog ergens mee kan helpen.. je roept maar...

Verwijderd

Damn wat is dat ASP prachtig efficiënt...!

In vergelijking tot PHP's include('$filename') >:)

  • Tuinhark
  • Registratie: April 2000
  • Laatst online: 21-09 18:48

Tuinhark

Retro

Ik wil niet gelijk gaan trollen ofzo.. ;) maar toch noem ik dit hoogst merkwaardig hoor. |:(

:Y)

Verwijderd

Als je bij asp include files gebruikt via de <!-- include virtual... --> wijze dan kan dat niet een variabele naam zijn, want hij leest eerst alles door.. plakt de file en z'n includefiles aan elkaar en vervolgens begint hij pas de code te interpreteren.. en een variabele includefile zal hij niet kunnen vinden omdat hij puur naar de naam die je opgeeft gaat zoeken... Wat je wel kan doen is bijvoorbeeld

If bla Then
<!--include bla-->
Else
if bla then
etc. etc..

maar dan zal hij eerst alle mogelijke files aan elkaar plakken en dat wordt een inefficiente boel ..

KORTOM: gebruik een FileObject.. zoals boven al staat aangegeven, alleen weet je nu ook waarom dat moet ;)

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Joh, asp is zo simpel:
<!-- # include file="index.inc" -->
of
<!-- # include virtual="index.inc" -->

Enne, sommige dingen zijn idd. makkelijker in ASP dan PHP ;)

Verwijderd

Enne, sommige dingen zijn idd. makkelijker in ASP dan PHP ;)

Makkelijker is persoonlijk...

HTH

Verwijderd

Ho, dus als ik het goed begrijp doet ASP eerst echt àlle HTML aan elkaar plakken en dan pas kijkt ie naar de code? Shit, het is dus echt inefficiënt..

Net zoals die session-ID's van 36 karakters... Yuk.

Verwijderd

Dus als ik het goed begrijp doet ASP eerst echt àlle HTML aan elkaar plakken en dan pas kijkt ie naar de code? Shit, het is dus echt inefficiënt..

Het kan handiger ja. Ik weet niet of het ook echt na elkaar gebeurt of dat het zo lijkt.

Net zoals die session-ID's van 36 karakters... Yuk.
Session-IDs moeten nou een keer uniek zijn. Bij 36 tekens is het makkelijk IDs aanmaken en minder nadenken (kans op dubbele neemt erg af).

Verwijderd

Jasses mensen, wat een stom gezeur. Er wordt gevraagd hoe je iets in ASP kan, en beantwoord die vraag of post niets, maar de opmerking dat PHP dat makkelijker kan hoort hier niet thuis, bewaar die voor de talloze ASP vs PHP topics.

Verwijderd

Als je niet weet hoe ASP werkt moet je er ook nie over oordelen. Je kunt ook gewoon via ASP de html code laten generen, dan kan het op zich op een makkelijker manier. Volgens mij kan het ook zo.

<%Dim InvoegBestand
Invoegbestand = Request.QueryString("InvoegBestand")
Response.Write "<#include file='"
Response.Write Invoegbestand
Response.Write "'>"
%>
En klaar is Kees.

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
De include asp makende code in een asp code zetten? Ik weet niet of dat kan, het is nl. dubbelop op deze manier...
Maar het zou wel kunnen, misschien.
Ik denk dat ie nl. eerst de asp code gaat vertalen, en dan staat de include code er al. Dan kan ie die niet meer gaan vertalen... toch?
Tell me if i`m wrong, plz? :+

Verwijderd

Klopt, daar heb je gelijk in. Die oplossing werkt dus nie, want dan zou ie 2x over de ASP code moeten vertalen. Dan moet het toch op die andere manier.

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>Op 05 oktober 2000 09:26 schreef Arien het volgende:
Net zoals die session-ID's van 36 karakters... Yuk.
Session-IDs moeten nou een keer uniek zijn. Bij 36 tekens is het makkelijk IDs aanmaken en minder nadenken (kans op dubbele neemt erg af).[/quote]Ja als je ze uit 10000 tekens laat bestaan is er nog veel minder kans op dubbele. maar waarom zou je het met 36 doen als je het met 4 kan bvb.

If it ain't broken it doesn't have enough features


Verwijderd

Ja als je [session ID's] uit 10000 tekens laat bestaan is er nog veel minder kans op dubbele. maar Maarom zou je het met 36 doen als je het met 4 kan bvb.

Veel zullen 32 tekens zijn omdat md5 er 32 uitspuugt.

HTH

Verwijderd

Je kan ook ASP code in je include file gebruiken :)

Bijvoorbeeld je hebt een tabel in je include file staan met een jaar aanduiding en die wil je elke keer opgehoogd hebben

dan include je die file dus 3x achter elkaar en binnen include hoog je je variabele van het jaar met +1 op

<% response.write intJaar + 1 %>

hoef je de tabel maar 1 keer te maken ;)

Verwijderd

[gokmode]
heel misschien kan je iets met server.execute? heb je wel iis5 voor nodig.
[/gokmode]

--Ray

Verwijderd

Ja kan met Server.Execute.. moet je wel IIS5 hebben.

Session ID's hebben maar iets van 8 cijfers in ASP toch? Als je de Session.SessionID opvraagt krijg je een redelijk hanteerbaar nummer.. 36 cijfers klinkt meer als de cookie GUID maar die gebruik je doorgaans niet..

Includes worden voor de ASP code afgehandeld ja.. wat wil je er eigenlijk mee maken??

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 24-08 01:15
<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>Op 04 oktober 2000 17:14 schreef Twan het volgende:
Damn wat is dat ASP prachtig efficiënt...!

In vergelijking tot PHP's include('$filename') >:)[/quote]Hehehe, dat zou dus niet werken.

Dit wel:

include "$filename";

-of-

include $filename;

Bijna goed :)

Verwijderd

<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>Op 04 oktober 2000 17:14 schreef Twan het volgende:
Damn wat is dat ASP prachtig efficiënt...!

In vergelijking tot PHP's include('$filename') >:)[/quote]Wat een ongelooflijk loze opmerking, ik geloof dat het daar hiet toch echt niet over gaat.

Zo kan ik ook nog wel wat dingen opnoemen die ik in ASP wel kan en in PHP toch een stukje omslachtiger....

Verwijderd

Wat een ongelooflijk loze opmerking, ...
Zo kan ik ook nog wel wat dingen opnoemen die ik in ASP wel kan en in PHP toch een stukje omslachtiger....


Da's meer jouw probleem dan van PHP.

En dat was trouwens een beetje een loze opmerking van je. ;)

Verwijderd

Oi..

ik heb dus etzelfde probleem en het is opzich wel op te lossen door em als een txt bestand in te lezen..

*MaaR!*

ik heb dus in die include file nog ASP code staan, en die wordt dus *niet* verwerkt ;(

is er dan geen manier om een variabele include erin te krijgen zonder een eindeloze if then else functie te maken en nog steeds de kans te krijgen dat de ASP code in die file wel verwerkt wordt?

tnx / tim

PS. plz bespaar je de moeite om nog meer van die PHP vs ASP bs te verzinnen en ga wat nuttigs doen..

edit:

PPS. Ik heb geen ASP3 dus geen server.execute of server.transfer mogenlijk.

  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Jesus! Jij haalt pas ouwe posts op! :? :)

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Als je dynamische includes wilt gebruiken mankeert er gewoon iets aan je applicatie ontwerp lijkt me, er zijn zat ander manieren om dit op een andere manier op te lossen.

Verwijderd

Op woensdag 04 oktober 2000 16:58 schreef MoNkToNk het volgende:
Ik heb ook een dergelijk probleem gehad en heb het als volgt opgelost:<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR><%
Dim objOpenFile, objFSO, strPath, pagina
pagina = Request.QueryString("pagina")
If pagina = "" Then
pagina = "index.htm"
End If
strPath = Server.MapPath(pagina)
Set objFSO = _
Server.CreateObject("Scripting.FileSystemObject")

Set objOpenFile = _
objFSO.OpenTextFile(strPath, 1)
Do While Not objOpenFile.AtEndOfStream
Response.Write objOpenFile.Read(100)
Loop
objOpenFile.Close
Set objOpenFile = Nothing
Set objFSO = Nothing
End If
%>
Hopelijk heb je hier wat aan
[/quote]

Ik maak van bovenstaande procedure gebruik om 'dynamisch' files in mn ASP script te includen. Het heeft tot voorkort prima gewerkt. Nu echter werkt het, wegens een voor mij onverklaarbare reden, niet meer. De pagina laadt heel traag en de betreffende file wordt niet ingevoegd. Ik krijg geen script timeout, en als ik het laden van de pagina onderbreek dan verschijnt de output van het script goed tot aan de "OpenFile" routine.

Kan iemand mij misschien helpen of een hint geven waaraan dit mogelijk kan liggen.

Ik vermoed dat er iets mis is met de permissies binnen de Inetpub directory, maar kan alleen niet ontdekken wat het moet zijn.

BTW Ik heb een windows 2000 pro server met IIS 5.0

Hier onder is de betreffende routine waarop hij blijft hangen:

<%
If File2Show <> "" then
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objOpenFile = objFSO.OpenTextFile("c:\inetpub\beheer\" & File2Show & ".htm", 1)
Do While Not objOpenFile.AtEndOfStream
Response.Write objOpenFile.Read(100)
Loop
objOpenFile.Close
Set objOpenFile = Nothing
Set objFSO = Nothing
End if
%>

Verwijderd

Op maandag 26 februari 2001 13:43 schreef Blue-eagle het volgende:
Jesus! Jij haalt pas ouwe posts op! :? :)
Dit is kennelijk het 'ouwe posts-ophalen topic geworden' :? :o

Over het probleem: controleer eens je rechten? Heeft de juiste gebruiker wel leesrechten? En is er iets veranderd aan je server? Hotfix geinstalleerd ofzo?

Verwijderd

Leuk, Ouwe posts! :) Daar hou ik wel van. Zeker als ik het antwoord weet.

Want, dit gaat gewoon niet. Je kunt niet dynamisch je includes regelen behalve dan met een if-then-else constructie en daar verschillende includes ingooien. Maar, afhankelijk van de code, werkt dat niet altijd lekker.
En door het FileSystemObject te gebruiken, kan je alleen statische html-pagina invoegen, maar geen asp-pagina's.

Dit is gewoon een gebrek van asp. Asp.net echter heeft dit probleem opgelost. maar ja, daar zal nog niemand mee werken... (ik nu wel :P)

Verwijderd

Op donderdag 27 september 2001 18:08 schreef typhon het volgende:
Zeker als ik het antwoord weet.
Dan heb je niet het hele topic gelezen denk ik zo. In de 1e post van vandaag staat dat ie via FSO een .htm probeert in te lezen. Dat moet gewoon kunnen.

Verwijderd

Juist ja, het ZOU moeten werken en het HEEFT OOK SUPER GEWERKT maar nu dus niet meer, mijn permissies heb ik in orde gemaakt . Dat kan het probleem niet meer zijn.

Nog suggesties???

Alvast bedankt!

  • ParaNoiMia
  • Registratie: Mei 2000
  • Laatst online: 20-09 20:00
Even tussendoor...

Gebruik nooit, nooit, nooit .inc als extensie voor je include files bij asp op een IIS webserver.

Kijk naar dit voorbeeld en tik de .inc in de foutmelding in de url.

http://www.ny-taxi.com/adshark/adshark.asp?ad_id=1

ff zoeken bij google.com met als string "VBScript Runtime Error"+".inc" levert er meer op. Ik heb zo ooit code van Happypoint.com bekeken, nadat de asp pagina klapte op een database fout.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 07:51

Crazy D

I think we should take a look.

Op donderdag 27 september 2001 20:25 schreef ParaNoiMia het volgende:
Even tussendoor...

Gebruik nooit, nooit, nooit .inc als extensie voor je include files bij asp op een IIS webserver.

Kijk naar dit voorbeeld en tik de .inc in de foutmelding in de url.

http://www.ny-taxi.com/adshark/adshark.asp?ad_id=1

ff zoeken bij google.com met als string "VBScript Runtime Error"+".inc" levert er meer op. Ik heb zo ooit code van Happypoint.com bekeken, nadat de asp pagina klapte op een database fout.
Hehe da's een mooi voorbeeld van _en_ slecht gecodeert (type mismatch... kom op zeg, da's echt een beginnersfout als je daar niet ff op checkt ;)
En als dat .inc erachter (met mozilla gaf ie nog gewoon dezelfde pagina + foutmelding) is typisch slecht geconfigde IIS ;)
Overigens is het wel zo dat je .inc gewoon kan lezen. Heb op die manier op de MS site nog weleens de .inc file gezien waarin ze db connectie maken (DB gegevens stonden er nog net niet in ;)). Ik noem m'n inc's daarom altijd gewoon naam.inc.asp ...
Of als je zelf de rechten kan beheren, read en write access uitzetten voor de includes directory. Aangezien de inc serverside wordt behandelt, kun je 'm vanuit code nog steeds gewoon gebruiken, alleen kan de visitor er niet meer bij :)

[edit]
duh typo (.inc is moeilijk om te typen zeg! :D
Ook handig dat je hun log-db kan downloaden :)

Exact expert nodig?

Pagina: 1