Steffi: SSIs mit Übergabeparameter

Hallo,
ich hoffe, das Thema gehört hierher.
Ich habe einen großen Programteil, den ich mit
<!--#include virtual="test.inc" -->
in verschiedene HTMLs einbinden will.
Nun soll sich aber das eingebundene test.inc in den verschiedenen HTMLs in Nuancen unterscheiden.
Natürlich möchte ich deshalb nicht unbedingt jedesmal ein eigenes test.inc erstellen, das zu 95% mit den anderen übereinstimmt.
Kann ich daher dem include Parameter mitgeben, die dann in den einzelnen HTMLs unterschiedlich wären?
Mit sonntäglichen Grüßen
Steffi

  1. Hallo Steffi,

    Kann ich daher dem include Parameter mitgeben, die dann in den einzelnen HTMLs unterschiedlich wären?

    AFAIK nein, aber vielleicht könntest du deine Include-Datei in einen großen gleichbleibenden und einen kleinen variablen Abschnitt aufteilen, und dann zwei Teile includen. Falls die Unterschiede überwiegend an einer Stelle im Dokument auftreten, sollte das kein Problem sein.

    Hilft dir das weiter?

    So long,
     Martin

    --
    Wichtig ist, was hinten rauskommt.
      (Helmut Kohl, 16 Jahre deutsche Bundesbirne)
    1. hallo,

      Kann ich daher dem include Parameter mitgeben, die dann in den einzelnen HTMLs unterschiedlich wären?
      AFAIK nein

      Parameterübergabe funktioniert schon, allerdings nicht so, wie Steffi sich das offenbar vorgestellt hat. Wie es geht, it in SELFHTML beschrieben.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hallo,

        Parameterübergabe funktioniert schon, allerdings nicht so, wie Steffi sich das offenbar vorgestellt hat. Wie es geht, it in SELFHTML beschrieben.

        Leider gehts so bei mir auch nicht, da der INCLUDE nicht auf Dateien auf anderen Servern zugreifen kann.
        Schade, das hatte ich in meinem posting nicht erwähnt.
        Danke trotzdem

        1. Hi,

          Leider gehts so bei mir auch nicht, da der INCLUDE nicht auf Dateien auf anderen Servern zugreifen kann.

          Darum heißt's ja auch server-side-include, nicht world-wide-include

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          O o ostern ...
          Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Hallo,

            Darum heißt's ja auch server-side-include, nicht world-wide-include

            Es heißt aber auch nicht only-this-server-side-include
            und was heißt hier server?
            Meine Programme laufen auf    e i n e m   Server aber unter verschiedenen accounts (www.aaaaaa1....de, www.aaaaaa2...de).

            Schönen Abend

  2. Hallo Steffi!

    <!--#include virtual="test.inc" -->
    Kann ich daher dem include Parameter mitgeben, die dann in den einzelnen HTMLs unterschiedlich wären?

    Du kannst das Programm _mit_ Parameter aufrufen.

    Ich lasse den kompletten Header (title, meta und link-Elemente) _sowie_ die Vorwärts/Rückwärts-Navigation am Fuß meiner Seiten durch ein einziges Perl-Script generieren:

    <head><!--#config timefmt="%Y-%m-%dT%H:%M+07:00"-->
    <!--#include virtual="/cgi-bin/makenav.pl?mod=1"-->

    und unten:

    <div id="copyright">
      <!--#include virtual="/cgi-bin/makenav.pl?mod=2"-->
      </div>

    Bei "mod1" wird eine Subroutine des Programms, bei "mod2" eine andere aufgerufen.

    Leider finde ich die entsprechende Apache-Seite auf die schnelle nicht mehr, aber ich bin sicher, jemand der sich mit Apache besser auskennt findet sie für Dich. ;)

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --

    _ - jenseits vom delirium - _
    <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
    1. Besser gesucht und doch gefunden!

      siehe exec

      <cite>
      The include virtual element should be used in preference to exec cgi. In particular, if you need to pass additional arguments to a CGI program, using the query string, this cannot be done with exec cgi, but can be done with include virtual, as shown here:

      <!--#include virtual="/cgi-bin/example.cgi?argument=value" -->
      </cite>

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
  3. Hello out there!

    ich hoffe, das Thema gehört hierher.

    Ja, warum auch nicht? Auch den Themenbereich hast du bestens gewählt.

    Nun soll sich aber das eingebundene test.inc in den verschiedenen HTMLs in Nuancen unterscheiden.
    Kann ich daher dem include Parameter mitgeben, die dann in den einzelnen HTMLs unterschiedlich wären?

    Du kannst in der 'shtml'-Datei eine Variable setzen:

    <!--#set var="param" value="foo" -->

    Im Include fragst du den Wert ab und erzeugst davon abhängig unterschiedliche Ausgaben:

    <!--#if expr='"$param" = "foo"' -->  
      foo  
    <!--#elif expr='"$param" = "bar"' -->  
      bar  
    <!--#else -->  
      baz  
    <!--#endif -->
    

    Dazu muss der Server auch das Include nach SSI parsen; entweder du gibst der Datei auch die Endung 'shtml' oder du konfigurierst den Server so, dass er auch 'inc' parst (würde dann aber für alle diese Dateien gelten) oder arbeitest mit dem Sticky-Bit.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Hallo Gunnar!

      oder arbeitest mit dem Sticky-Bit.

      Da muss ich nachhaken: Was ist das (kenne nur den XBitHack...)?

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
      1. Hello out there!

        oder arbeitest mit dem Sticky-Bit.
        Da muss ich nachhaken: Was ist das (kenne nur den XBitHack...)?

        Versprecher meinerseits. Ich meinte XBitHack.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      2. Hallo Gunnar,

        oder arbeitest mit dem Sticky-Bit.

        Da muss ich nachhaken: Was ist das (kenne nur den XBitHack...)?

        Unabhängig davon, dass Gunnar sich schon korrigiert hat - ein Sticky-Bit gibt es unter POSIX auch - es macht nur etwas komplett anderes und hat nichts mit dem Thema zu tun. Wenn das sticky-Bit auf einem Verzeichnis gesetzt ist, kann eine Datei in diesem Verzeichnis nur vom Eigentümer dieser Datei (oder von root selbstverständlich) gelöscht werden - nicht jedoch von einem anderen User, selbst wenn dieser Schreibrechte auf das Verzeichnis hat (im Normalfall darf jeder mit Schreibrechten auf einem Verzeichnis Dateien darin löschen). Ferner wurde das sticky-Bit bei ausführbaren Dateien früher dazu verwendet, dem Betriebsystem mitzuteilen, dass das Programm nach Beendigung nicht aus dem Speicher entfernt werden soll, womit es bei einem erneuten Aufruf sofort wieder verfügbar wäre. Das Verhalten bei Dateien wird meines Wissens jedoch von den meisten POSIX-kompatiblen Betriebsystemen nicht mehr implementiert, da es heutzutage unnötig geworden ist (Zugriff auf Speicher ist heutzutage schnell (das Sticky-Bit war hauptsächlich für häufig ausgeführte Dateien, die auf Disketten oder CDROMs abgelegt waren, verwendet worden), ferner gibt es sowieso einen allgemeinen Cache im Speicher, unabhängig von irgendwelchen Bits o.ä.). Hat aber wie gesagt nichts mit dem Thema zu tun, ich wollte es nur als Ergänzung mal anbringen.

        Viele Grüße,
        Christian

        --
        "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup
        1. Hallo Christian!

          Unabhängig davon, dass Gunnar sich schon korrigiert hat - ein Sticky-Bit gibt es unter POSIX auch - es macht nur etwas komplett anderes (...)

          Danke für die Erläuterungen! Vermutlich hat sich Gunnar deswegen verschrieben. Hätte mir nicht passieren können, dafür fehlt mir Euer Basiswissen!

          Viele Grüße aus Frankfurt/Main,
          Patrick

          --

          _ - jenseits vom delirium - _
          <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>