Variablen in der Adresszeile per SSI auswerten
Flipper
- cgi
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
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
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
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 ...
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
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