Wird mit dem jQuery Cookie-Plugin eine gültige Art und Weise zu testen, um zu sehen, ob Cookies aktiviert ist?

StackOverflow https://stackoverflow.com/questions/2029725

  •  19-09-2019
  •  | 
  •  

Frage

ich eine Website haben, dass wir die Benutzer benötigen Sie JavaScript und Cookies aktiviert sein, bevor sie auf der Seite einloggen können. (Der JS Teil erledigt ist und funktioniert perfekt.) Im Moment haben wir ein Cookie worden waren Einstellung und dann leiten Sie den Benutzer zu einer anderen Seite (in PHP). Das hat geklappt hat, aber jetzt haben wir eine Gruppe von Leuten, die die Seite ein Lesezeichen angelegt haben wir, nicht über die Cookie-Gruppe, die natürlich umleiten und damit sie nicht zu Login erlaubt.

Also ich versuche, eine andere Lösung zu finden für das Cookie zu überprüfen und ich denke an mit der jQuery Cookie-Plugin . Ich frage mich, ob es in allen Browsern kompatibel ist (wenn JS natürlich aktiviert ist)?

War es hilfreich?

Lösung

Thxs Shawn Ihre Antwort , aber leider, da Browser nicht immer die Referrer sendet, ist es nicht zuverlässig genug, um es in der Lage sein, jedes Mal zu verwenden. Denn wenn es nicht gesetzt ist, dann Sie Art Ende in einer Schleife auf.

Die eine andere Lösung, dass ich dachte, war zu einer völlig anderen Seite zu umleiten, die Kontrollen an sich zu sehen, ob Cookies aktiviert werden (durch sich selbst umleiten). Wenn Cookies aktiviert sind, wäre es auf die Originalseite umleiten zurück. Wenn sie es nicht sind, dann wäre es auf eine Seite über das Problem umleiten. Ich denke, das sollte funktionieren, aber ich bin mir nicht sicher.

Am Ende habe ich versucht, die jQuery-Plugin Cooke in IE 6, 7 und 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 und auf ein paar verschiedenen Konfigurationen und es funktionierte in alle von ihnen. Hier ist der Code verwende ich:

$.cookie('test_cookie', 'cookie_value', { path: '/' });
if ($.cookie('test_cookie') == 'cookie_value') {
    // cookie worked, set/enable appropriate things
}

Es ist nicht perfekt, aber ich denke, es in 95% der Fälle funktioniert. Ansonsten wird es scheitern und nur nicht zulassen, dass sie nichts tun.

Andere Tipps

Sie können die Referrer der Seite prüfen, und wenn es nicht Ihre Homepage ist, können Sie sie dort umleiten. Wenn die Referrer Ihrer Homepage ist und es gibt keine Cookie-Gruppe, werden Sie wissen, dass sie nicht über Cookies aktiviert.

Ich mag diese 1-Liner-Funktion:

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top