Chris: Opera 6 : warum erkennt er meine Cookie-Abfrage nicht?

Hallo Leute, Hilfe!!

habe ein dringendes Problem. Ich hoste mit 3 Studenten ein Internetportal, das auch eine Registrierung + Login erfordert. Da die Seite Cookies benötigt werden diese direkt bei der Registrierung abgefragt. User ohne aktivierte Kekse erhalten keinen Zutritt, da es sonst zu Fehlern auf der Seite kommt.
Nun melden User mit Opera 6, dass sie zwar Cookies aktiviert haben, trotzdem aber auf fehlende Cookies hingewiesen werden...??? IE und Nestcape interpretieren die Zeile einwandfrei.

Meine einzige Erklärung ist, dass Opera 6 mein Javascript falsch interpretiert:

function kekse () {

if (navigator.cookieEnabled)
{

return checkmail();

}
else
  parent.frames['inhalt'].location.href="keincookie.html";
return false;

}

Wie muss der Befehl lauten ("if (navigator usw..??) damit auch Opera angesprochen wird und die Fehlermeldung nur erscheint, wenn KEINE Cookies aktiviert wurden?

Danke schon im vorraus!!

Grüße Christine

  1. Hi Christine,

    Nun melden User mit Opera 6, dass sie zwar Cookies aktiviert haben, trotzdem aber auf fehlende Cookies hingewiesen werden...???

    Meine einzige Erklärung ist, dass Opera 6 mein Javascript falsch interpretiert:

    if (navigator.cookieEnabled)

    das führt Opera nur dann aus, wenn er als M$IE getarnt ist, nicht jedoch, wenn man den richtigen UserAgent, oder einen anderen, den man auswählen kann sendet.

    Wie muss der Befehl lauten ("if (navigator usw..??) damit auch Opera angesprochen wird und die Fehlermeldung nur erscheint, wenn KEINE Cookies aktiviert wurden?

    Setze ein Cookie, leite auf eine weitere Seite um und frage dort ab, ob das Cookie existiert.

    LG Orlando

    1. Hi,

      Setze ein Cookie, leite auf eine weitere Seite um und frage dort ab, ob das Cookie existiert.

      Und Du weißt, das genau dieses eine Cookie akzeptiert wurde.
      Nicht mehr und nicht weniger.
      Cookies können einzeln zugelassen/abgelehnt werden.

      Andreas

      1. Hi Andreas,

        Setze ein Cookie, leite auf eine weitere Seite um und frage dort ab, ob das Cookie existiert.

        Und Du weißt, das genau dieses eine Cookie akzeptiert wurde.
        Nicht mehr und nicht weniger.
        Cookies können einzeln zugelassen/abgelehnt werden.

        richtig, das ist aber ein generelles Problem. Und wer sich einloggen will, wird das Cookie wohl zulassen müssen.

        LG Orlando

  2. Danke Orlando, MudGuard!

    Habe eine von anderer Seite eine alternative Lösung erhalten (Danke an womstar!), die funktioniert:
    Für alle, die ein ähnliches Problem haben hier der code mit
    if else bedingung und mit boolschen werten (true, false).

    Beispiel

    <script type=text/javascript>
    function kekse ()
    {
    if(navigator.cookieEnabled == true)
    {
    return true();
    }
    else if(navigator.cookieEnabled == false)
    {
    parent.frames['inhalt'].location.href="keincookie.html";
    return false;
    }
    }
    </script>

    1. Hi Chris,

      Habe eine von anderer Seite eine alternative Lösung erhalten (Danke an womstar!), die funktioniert:

      Vorsicht! Ich habe es mit folgender Funktion ausprobiert:

      <script type=text/javascript>
      function kekse () {
        if(navigator.cookieEnabled == true) {
          alert("Cookies erlaubt");
        }
        else if(navigator.cookieEnabled == false) {
          alert("keine Cookies erlaubt");
        }
      }
      </script>

      Identifiziert sich Opera als M$IE, reagiert er, sonst nicht. Zwar ist Opera per default so eingestellt, aber die meisten Benutzer werden das wohl ändern.

      Diese Lösung funktioniert somit nicht!

      LG Orlando

      1. Moin!

        Identifiziert sich Opera als M$IE, reagiert er, sonst nicht. Zwar ist Opera per default so eingestellt, aber die meisten Benutzer werden das wohl Ãndern.

        Diese LÃsung funktioniert somit nicht!

        Sehe ich genauso. Die Beispielseite in der Javascript-Objektreferenz zu navigator.cookieEnabled gibt bei meinem Opera jedenfalls "Verrat ich nicht" aus - deutliches Zeichen dafÃr, dass Opera dieses Objekt nicht kennt.

        <file://localhost/D:/Sven/selfhtml/javascript/objekte/anzeige/navigator_cookie_enabled.htm>

        Also bleiben nur zwei MÃglichkeiten:
        1. Cookie setzen und eine Seite spÃter abfragen. Wenn man sich auf _ein_ Cookie beschrÃnkt, sollte das machbar sein.
        2. Eine ordentliche Session-Verwaltung einsetzen, welche notfalls ein Fallback auf URL-Parameter verwendet. Das ist zwar nicht ganz so stabil, funktioniert aber im normalen Einsatz (wenn der Besucher nicht eingreift) genauso gut wie ein Session-Cookie. MÃgliche Gegenargumente wÃren nur, dass man verhindern will, dass die Session-ID per Referer an fremde Server gelangt. Solange man nichts sicherheitsrelevantes tut, dÃrfte das aber ziemlich egal sein.

        - Sven Rautenberg