Работа с Cookie в JQuery

Статус
Закрыто для дальнейших ответов.

archimed131

Active Member
Регистрация
06.07.2012
Сообщения
31
Здравствуйте, соклубники. Кто работал в JQuery с куками, не могу разобраться. Делаю голосование на своём сайтике http://vkino-online.com и надо проголосовавшему человеку записать Cookie дабы он повторно не голосовал. Вот код:

Код:
function cookieFromVotes()
{
	 var golos=$("input:checked").val();
	 $.cookie("votes", golos);
}

$(document).ready(function() {
$('#variant1').addClass('hidden');
$('#votes').click(function(){
	 var golos=$("input:checked").val();
	 $('#variant').addClass('hidden');
	 $('#variant1').removeClass('hidden');
	
	 var votesCookie = $.cookie("votes");
		 if(votesCookie == null)
		 {
		 cookieFromVotes();
		 votesCookie = $.cookie("votes");
		 }
		 else {}
	 // Загрузка результата
	 $("#variant1").load("page/votes.php?votes="+golos);
	 return false;
});
});
но он почему то не работает, подскажите, что я не так делаю...
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
Код:
$(document).ready(function() {
$('#variant1').addClass('hidden');
$('#votes').click(function(){ ... }); });
Смотрите, при загрузке у нас добавляется класс hidden без всяких проверок, т.е. результаты скрыты в любом случае, проголосовал уже пользователь или нет, а нужна проверка

Код:
var votesCookie = $.cookie("votes");
				 if(votesCookie == null) $('#variant1').addClass('hidden');
я так полагаю, ну больше ошибок не вижу

О, кстате зашел на сайт, и вопрос - зачем там отправка формы, она ведь не нужна, иначе зачем эта строка?
Код:
$("#variant1").load("page/votes.php?votes="+golos);
 

archimed131

Active Member
Регистрация
06.07.2012
Сообщения
31
Результаты голосования отоброжаются после голосования, а если человек уже проголосовал, просто его уведомим об этом соотвествующим сообщением. Это всё работало до того как я начал с куками работать. (((((((((((
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
Проблемма не в куках ведь, а скрипт и форма содержат ошибки. Форма не должна отправлятся посредством кнопки submit, она отправляется строкой
Код:
("#variant1").load("page/votes.php?votes="+golos);
где ?votes="+golos - это есть параметр запроса, скорее всего id ответа в голосовании, и возвращает этот запрос как-раз результат, который должен поместится в #variant1, но без перезагрузки страници... Она же у вас происходит и при этом не проверяетс кука, а автоматом снова показывается голосование... скрипт полон именно логических, а не синтаксических ошибок, вот вердикт
 

archimed131

Active Member
Регистрация
06.07.2012
Сообщения
31
Я сам это всё писал, прописывал и т.д. До того как я начал работать с куками, форма отправлялась и получал результат в #variant1 без перезагрузки и всё работало. :angry: Проблема в куках и это факт! :angry:
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
http://qserg.com/test.html - для наглядности, исходник посмотрите там-же

А вообще лучше храните данные в сессии чем в куках, объяснить почему?
vkino-online.com/page/votes.php?votes=3 - в браузере обновите пару десятков раз, и увидите))
 

archimed131

Active Member
Регистрация
06.07.2012
Сообщения
31
как не зарегиного пользователя занести в бд? по его ip? он же не постоянный...

http://qserg.com/test.html - для наглядности, исходник посмотрите там-же

А вообще лучше храните данные в сессии чем в куках, объяснить почему?
vkino-online.com/page/votes.php?votes=3 - в браузере обновите пару десятков раз, и увидите))
Можно подумать обыватель будет ковыряться в кишках сайта... бредятина какая-то...
 

Volter9

defined('SURRENDER') or die(); // StarWars
Регистрация
27.05.2012
Сообщения
1 145
Хоть и айпи не постоянный, то можно кое какую инфу собрать о нем:
  • UserAgent
  • Браузер + Версия браузера
  • Куки
  • Айди сессии
  • ОС
Да и куча других ой хрени факторов можно получить от юзверя.
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
как не зарегиного пользователя занести в бд? по его ip? он же не постоянный...

http://qserg.com/test.html - для наглядности, исходник посмотрите там-же

А вообще лучше храните данные в сессии чем в куках, объяснить почему?
vkino-online.com/page/votes.php?votes=3 - в браузере обновите пару десятков раз, и увидите))
Можно подумать обыватель будет ковыряться в кишках сайта... бредятина какая-то...
Поверьте - будет и довольно часто...

пользователь в базу заносится по куке, только данные в базе хранятся - этакая замена сессий...
Но я говорил вообще не о том, я говорил что нужно осущетсвить проверку не стороне сервера, а именно, если юзер уже проголосовал, сказать ему, что он бяка и не дать больше голосовать))

Не хотите слушать - дело ваше, я дал вам рабочий кусок кода всего-лишь парой строк отличающиющийся от вашего, и ошибка, как видите, не в куках...
Не хотите помощи - не нужно...

И Вольтер, речь шла о проверке на стороне сервера, а не о том, что сессию можно создать и ручками через привязку кука <-> запись в базе, кстате помоему фишка из CodeIgniter - так?
 

archimed131

Active Member
Регистрация
06.07.2012
Сообщения
31
ArhAngel, извиняюсь если нагрубил, но я вас изначально не так понял. проблема решилась когда я отключил jquery от гугли. Спасибо за разъяснения, воспользуюсь вашим советом и проверку сделаю на стороне сервера. Благодарю за внимание, тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ