SSI: Bedingung mit log. Operatoren verknuepfen
Faxe
- programmiertechnik
Moin zusammen!
Ich stehe vor einem kleine Problem.
Ziel ist es bei jedem Browser !=MSIE eine Tageszeitbezogene Begruesung auszugeben. Der MSIE wird hier ausgeschlossen weil er bereits anderweitig bedient wird. ;-)
Folgende SSI-Anweisung soll Zeit und Browser pruefen:
<!--#config timefmt="%H" -->
<!--#if expr="$DATE_LOCAL < '06'" && ="${HTTP_USER_AGENT} != /MSIE/" -->
So wie es jetzt notiert ist erscheint nur eine Fehlermeldung.
Oder muss ich erst meine "Zeitpruefungen" auflisten und zum Schluss den MSIE "aussortieren"???
Gruss
Faxe
Hi,
Ziel ist es bei jedem Browser !=MSIE eine Tageszeitbezogene Begruesung auszugeben. Der MSIE wird hier ausgeschlossen weil er bereits anderweitig bedient wird. ;-)
Folgende SSI-Anweisung soll Zeit und Browser pruefen:
<!--#config timefmt="%H" -->
<!--#if expr="$DATE_LOCAL < '06'" && ="${HTTP_USER_AGENT} != /MSIE/" -->
^ ^^
<!--#if expr="$DATE_LOCAL < '06' && ${HTTP_USER_AGENT} != /MSIE/" -->
sollte schon besser klappen...
Bedenke aber auch, daß HTTP_USER_AGENT nicht sehr zuverlässig ist. Opera gibt sich hier z.B. oft als IE aus...
Andreas
Hi,
Ziel ist es bei jedem Browser !=MSIE eine Tageszeitbezogene Begruesung auszugeben. Der MSIE wird hier ausgeschlossen weil er bereits anderweitig bedient wird. ;-)
Bedenke aber auch, daß HTTP_USER_AGENT nicht sehr zuverlässig ist. Opera gibt sich hier z.B. oft als IE aus...
Andreas
Danke Andreas!
Naja, das mit der Syntax ist wohl noch nicht so ganz meine Staerke.
Das mit dem HTTP_USER_AGENT und Opera ist mir soweit bekannt. Opera muss bei mir den MSIE simmulieren!
Folgende Zeilen leisten jetzt ihren Dienst:
_____
<!--#config timefmt="%H" -->
<!--#if expr="$DATE_LOCAL < '06' && ${HTTP_USER_AGENT} != /MSIE/" -->
Gute Nacht!
<!--#elif expr="$DATE_LOCAL < '12' && ${HTTP_USER_AGENT} != /MSIE/" -->
Guten Morgen
<!--#elif expr="$DATE_LOCAL < '18' && ${HTTP_USER_AGENT} != /MSIE/" -->
Guten Tag!
<!--#elif expr="${HTTP_USER_AGENT} = /MSIE/" -->
Bitte verwenden Sie einen anderen Browser!
<!--#else -->
Guten Abend!
<!--#endif -->
_____
So klappt es auch zu der _jetzigen_ Tageszeit.
Kann es zu einem bestimmten Zeitbereich zu Problemen kommen?
Leider steht es nicht in meiner Macht die Zeit des Servers -zu Testzwecken- zu aendern. ;-)
Gruss
Faxe
Hi,
Hi,
Ziel ist es bei jedem Browser !=MSIE eine Tageszeitbezogene Begruesung auszugeben. Der MSIE wird hier ausgeschlossen weil er bereits anderweitig bedient wird. ;-)
Bedenke aber auch, daß HTTP_USER_AGENT nicht sehr zuverlässig ist. Opera gibt sich hier z.B. oft als IE aus...
Andreas
Danke Andreas!
Naja, das mit der Syntax ist wohl noch nicht so ganz meine Staerke.
Das mit dem HTTP_USER_AGENT und Opera ist mir soweit bekannt. Opera muss bei mir den MSIE simmulieren!
Folgende Zeilen leisten jetzt ihren Dienst:
_____
<!--#config timefmt="%H" -->
<!--#if expr="$DATE_LOCAL < '06' && ${HTTP_USER_AGENT} != /MSIE/" -->
Gute Nacht!
<!--#elif expr="$DATE_LOCAL < '12' && ${HTTP_USER_AGENT} != /MSIE/" -->
Guten Morgen
<!--#elif expr="$DATE_LOCAL < '18' && ${HTTP_USER_AGENT} != /MSIE/" -->
Guten Tag!
<!--#elif expr="${HTTP_USER_AGENT} = /MSIE/" -->
Bitte verwenden Sie einen anderen Browser!
<!--#else -->
Guten Abend!
<!--#endif -->
_____
Nachteil:
Es wird die Zeit des Servers benutzt, nicht die des Surfers.
Wenn der in einer anderen Zeitzone sitzt, wird er abends mit Guten Morgen begrüßt...
Abgesehen davon, ich hätte das - wenn überhaupt - anders gelöst:
if (USER_AGENT != /MSIE/)
if (Zeit < 6)
Gute Nacht
elif (Zeit < 12)
Guten Morgen
elif (Zeit < 18)
Grüß Gott
else
Guten Abend
endif
endif
Andreas
Hi Andreas,
Hi,
Nachteil:
Es wird die Zeit des Servers benutzt, nicht die des Surfers.
Wenn der in einer anderen Zeitzone sitzt, wird er abends mit Guten Morgen begrüßt...
Das stimmt ja soweit. Aber, anhand der TLD sollte der Sufer erkennen welche Zeitzone gemeint ist.
Der Server steht in Berlin. Zur Not liese sich mit dem Parameter "%Z" der Name der Zeitzone, in einem Datum-/Uhrzeitstring, anzeigen.
Abgesehen davon, ich hätte das - wenn überhaupt - anders gelöst:
if (USER_AGENT != /MSIE/)
if (Zeit < 6)
Gute Nacht
elif (Zeit < 12)
Guten Morgen
elif (Zeit < 18)
Grüß Gott
else
Guten Abend
endif
endif
Haeh???
Jetzt stehe ich voll ganz auf dem Schlauch! :-(
Koenntest Du bitte fuer einen extrem begriffsstuzigen Anwender, wie mich, die ganze SSI-Anweisung posten?
Mir kommt das in der Form etwas "strange" vor. Sorry.
Andreas
Faxe