include
stefan
- asp.net
hallo,
folgendes problem: ich will per query string (heißt das so? ich meine das nach dem fragezeichen bei einem url...) den dateinamen einer textdatei an ein asp-file übergeben. in diesem asp-file soll die textdatei einfach per include eingefügt werden.
aufgerufen wird das ganze z.b. mit
http://www.domain.com/datei.asp?textfile
...
<%
file = Request.QueryString
%>
<!--#include file="<%=file%>.txt"-->
...
es funktioniert aber nicht.
hoffe, ihr könnt mir helfen!
gruß,
stefan
Hoi stefan
<%
file = Request.QueryString
%>
<!--#include file="<%=file%>.txt"-->
*grins* Das ist ein Thema das mir im Gedächtnis geblieben ist, als ich mein ASP Buch durchackerte:
Das kann aus dem Grunde nicht funktionieren, das der include - Befehl als einer der allerersten dinge in einem ASP-Proggie abgerbeitet wird. Also noch bevor Du mit Request.QueryString überhaupt etwas bekommst!
Du musst das also rein Programmiertechnisch anders lösen und vielleicht mal eine ASP-Doku beschaffen :-))
cheers
kaepten
hallo,
folgendes problem: ich will per query string (heißt das so? ich meine das nach dem fragezeichen bei einem url...) den dateinamen einer textdatei an ein asp-file übergeben. in diesem asp-file soll die textdatei einfach per include eingefügt werden.
aufgerufen wird das ganze z.b. mit
http://www.domain.com/datei.asp?textfile...
<%
file = Request.QueryString
%>
<!--#include file="<%=file%>.txt"-->
Hallo!
Nur
file = Request.QueryString
reicht nicht. Du musst in der URL eine Variable angeben. Z.B.
http://......asp?datei=textfile
Dann fragst Du so ab:
file = Request.QueryString("datei")
Ciao
Rondra
hallo,
folgendes problem: ich will per query string (heißt das so? ich meine das nach dem fragezeichen bei einem url...) den dateinamen einer textdatei an ein asp-file übergeben. in diesem asp-file soll die textdatei einfach per include eingefügt werden.
aufgerufen wird das ganze z.b. mit
http://www.domain.com/datei.asp?textfile...
<%
file = Request.QueryString
%>
<!--#include file="<%=file%>.txt"-->
Hallo!
Nur
file = Request.QueryString
reicht nicht. Du musst in der URL eine Variable angeben. Z.B.
http://......asp?datei=textfile
Dann fragst Du so ab:
file = Request.QueryString("datei")
Ciao
Rondra
Hoi Rondra
Dann fragst Du so ab:
file = Request.QueryString("datei")
Ja klar das ist richtig! Nur soweit habe ich gar nicht mehr kontrolliert, denn ich schätze dass es eben am include liegt und nicht an obigem Fehler....
Aber warten wir mal ab ;-)
cheers
kaepten
tja herr kaepten,
aber der "fehler", den ihr meint, der läuft hervorragend in einem anderen asp-file, also das kann's nicht sein. ich hab's jetzt aber geändert und dummerweise hast du recht... gib mir mal einen tip wie dieser include-fall zu lösen wäre...
thanx,
stefan
Hoi Rondra
Dann fragst Du so ab:
file = Request.QueryString("datei")
Ja klar das ist richtig! Nur soweit habe ich gar nicht mehr kontrolliert, denn ich schätze dass es eben am include liegt und nicht an obigem Fehler....
Aber warten wir mal ab ;-)
cheers
kaepten
Hi!
tja, das problem kenn ich igendwoher....
ich hab das dann mit folgendem workaround geloest :
<% s=Request.Querystring("subject")
select case s
case "team": %> <!--#include file="team.htm"-->
<% case "zimmer": %><!--#include file="zimmer.htm"-->
<%case "freizeit": %> <!--#include file="freizeit.htm"-->
<%case "schulen": %><!--#include file="schulen.htm"-->
<%case "kontakt": %>
<!--#include file="kontakt.htm"-->
<%case "main": %>
<!--#include file="main.htm"-->
<%
end select
%>
ist zwar bei mehreren filenames ziemlich umstaendlich, aber eine andere loesung faellt mir auch nicht ein :(
happy coding,
Hoagie
Hoi Hoagie
ist zwar bei mehreren filenames ziemlich umstaendlich, aber eine andere loesung faellt mir auch nicht ein :(
Deine Lösung könnte es sein, nur es versagt dann (leider) wenn davon auszugehen ist dass die Dateinamen nicht unbedingt "bekannt" sind z.B. weil Sie dynamisch generiert und benannt werden. (Obschon die Dateinamen ja in den meisten fällen wohl bekannt sind?!)
Wie Du sagst: für wenig Dateinamen gehts, für mehrere würde ich diese Lösung sehr meiden... Hardcodierte Dateinamen in einer grossen Menge *desgrauens*...
cheers
kaepten
PS: Die Lösung geht sicher in Richtung Datei "manuell" im code öffnen und lesen... etc.
dank an alle,
es ist halt wie's ist: ich "kenne" die dateinamen nicht wirklich im vorhinein... aber noch hält sich der umfang in grenzen und somit habe ich noch ein bißchen zeit asp & co. zu lernen :-)
*positivdenk*
gruß,
stefan
Hoi Hoagie
ist zwar bei mehreren filenames ziemlich umstaendlich, aber eine andere loesung faellt mir auch nicht ein :(
Deine Lösung könnte es sein, nur es versagt dann (leider) wenn davon auszugehen ist dass die Dateinamen nicht unbedingt "bekannt" sind z.B. weil Sie dynamisch generiert und benannt werden. (Obschon die Dateinamen ja in den meisten fällen wohl bekannt sind?!)
Wie Du sagst: für wenig Dateinamen gehts, für mehrere würde ich diese Lösung sehr meiden... Hardcodierte Dateinamen in einer grossen Menge *desgrauens*...
cheers
kaeptenPS: Die Lösung geht sicher in Richtung Datei "manuell" im code öffnen und lesen... etc.
Hallo Stefan,
hallo,
folgendes problem: ich will per query string (heißt das so? ich meine das nach dem fragezeichen bei einem url...) den dateinamen einer textdatei an ein asp-file übergeben. in diesem asp-file soll die textdatei einfach per include eingefügt werden.
aufgerufen wird das ganze z.b. mit
http://www.domain.com/datei.asp?textfile...
<%
file = Request.QueryString
%>
<!--#include file="<%=file%>.txt"-->
...es funktioniert aber nicht.
hoffe, ihr könnt mir helfen!
[...]
http://www.aspfaq.de/faq/index.asp?FID=14&ELE=1223
Tschau, Stefan
hoi Stefan
Wenn ich mir da folgendes ansehe:
1.) Lesen der Datei index.asp
2.) Suchen der eingebundenen Dateien
3.) Lesen der eingebundenen Dateien in der Reihenfolge Ihrer Deklaration
4.) Untersuchen des in der Include-Datei enthaltenen ASP-Codes auf Syntaxfehler
5.) Untersuchen des in der ASP-Seite enthaltenen ASP-Codes auf Syntaxfehler
6.) Ausführen des Codes in der ASP-Seite
7.) Ausführen des Codes in der Include-Datei
8.) Ausgabe des erzeugten HTML-Contents
Kommen besonders bei Punkt 6 und 7 grosse Fragezeichen auf! Es kann doch nicht sein, dass die Zeitlich nacheinander abgearbeitet werden. Ich würde doch annehmem, dass die beiden "gelinkt" und dann als Ganzes ausgeführt werden. So wie das dortsteht, könnte man meinen dass es zwei unabhängige Prozesse sind...
Oder verstehe ich nun da etwas falsch?
cheers
kaepten
Hallo kaepten,
[...]
6.) Ausführen des Codes in der ASP-Seite
7.) Ausführen des Codes in der Include-Datei
8.) Ausgabe des erzeugten HTML-ContentsKommen besonders bei Punkt 6 und 7 grosse Fragezeichen auf! Es kann doch nicht sein, dass die Zeitlich nacheinander abgearbeitet werden. Ich würde doch annehmem, dass die beiden "gelinkt" und dann als Ganzes ausgeführt werden. So wie das dortsteht, könnte man meinen dass es zwei unabhängige Prozesse sind...
Oder verstehe ich nun da etwas falsch?
[...]
Das ganze sollte eigentlich ausdrücken, dass entgegen der weitverbreiteten
Meinung der Code einer Includedatei nicht vor dem Code der ASP-Datei
ausgeführt wird.
[test.asp]
<%
Dim x
x = 1
%>
<!--#include file="test.inc" //-->
<%
Response.Write x
%>
[test.inc]
<%
x = 5
%>
Die Ausgabe "Response.Write x" ergibt 5, da der Code der Include-Datei
an der entsprechenden Stelle ausgeführt wird. (nicht erst nach Abarbeitung
der gesamten ASP-Seite und auch nicht vorher.
Evtrl. könnte man das noch etwas schöner formulieren (für Vorschläge bin ich
immer zu haben)
Tschau, Stefan