Michael Schröpl: SSIs innerhalb CGIs

Beitrag lesen

Normalerweise werden ServerSideIncludes innerhalb einer CGI-generierten HTML-Seite nicht ausgeführt. Wie kann ich diese Schwäche am einfachsten umgehen?

Indem Du einen neuen Webserver programmierst, der diese "Schwäche" nicht mehr hat ... ;-)

Normalerweise behandeln Webserver eine URL halt nur mit einem einzigen Handler und nicht mit mehreren nacheinander. Wollten sie das tun, dann müßte ein Handler nicht nur eine URL behandeln können, sondern auch das temporäre Ergebnis der Behandlung des vorherigen Handlers - und das ist halt nicht ganz so trivial, wenn man dieses Ergebnis nirgendwo zwischenspeichern möchte.

Muss ich - scheint mir im moment die einzige, aber eine sehr arbeitsintensive Lösung zu sein - tatsächlich alle Routinen eines SSI-Aufrufs in das generierende CGI-Skript einbinden (z.B. Routine zum Aufruf eines Werbebanners in ein Skript, welches Daten aus einer Datenbank zusammenstellt und präsentiert)?!?

Ich halte das für überhaupt nicht arbeitsintensiv.
Wenn Du das Zieldokument sowieso per CGI generierst, dann wirst Du die paar Zeilen, die Du per SSI hättest einfügen wollen, doch auch mit ein paar "print"-Anweisungen ausgeben können. (Du kannst sie natürlich auch aus einer Datei einlesen - das ist wahrscheinlich sogar die sauberere Lösung.)

Lästig wird es höchstens, wenn Du mit SSI bedingte Anweisungen ausführen wolltest - das mußt Du dann halt in Deiner CGI-Anwendung nachprogrammieren. (Aber es ist tendentiell eine 1:1-Umsetzung nach Zeilen.)