Cookie-kezelés jqueryvel
Üdv.
Egy viszonylag egyszerű akadályba ütköztem, ám mégse tudok továbblépni rajta...
Adva vagyon egy oldal, melyen lista-szerűen linkek helyezkednek el, s ezekre kattintva cookie-t hozna létre jQuery segítségével az oldal. Működésileg úgy történik, hogy a kattintott elem ID attribútumát (ez a kattintott oldal url s title párosa) tömbösítem, majd cookie-t generálok belőle.
Továbbá: Lekérem a kattintott oldalak, tehát a létrejött cookiek információit, de abból egyszerre csak 7 darabot (ugye elvileg 20 cookie/domain amit képes a rendszer használni), s ezt egy divbe iratom. Elévülési idő alapból 1 nap.
A probléma ott jelentkezik, hogy a kódom minden kattintáskor létrehozza a kívánt nevű (pagetitle) cookiet a megfelelő url-el mint érték, ám nem tudom lekérdezni, milyen cookiek léteznek már erre a domainre, vagy pathre. PHP-ban tudom hogy csinálnám, mert ott egy sima isset is megfelel név alapján, maximum lekérem az összes session elemem, de jQueryvel hogyan lehet megoldani a fenti problémám?
Íme a kattintásra lefutó scriptem:Ez pedig maga a setCookie függvényem: Van getCookie is, de az csak név alapján képes visszaadni a létrehozott cookie értékét, s itt ugye az lenne a lényeg, hogy a pontos megnevezés tudta nélkül is letudjunk kérni x-darabot, annak minden információjával.
C.
■ Egy viszonylag egyszerű akadályba ütköztem, ám mégse tudok továbblépni rajta...
Adva vagyon egy oldal, melyen lista-szerűen linkek helyezkednek el, s ezekre kattintva cookie-t hozna létre jQuery segítségével az oldal. Működésileg úgy történik, hogy a kattintott elem ID attribútumát (ez a kattintott oldal url s title párosa) tömbösítem, majd cookie-t generálok belőle.
Továbbá: Lekérem a kattintott oldalak, tehát a létrejött cookiek információit, de abból egyszerre csak 7 darabot (ugye elvileg 20 cookie/domain amit képes a rendszer használni), s ezt egy divbe iratom. Elévülési idő alapból 1 nap.
A probléma ott jelentkezik, hogy a kódom minden kattintáskor létrehozza a kívánt nevű (pagetitle) cookiet a megfelelő url-el mint érték, ám nem tudom lekérdezni, milyen cookiek léteznek már erre a domainre, vagy pathre. PHP-ban tudom hogy csinálnám, mert ott egy sima isset is megfelel név alapján, maximum lekérem az összes session elemem, de jQueryvel hogyan lehet megoldani a fenti problémám?
Íme a kattintásra lefutó scriptem:
var datas = $(this).attr("id");
var cookieInfos = new Array();
cookieInfos = datas.split(':');
var sessName = cookieInfos[1];
var sessLink = cookieInfos[0];
console.log(sessName + ' : ' + sessLink);
setCookie(sessName, sessLink, 1);
function setCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
var path = "; path=" + value;
document.cookie = name + "=" + value + expires;
}
C.
document.cookie
document.cookie
változó tartalmazza az összes sütit. Csak fel kell darabolni;
mentén.Valóban
Még annyi lenne akkor az idevágó kérdésem, hogy a unique-al megéri berendezni a cookiekat a tömbön belül -ehhez value-mezőben kap egy url és egy timestamp értéket is így timestamp alapján lehet-, vagy esetleg minden új cookie bekerülésénél unshiftel rakjam a tömböm elejére? A lényege ennek ugye annyi, hogy habár egy cookie már regisztrálva van egy name-value párral, ha újra klikkelek, újraregisztrálja, előzőt felülírva, de így a timestamp is látszik hogy más. Tehát ha én kattintok link1 -re, majd pedig link2 -re, s utána ismét a link1 -re, akkor szeretném hogy láthatólag is link1 a tömböm 0-ik helyén álljon, s link2 tolódjon az 1. helyre. A döntő kérdés ehhez viszont az, hogy melyik a jobban szeretett megoldás, melyik gyorsabb, melyik éri meg magyarul a használatot?
Kiegészítés:
Vagy még ami eszembe jutott, ha csak simán beillesztem első helyre mindenféle okosság nélkül:
Nem igazán állt össze a kép,
Nem tudod visszaolvasni egy
De ha....
C.
süti
Ezt nem teljesen értem. A jQuery csak JavaScript, nem valami mágia.
Igen, jelenleg is így képezem
A csak jQuery -t arra értettem, hogy régebben volt hogy PHP-vel kombóztam, de ez most nem járható ösvény.
viszont a tömbből, amivé
Ez nagyon zavaros. Milyen tömbről van szó, és mit nem tudsz a tömb elejére rakni? Minden tömbnek létezik
unshift
metódusa, amivel a tömb elejére lehet pakolni elemeket. De miért kell a tömb elején lennie? És miért nem tudsz egy elemet kiszedni a tömbből? Arra való asplice
metódusa a tömböknek. A kereséshez meg egyszerűen végigiterálsz a tömbön egyfor
/while
ciklussal.Done
Sikerült végülis megoldani, teljesen más megközelítéssel. A lényeg, hogy én balga a ténylegesen tárolt sütiket akartam erőszakolni, holott oda maximum valuet adok meg, s egy állandóan változó tömbben pedig lekezelem az aktuálisan létező sütiket. Így már működik a sorbarendezés is tömbön belül, illetve nincs állandóan létrejövő számtalan új süti, így kiküszöbölve néhány biztonsági problémalehetőséget is. viszont egy dolog még így is megakad a rostán, hogy hogy lehet az, hogy mikor megkapom az adatokat, elmentésre már az őűí karakterek helyén fura karakterek látszanak? Pl. ű=q, ő=Q, stb. Minden fájl utf8 bom -ba van mentve, az adatok feldolgozása során se módosítom a kódolásukat. A különleges karakterekkel nincs bajom.
C.