У меня есть сайт, что мы требуем, чтобы пользователь включил JavaScript и cookie, прежде чем они смогут войти в сайт. (Часть JS сделана и работает отлично.) В данный момент, мы были, установив cookie и затем перенаправляем пользователя к другой странице (в PHP). Это хорошо работало, но теперь у нас есть группа людей, которые отметили страницу, к которой мы перенаправляем, которому, конечно, не установили cookie и поэтому не позволяет им входить в систему.
Таким образом, я пытаюсь найти другое решение проверить на cookie, и я думаю об использовании плагина Cookie jQuery. Я задаюсь вопросом, совместимо ли это во всех браузерах (когда JS включен, конечно)?
Спасибо, Шон, за ваш ответ , но, к сожалению, поскольку браузеры не всегда отправляют реферер, он недостаточно надежен, чтобы иметь возможность использовать его каждый раз. Потому что, если он не установлен, вы как бы зацикливаетесь.
Еще одно решение, которое я придумал, заключалось в перенаправлении на совершенно отдельную страницу, которая сама по себе проверяет, включены ли файлы cookie (путем перенаправления на себя). Если файлы cookie включены, выполняется перенаправление обратно на исходную страницу. В противном случае он будет перенаправлен на страницу с описанием проблемы. Я думаю, это должно сработать, но я не уверен.
В конце концов, я попробовал плагин jQuery Cooke в IE 6, 7 и 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 и в нескольких различных конфигурациях, и он работал во всех из них. Вот код, который я использую:
$.cookie('test_cookie', 'cookie_value', { path: '/' });
if ($.cookie('test_cookie') == 'cookie_value') {
// cookie worked, set/enable appropriate things
}
Он не идеален, но я думаю, что он будет работать в 95% случаев. В противном случае он выйдет из строя и просто не позволит им что-либо делать.
Вы можете проверить реферер страницы, и, если это не ваша домашняя страница, вы можете перенаправить их туда. Если реферер - это ваша домашняя страница и файлы cookie не установлены, вы будете знать, что у них не включены файлы cookie.