Вход

Просмотр полной версии : Сравнение куки и выдача результата.


fakels
08.04.2014, 13:42
Как и многие, задающие тут вопросы - в js я 0.
Но передо мной стоит задача.

Есть голосование на js+mysql+php.

Все работает отлично, но я решил немного его "причесать", сделать получше.. И вот уже 3-ий день бьюсь над элементарной, как мне кажется, задачей, но решить сам её не могу. Перечитал тут кучу примеров, засунул в свой код и добился ерунды полной :)

В двух словах. Есть голосование. Когда пользователь тыкает на кнопку проголосовать - в куки браузера падает запись вида voting_ + id + абракодабра, примерный вид - "voting_472dfgjhKFGH".

Если пользователь пытается проголосовать еще раз, то ему вылетает alert с предупреждением, что он уже голосовал.

Что хочу сделать я - что бы если пользователь уже голосовал, то кнопки голосования были УЖЕ не активны.

Застрял я на этапе сравнения всех кук с данного сайта с нужной нам.

После 3х дней у меня получилось следующее:
var getvalue = $('.vote-wrapper').attr('name');
kuka = "voted_" + getvalue;

var mas = document.cookie.split(';'), names = [], i = 0, l = mas.length;
for(;i<l;i++)names.push(mas[i].split('=')[0]);
//alert(names);

var coockie=document.cookie;
var coockie_arr=coockie.split('; ');
var value_arr=[];
var coockie_key=0;
var coockie_val=0;

$.each(coockie_arr, function(key, value) {
value_arr=value.split('=');
coockie_key=value_arr[0];
if (coockie_key == kuka) {
alert("нашли куку!");
}
else {
alert("нет такой куки, черт побери!");
}
});

var getvalue = $('.vote-wrapper').attr('name');
забирает из класса vote-wrapper атрибут - name. Там у нас ID + абракодарбра.
далее мы добавляем еще "voted_".

Ну а дальше полная ерунда) я толком не понимаю, что там происходит, но это максимум, что у меня получилось.

Результат - сейчас выскакивает каждый раз алерт, на каждую куку, где то в середине он находит нужную и выскакивает другой алерт.

Нужно, что бы алерт вылетал всего 1 раз и говорил нашли вообще такую куку или нет.
А там я уже алерт поменял бы на то, что мне нужно.

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

fakels
08.04.2014, 13:47
Мда.. сразу не допер, просто взял и удалил Else. Теперь только нужны алерт вылетает.

Но все равно буду рад, если кто нибудь укажет на ошибки, лишний код и объяснит алгоритм или отправит на мануал) Ученье - свет :)

Erolast
08.04.2014, 17:02
Ээээ, я не понял, идентификатор сессии хранится в ключе куки? :blink: А в значении тогда что?