Est-ce avec le plugin Cookie jQuery un moyen valable de tests pour voir si les cookies sont activés?

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

  •  19-09-2019
  •  | 
  •  

Question

J'ai un site que nous avons besoin de l'utilisateur d'avoir JavaScript et cookies activés avant de pouvoir accéder au site. (La partie JS est fait et fonctionne parfaitement.) Pour le moment, nous avons été un cookie, puis rediriger l'utilisateur vers une autre page (en PHP). Cela a bien fonctionné, mais maintenant nous avons un tas de gens qui ont la page bookmarked nous allez être redirigé vers, ce qui bien sûr ne pas l'ensemble des cookies et donc ne leur permet pas de se connecter.

Je suis en train de trouver une autre solution pour vérifier le cookie et je pense à l'aide de la jQuery plug-in Cookie de. Je me demande si elle est compatible avec tous les navigateurs (lorsque JS est activé bien sûr)?

Était-ce utile?

La solution

Thxs Shawn pour votre réponse , mais malheureusement parce que les navigateurs n'envoient pas toujours le referrer, il ne suffit pas fiable pour pouvoir l'utiliser à chaque fois. Parce que si elle est pas définie, vous finissez genre de dans une boucle.

La seule autre solution que je pensais était de rediriger vers une page à part entière, ce qui en soi vérifie si les cookies sont activés (par la redirection vers lui-même). Si les cookies sont activés, il rediriger vers la page d'origine. Si elles ne sont pas, il serait alors rediriger vers une page sur le problème. Je pense que cela devrait fonctionner, mais je ne suis pas sûr.

En fin de compte, j'ai essayé le plugin Cooke jQuery dans IE 6, 7 et 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 et quelques configurations différentes et cela a fonctionné dans tous. Voici le code que je utilise:

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

Il est pas parfait, mais je pense qu'il va travailler dans 95% des cas. Dans le cas contraire, il échouera et tout simplement pas leur permettre de faire quoi que ce soit.

Autres conseils

Vous pouvez vérifier la referrer de la page et si ce n'est pas votre page d'accueil, vous pouvez les rediriger là. Si le referrer est votre page d'accueil et il n'y a pas de cookie, vous saurez qu'ils n'ont pas les cookies.

I like this fonction de doublure 1:

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top