Christian Kruse: Apache SSI exec: Encoding von cmd="..."

Beitrag lesen

Hoi,

Nachdem ich diese Woche schon fast zwei Fragen gestellt hätte, aber bisher
immer im letzten Moment das Problem lösen könnte, weil ich bis dahin zu
blöd war *g*, komme ich jetzt wohl nicht umhin, eine zu stellen. ;)

Hehe ;-) Das *du* mal 'ne Frage stellst... ;-)

<!--#exec cmd="perl -we "($q)=$ARGV[0]=~/query_a=([^&]+)/;$q=~s/%([a-fA-F0-9]{2})/pack("C",hex($1))/eg;print $q" $QUERY_STRING" -->

So wie es oben steht, gibt es keine Ausgabe und keine Fehlermeldung.
Maskiere ich % mit \ hat das den selben Effekt wie vorher. Nur wenn
ich z.B. s/%3D/X/ schreibe, wird "sig%3Dabcd" zu "sigXabcd". Möchte ich mit »» s/%/X/ nur die % austauschen, gibt es wieder keine Ausgabe und keine
Fehlermeldung. Bei s/%253D/X/ (als URL-Codierung von %) wird der
extrahierte Parameter - also $q - unverändert ausgegeben.
Deshalb vermute ich, daß dieses seltsame Verhalten etwas mit der Codierung
von % zu tun hat.

Ich befuerchte, das ist ein Bug beim Apachen. Der meint dazu naemlich:

[Thu Mar  7 17:56:09 2002] [error] [client 127.0.0.1] premature EOF in parsed file /usr/local/www/data/test.shtml

Allerdings nur bei einem von dir beschriebenen Query-String. Ich fuerchte, du
wirst die Seite mit CGI generieren muessen.

Gruesse,
 CK