Bertram: Fehler bei SSI-Include

Hallo,
ich habe in meiner shtml-Datei den Include

<!--#include virtual="mylib/vars.shtml" -->

und in der Datei vars.shtml:

<!--#if expr="$DOCUMENT_NAME=/^(.*).shtml$/" --><!--#set var="AKT_DOK" value="$1" --><!--#endif -->
   <!--#set var="MyEnv1" value="tz" -->

Es kommt dann der Fehler:
[an error occurred while processing this directive]
Da ich keinen Zugriff auf das log habe, weiß ich nicht mehr über den Fehler.
Wenn ich in der Datei vars.shtml nur angebe:
   <!--#set var="MyEnv1" value="tz" -->
kommt kein Fehler, also scheint das if-statement nicht akzeptiert zu werden.
Auf meinem lokalen System hatte ich kein Problem.
Für Eure Hilfe wäre ich dankber.
Gruß
Bertram

  1. Hi!

    Wenn ich in der Datei vars.shtml nur angebe:
       <!--#set var="MyEnv1" value="tz" -->
    kommt kein Fehler, also scheint das if-statement nicht akzeptiert zu werden.

    Ich tippe auf den Microsoft-IIS. Der versteht kein IF!

    FG Ulysses

    1. Hi!

      Wenn ich in der Datei vars.shtml nur angebe:
         <!--#set var="MyEnv1" value="tz" -->
      kommt kein Fehler, also scheint das if-statement nicht akzeptiert zu werden.
      Ich tippe auf den Microsoft-IIS. Der versteht kein IF!

      Ich habe jetzt mal unter Microsoft IIS gesucht und folgendes gefunden:

      Bei einigen Systemen (z.B. Windows 2003 Server) gehört diese Gruppe von Programmen gemeinsam mit dem so genannten Active Directory unmittelbar zum Betriebssystem, bei anderen (Windows 2000, Windows XP, Windows Vista) kann das Programmpaket über die Software-Auswahl in der Systemsteuerung nachinstalliert bzw. aktiviert werden.

      Das klingt aber doch so, als ob es sich um client-seitige Programme handelt.
      Das SSI läuft aber doch auf dem Server ab (wenn ich "server side include" richtig verstehe).
      Gr.
      Bertram

      1. Hi!

        Bei einigen Systemen (z.B. Windows 2003 Server) gehört diese Gruppe von Programmen gemeinsam mit dem so genannten Active Directory unmittelbar zum Betriebssystem, bei anderen (Windows 2000, Windows XP, Windows Vista) kann das Programmpaket über die Software-Auswahl in der Systemsteuerung nachinstalliert bzw. aktiviert werden.

        Das klingt aber doch so, als ob es sich um client-seitige Programme handelt.

        Nein. Das heißt nur, dass du den IIS auf einem Windowsrechner (ab Win2k) installieren kannst.

        Das SSI läuft aber doch auf dem Server ab (wenn ich "server side include" richtig verstehe).

        Genau. Und wenn auf dem Server der IIS läuft, dann hast du Pech mit der SSI-Anweisung "IF", weil der IIS diese eben nicht versteht und eine Fehlermeldung ausgibt. (zumindest bei den IIS-Versionen mit denen ich bisher zu tun hatte)

        FG Ulysses

        1. Hi!
          Danke für die Infos.
          Inzwischen habe ich meinen Provider mit dem Problem konfrontiert.
          Lapidare Antwort (unkorrigiert):
          leider ist die Nuntzung von Server-Side-Includ bei uns nicht möglich.

          Was hältst Du davon?
          Es funktioniert ja alles bis auf den "if".
          Ich nehme an, die haben keine Ahnung.
          Gruß
          Bertram

          1. Hi!

            Hi!
            Danke für die Infos.
            Inzwischen habe ich meinen Provider mit dem Problem konfrontiert.
            Lapidare Antwort (unkorrigiert):
            leider ist die Nuntzung von Server-Side-Includ bei uns nicht möglich.

            Was hältst Du davon?

            Hängt davon ab, wieviel du dafür zahlst.
            Ich hatte auch mal das "IF-Problem". Mein Provider hat mir aber einen kostenlosen Umzug auf einen Apache-Server angeboten.

            Vielleicht kannst du PHP nutzen?

            FG Ulysses

    2. Wenn ich in der Datei vars.shtml nur angebe:
         <!--#set var="MyEnv1" value="tz" -->
      kommt kein Fehler, also scheint das if-statement nicht akzeptiert zu werden.
      Ich tippe auf den Microsoft-IIS. Der versteht kein IF!

      Hallo,
      ich hänge immer noch an dem Problem und hoffe, es liest noch jemand hier mit, der mir weiterhelfen kann.
      Ein if wird offensichtlich verstanden, nur nicht der meinige.
      Es liegt also vermutlich an meinem regulären Ausdruck (Test4), der bei mir wie gewollt funktioniert und auf dem Server meines Providers nicht.
      Ich habe folgendes Beispiel erstellt um mich an den Fehler heranzutasten.
      Irgendwie scheint es an der Klammerung u liegen. Gelten hier vielleicht andere Regeln für reg. Ausdrücke?

      Mein Beispiel:

        
      <html>  
      <head>  
      <title>SSI-Test</title>  
      <body>  
      <!--#set var="TEST" value="xxxxx.shtml" -->  
      <!--#if expr="$TEST = /xxxxx.shtml/" -->  
      <!--#set var="ERG" value="xxxxx.shtml" -->  
      <!--#else -->  
      <!--#set var="ERG" value="Fehler" -->  
      <!--#endif -->  
      Test1: <!--#echo var="ERG" -->  
      <br>  
      <!--#if expr="$TEST = /(xxxxx.shtml)/" -->  
      <!--#set var="ERG" value="**$1**" -->  
      <!--#else -->  
      <!--#set var="ERG" value="Fehler" -->  
      <!--#endif -->  
      Test2: <!--#echo var="ERG" -->  
      <br>  
      <!--#if expr="$TEST = /\(xxxxx.shtml\)/" -->  
      <!--#set var="ERG" value="**$1**" -->  
      <!--#else -->  
      <!--#set var="ERG" value="Fehler" -->  
      <!--#endif -->  
      Test3: <!--#echo var="ERG" -->  
      <br>  
      <!--#if expr="$TEST=/^(.*)\.shtml$/" -->  
      <!--#set var="ERG" value="$1" -->  
      <!--#else -->  
      <!--#set var="ERG" value="Fehler" -->  
      <!--#endif -->  
      Test4: <!--#echo var="ERG" -->  
      <br>  
      </body>  
      </html>  
        
        
      Ergebnis:  
      Test1: xxxxx.shtml  
      [an error occurred while processing this directive] Test2: Fehler  
      Test3: ****  
      [an error occurred while processing this directive] Test4: Fehler  
      
      

      Gruß
      Bertram