Сравнение куки и выдача результата.
Как и многие, задающие тут вопросы - в 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 раз и говорил нашли вообще такую куку или нет. А там я уже алерт поменял бы на то, что мне нужно. Если кто то подправит это дело или даст готовое решение или отправит меня читать не весь мануал, а конкретную вещь, желательно с примером - буду очень благодарен. |
Мда.. сразу не допер, просто взял и удалил Else. Теперь только нужны алерт вылетает.
Но все равно буду рад, если кто нибудь укажет на ошибки, лишний код и объяснит алгоритм или отправит на мануал) Ученье - свет :) |
Ээээ, я не понял, идентификатор сессии хранится в ключе куки? :blink: А в значении тогда что?
|
| Часовой пояс GMT +3, время: 23:49. |