Und hat Dein Verzeichnis explizit CGI-Berechtigung? Ruf mal Dein CGI-Skript direkt über die URL-Zeile des Browsers auf - das muß ja ebenfalls gehen, wenn Du CGI darfst. Die SSI-EXEC-Einbindung ist ja nur ein Schmacko mehr.
wenn ich's über die url-Zeile aufrufe, bekomme ich nur den perl-Quelltext ausgegeben. Sieht so aus, als würde ich mit SSI eine Sicherheitlücke ausnutzen, so daß ich das script aufrufen kann, obwohl es nicht in einem cgi-Verzeichnis liegt.
So ist es... noch ein paar kleine Hinweise:
- bei Unix-Rechnern Execute-Rechte für das Script setzen!
hab ich doch.
- Document-type nicht vergessen! Bei exec cmd wird kein http-Header benötigt (im Gegenteil, er würde ausgegeben...), bei exec cgi sehr wohl...
hab ich auch.
Also rekapitulierend: ich kann mein cgi aufrufen, obwohl das Verzeichnis kein cgi-Verzeichnis ist, aber NUR als SSI Einbindung in einer shtml Datei. Die Ausgabe ist html mit Header (klar).
Aus exec cgi=... kann ich NICHT mit &name=param&name2=param2 Parameter übergeben, weil ich dann eine Fehlermeldung bekomme. Das genau gleiche script läuft aber ohne Parameter.
Parameterübergabe per setzen von QUERY_STRING funktioniert nicht weil der beim Aufruf des Scripts geleert wird.
#include virtual=... gibt nur den Quelltext des cgi's aus, Stefan.
ABER (tattaaa...) Lösung:
Ich kann einfach eine Umgebungsvariable setzen, die NICHT Standard ist:
<!--#set var="MYOWN_STRING" value="name=andreas&beruf=student"-->
und dann mein script aufrufen
<!--#exec cgi="myscript.cgi"-->
in dem MYOWN_STRING abgefragt wird. Er ist nicht durch den Aufruf des cgi überschrieben worden.
Das funktioniert und, nochmal zur Erinnerung, es funktioniert in JEDEM Verzeichnis, es muß: nicht als cgi-Verzeichnis angemeldet sein.
Vielen Dank für Eure Mühen!
Euer
Andreas