Mein Ziel ist es
im Grunde nur, eine SSI-Anweisung zu benutzen bei einer Ausgabe einer
CGI-Datei.
Muss ich da die Anweisung für die Ausgabe anders anfangen?
Normal ist es ja so:
print „Content-Type: text/html\n\n“ ;
Aber wenn ich jetzt dahinter irgendwann die Anweisung:
[!–#include virtual="/hauptkopf.shtml"–] einfüge, wird diese Anweisung
einfach so im Browser ausgegeben, und nicht ausgeführt, wie sie soll.
Mein Ziel ist es
im Grunde nur, eine SSI-Anweisung zu benutzen bei einer
Ausgabe einer CGI-Datei.
Du hast im CGI-Script alle Möglichkeiten der (Server-)Welt, warum simulierst Du die SSIs dort also nicht? Wenn Du Perl benutzt und mod_perl installiert ist, hilft Dir dabei sogar das Modul Apache::Includes (IIRC).
Muss ich da die Anweisung für die Ausgabe anders anfangen?
Nein. Geparst ist einfach geparst und wird nicht mal durch irgendwelche Prozesse geschickt. Warum dies in Apache 2.0 möglich sein soll ist mir ein Rätsel; ich sehe da mehr Rekursionen und Zombie-Prozesse auf mich zukommen, als irgendwelche Nutzen.
[!–#include virtual="/hauptkopf.shtml"–]
Nebenbei: Vor dem abschließenden „–>“ muß ein Leerzeichen stehen, sonst ist es eh falsch. Daß es manchmal trotzdem funktioniert liegt an ausgereiften Fehlerkorrekturroutinen.
Gibt es nicht eine Möglichkeit, die SHTML-Datei einzufügen, nachdem die darin enthaltenen Anweisungen ausgeführt wurden?
Bisher habe ich die Anweisungen immer eingelesen aus einer Datei auf dem Server und zwar mit dem Pfad „/home/htdocs/…“
Kann ich nicht einfach als Pfad „http://www…/datei.shtml“ nehmen und die dortigen Anweisungen einfügen?
Thomas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Kann ich nicht einfach als Pfad „http://www…/datei.shtml“
nehmen und die dortigen Anweisungen einfügen?
nein, aber Du kannst mit LWP::Simple darauf zugreifen, wenn Du unbedingt möchtest. Ich schließe mich aber Markus’ Antwort an, das ist deutlich zu weit gegriffen. Bedenke, daß ein Zugriff auf das Internet wesentlich länger braucht als einer auf das Filesystem - auch wenn die Internetressource auf der selben Festplatte liegt.