Flipper: Variablen in der Adresszeile per SSI auswerten

Hallo,

ich möchte mehrere Variablen an die Adresszeile übergeben und direkt mit Hilfe von SSI Auswerten.
Zum Beispiel:

http://...index.shtml?link=Kontakt&adresse=info@ich.de

Meine Frage nun, ist es möglich mit SSI folgendes zu machen (nachdem die Seite aufgerufen wurde):

<!--#echo encoding="none" var="link"-->
und
<!--#if var="adresse" ..

Ich habe es so probiert, aber es klappte nicht, nur mit einem einzigen direkten QueryString, also z.B index.shtml?kontakt, das reicht aber nicht, weil ich mehrere Sachen steuern will.

Kann mir jemand weiterhelfen?

Gruß

Flipper

  1. Hallo Flipper,

    ich möchte mehrere Variablen an die Adresszeile übergeben und direkt mit Hilfe von SSI Auswerten.
    Zum Beispiel:

    http://...index.shtml?link=Kontakt&adresse=info@ich.de

    Meine Frage nun, ist es möglich mit SSI folgendes zu machen (nachdem die Seite aufgerufen wurde):

    <!--#echo encoding="none" var="link"-->
    und
    <!--#if var="adresse" ..

    Ich habe es so probiert, aber es klappte nicht, nur mit einem einzigen direkten QueryString, also z.B index.shtml?kontakt, das reicht aber nicht, weil ich mehrere Sachen steuern will.

    Dann würde ich sagen, schreib dir ein Perl-Skript, das den Query String dann auswertet. Das Skript kannst du dann mit

    <!--#exec CGI="/cgi-bin/skript.pl" -->

    aufrufen.

    Viele Grüße

    Patrick Canterino

    1. Ich nochmal!

      <!--#exec CGI="/cgi-bin/skript.pl" -->

      Es muss glaube ich korrekt

      <!--#exec cgi="/cgi-bin/skript.pl" -->

      heißen. Ich kann mich aber auch irren. Probier einfach mal rum.

      Viele Grüße

      Patrick Canterino

  2. Hi Flipper,

    Meine Frage nun, ist es möglich mit SSI folgendes
    zu machen (nachdem die Seite aufgerufen wurde):
    <!--#echo encoding="none" var="link"-->
    und
    <!--#if var="adresse" ..
    Ich habe es so probiert, aber es klappte nicht,
    nur mit einem einzigen direkten QueryString,

    Du kannst mit "if" in SSI nur Werte von Variablen
    abfragen, die es tatsächlich gibt.

    Allerdings kannst Du diese Werte relativ intelligent
    abfragen.
    Du weißt ja, wie ein Query-String aufgebaut ist
    (Folge von "variable=wert", getrennt durch '&'),
    und Du kannst den gesamten Query-String mit einem
    regulären Ausdruck matchen, welcher dann genau die
    gewünschte Teil-Zeichenkette enthält.
    (Zeichenkette dazu in // einschließen statt in "",
    siehe Apache-Doku.)

    Je nachdem, wieviel Kontrolle über die aufrufenden
    Links Du hast, weißt Du eventuell auch, ob der
    entsprechende Parameter der erste des URL ist (also
    ein "?" davor steht) oder nicht (also ein "&" davor
    steht), was die Prüfung noch exakter macht.
    Falls Du es beeinflussen kannst, solltest Du aber
    einfach keine Parameternamen wählen, die substrings
    voneinander sind - dann müßte schon die oben angege-
    bene Prüfung reichen.

    Apache-XSII ist ziemlich mächtig - ein Perl-Skript
    würde ich an dieser Stelle als Overkill ansehen.

    Viele Grüße
          Michael

    P.S.: Bedenke auch, daß Deine Parameterwerte ggf.
          URL-encoded sind ...

    1. Hi Flipper,

      Meine Frage nun, ist es möglich mit SSI folgendes
      zu machen (nachdem die Seite aufgerufen wurde):
      <!--#echo encoding="none" var="link"-->
      und
      <!--#if var="adresse" ..
      Ich habe es so probiert, aber es klappte nicht,
      nur mit einem einzigen direkten QueryString,

      Du kannst mit "if" in SSI nur Werte von Variablen
      abfragen, die es tatsächlich gibt.

      Allerdings kannst Du diese Werte relativ intelligent
      abfragen.
      Du weißt ja, wie ein Query-String aufgebaut ist
      (Folge von "variable=wert", getrennt durch '&'),
      und Du kannst den gesamten Query-String mit einem
      regulären Ausdruck matchen, welcher dann genau die
      gewünschte Teil-Zeichenkette enthält.
      (Zeichenkette dazu in // einschließen statt in "",
      siehe Apache-Doku.)

      Je nachdem, wieviel Kontrolle über die aufrufenden
      Links Du hast, weißt Du eventuell auch, ob der
      entsprechende Parameter der erste des URL ist (also
      ein "?" davor steht) oder nicht (also ein "&" davor
      steht), was die Prüfung noch exakter macht.
      Falls Du es beeinflussen kannst, solltest Du aber
      einfach keine Parameternamen wählen, die substrings
      voneinander sind - dann müßte schon die oben angege-
      bene Prüfung reichen.

      Apache-XSII ist ziemlich mächtig - ein Perl-Skript
      würde ich an dieser Stelle als Overkill ansehen.

      Viele Grüße
            Michael

      P.S.: Bedenke auch, daß Deine Parameterwerte ggf.
            URL-encoded sind ...

      Vielen Dank erst einmal für die Antwort. Jedoch habe ich das Problem, Sie richtig zu verstehen. Was meinst Du mit "regulären Ausdruck matchen"? Ich muss den String auswerten, soviel ist mir klar. Ich habe es mit einem Perl Script probiert, doch bekomme ich von dort die Werte nicht zurück in die SSI Variablen.
      Kannst Du mir noch mal sagen, was genau Du mit Ausdruck matchen meinst.

      Danke

      1. Hi Flipper,

        (viel Zeug gelöscht, bitte defensiver quoten)

        Was meinst Du mit "regulären Ausdruck matchen"?
        Ich muss den String auswerten, soviel ist mir klar.

        Lies mal in
          http://httpd.apache.org/docs/mod/mod_include.html

        nach, was man mit SSI für schöne Sachen machen kann.

        Viele Grüße
              Michael