Utilizza jQuery Cookie plugin un valido strumento di test per vedere se i cookies sono abilitati?
-
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)?
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';
}