Hallo Bob,
ganz einfach, nur so als fixe Idee: Es kommt eine Script zum Einsatz, welche mittels eines versteckten Formulars eine Prüfvariable a an sich selbst schickt und dann testet, ob diese Variable auch angekommen ist. Der Versand erfolgt via JavaScript. Ist JavaScript deaktiviert, erfolgt auch kein Versand und die Variable a bleibt ungesetzt. Der Test der Variablen erfolgt mit PHP. Das Ganze sähe dann so aus und gehört in den -Bereich:
if(!isset($a)){
echo "
";
echo „“;
echo „document.JS.submit();“;}
if(!isset($a)){$a = „aus“;}
echo „Javascript ist $a“;
?>
Das dürfte helfen. Alternativ musst du mit $HTTP_POST_VARS arbeiten. Leider macht die Seite unter Garantie beim Reload Zicken. Dafür ist die Unterscheidung JS ja oder nein beim normalen Aufruf per Adresseingabe oder per Hyperlink sehr sicher. Du könntest stattdessen auch mit document.location.replace() oder document.location.href eine Umleitung basteln und dem Zielscript (ist ja immer dasselbe) per GET die Parameter mitgeben (z.B. so: index.php?a=ein), jedoch ist die Variable hier Bestandteil des URL und wenn sich dann jemand die Seite bookmarkt, ruft er sie jedesmal mit „a=ein“ auf, ob JS nun aktiviert ist oder nicht. Außerdem kann es passieren, dass Suchmaschinen die Seite inklusive der Variablen indexieren. Das führt natürlich zwangsläufig zu Fehlern.
Darum würde ich als Kompromiss die oben aufgeführte Version mit dem Formular empfehlen, weil hier die Zick-Wahrscheinlichkeit sehr viel geringer ist und die Fehlerwahrscheinlichkeit gegen 0 geht, so lange nicht ausgerechnet zwischen dem Seitenerstaufruf und dem Reload das zuvor aktivierte JavaScript deaktiviert wird, was ich für äußerst unwahrscheinlich halte :o) Ich bin sicher, man könnte mit etwas Nachdenken noch wesentlich elegantere Möglichkeiten finden, so könntest du z.B. zwischen Seitenaufruf und Versand noch eine kleine Zeitverzögerung einbauen, um den Klick auf den Zurück-Button des Browsers nicht zu behindern. Probier einfach mal damit rum.
LG
Huttatta