Utilizza jQuery Cookie plugin un valido strumento di test per vedere se i cookies sono abilitati?

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

  •  19-09-2019
  •  | 
  •  

Domanda

Ho un sito che si richiede all'utente di avere attivato il JavaScript e i cookie prima di poter accedere al sito.(JS parte è fatto e funziona perfettamente.) Al momento, siamo stati la creazione di un cookie e quindi reindirizzare l'utente a un'altra pagina (in PHP).Questo ha funzionato bene, ma ora abbiamo un gruppo di persone che hanno memorizzato la pagina ci sono reindirizzamento, che ovviamente non hanno il set di cookie e quindi non permette di effettuare il login.

Così sto cercando di trovare un'altra soluzione per controllare i cookie e sto pensando di utilizzare la jQuery Cookie plugin.Mi chiedo se è compatibile con tutti i browser (quando JS abilitato, naturalmente)?

È stato utile?

Soluzione

Thxs Shawn per la tua risposta, ma, purtroppo, perché il browser non sempre inviare il referrer, non è sufficientemente affidabile per essere in grado di utilizzare ogni volta.Perché se non è impostato, allora sei in grado di finire in un loop.

L'altra soluzione che ho pensato è stata reindirizzare completamente una pagina separata, che, di per sé, controlla per vedere se i cookies sono abilitati (tramite il reindirizzamento a se stesso).Se i cookies sono abilitati, sarebbe ritorna alla pagina originale.Se non sono, quindi si potrebbe reindirizzare a una pagina con il problema.Penso che dovrebbe funzionare, ma non ne sono sicuro.

Alla fine, ho provato jQuery Cooke plugin per IE 6, 7 e 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 e su un paio di configurazioni diverse e ha funzionato in tutti loro.Ecco il codice che sto usando:

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

Non è perfetto, ma sto pensando funziona nel 95% dei casi.In caso contrario, si avrà esito negativo e non solo permettono loro di fare qualsiasi cosa.

Altri suggerimenti

Si potrebbe verificare il referente della pagina e se non è la tua home page, è possibile reindirizzare c'.Se il referrer è la tua home page e non c'è nessun set di cookie, youll sanno di non avere i cookie abilitati.

Mi piace questo 1 liner funzione:

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top