stefan: include

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

  1. 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

  2. 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

  3. 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

    1. 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

      1. 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

  4. 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

    1. 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.

      1. 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
        kaepten

        PS: Die Lösung geht sicher in Richtung Datei "manuell" im code öffnen und lesen... etc.

  5. 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

    1. hoi Stefan

      http://www.aspfaq.de/faq/index.asp?FID=14&ELE=1223

      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

      1. 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-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?

        [...]

        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