Javascript Yazılım Kuralları (JS)
3 Aralık 2007
cookies (çerez) kullanımıKullanıcının bilgisayarında saklanabilen değişkene cookies (çerezler) denir. Bu bilgiyi aynı alan adından ve doğru yoldan bir başka web sayfasıyla alabilme olanağı vardır. Belirtilen bir zaman süresi sonunda çerezler silinir. Yalnız yazı dizisi biçiminde değer saklamakla sınırlıdırlar.Birçok kullanıcı kendi bilgisayarlarında çerezlere izin vermedikleri konusunda herkes uyarılmalıdır. Web sayfasının çerezler üzerine bağımlı olmamasına dikkat edilmelidir. Birçok web sitesi, reklam izleme sistemi olarak çerezleri kullanmaktadır. Bunlarla sizin internetteki gezintinizi izlemek isterlerler. Halbuki insanlar şehir içinde alış veriş yaparken kendilerini izleyen birinin hemen arkalarında not alarak dolaşmasına katlanamaz. Bu nedenle çerezleri bir sonraki girişlerde kullanmak üzere kullanıcı adı ve şifre için kullanılacağını belirtmek bile (kullanıcının engellemesi konusunda) yeterli olmayabilir. Bazı tarayıcılar kaç tane çerez saklayabileceği konusunda sınır koymuştur. Çoğunlukla bu sayı 300 ya da daha fazladır. Bunların her alan adı için 20 tane olması söz konusudur. Açıldıktan sonra 4 KB olan çerezler her alan adı ve yolu için saklanabilir. 'document.cookie' nesnesi o web sayfasına ilişkin tüm çerezlerin bir dizisini verir. 'document.cookie' nesnesinde biraz uygunsuzluk vardır aslında. Ona bir yazı dizisi atandığında, o sizin atadığınız değerle görünmez. O sizin değerinizin bir bölümünü alır o anki değere ekleyerek birçok değişken=değer biçiminde ikililerden oluşur. Çerezleri (cookies) Yaratma / Değiştirme ve SilmeTüm bunları yapabileceğiniz kodlama burada anlatılmıştır.ad=değer ikilisini document.cookie object değişkenine atayarak çerezler yaratır ya da değiştirilir. document.cookie = cookieString;Çerez yazı dizisi (yukarıdaki örnekte cookieString) yalnız bir diziden daha fazla bir şeydir. Yalnız bir değer değildir ve başka bilgiler de içerir. Çerezin ne zaman son bulacağı ve hangi dosya yolunda kullanılacağını belirtir. Tüm bu değerlerin neler olduğu bir dizi içinde "anahtar_sozcuk=deger;" biçiminde yer alır. Yalnız çerez adı ve değeri gereklidir diğerleri seçeneklidir. Tam bir çerez kalıbı aşağıdaki örnekte yer alır:
cookieName=cookieValue[;expires=dataAsString
[;path=pathAsString
[;domain=domainAsString[;secure]]]]
Bu bir çerezi nasıl atayacağınıza güzel bir örnektir ve hello için bir değer atamak, bunun da 21 Aralık 2012 sabah saat 10:00 da son bulacağını söylemek gerekir.
document.cookie = 'mycookie=hello;expires=Fri, 21 Dec 2012 10:00:00 GMT'; çerezadi (cookieName) ve çerezdeğeri (cookieValue)Bunlar yazı dizileridir ve URL biçiminde yazılmıştır. Herhamgi bir değer taşıyabilir. Çerez adı ya da değere URL kodu yazarken 'escape' yöntemi kullanılabilir. Bunun unicode karakterleriyle yapılması olanaksızdır. Yeni tarayıcılar encodeURIComponent yöntemini de sunmaktadır. Ama bunu kullanacak olursanız, eski tarayıcıların desteğini yitirmiş olursunuz.
Reading cookies'document.cookies' çerezlere erişim için kullanıldığında, aşağıdaki kalıpta bilgilere erişilir:cookieName4=value; cookieName3=value; cookieName2=value; cookieName1=valueDikkat etilmesi gereken konu en son değerin ardında noktalı virgül olmamasıdır. Eğer bir değişken için değer yoksa bazı tarayıcılar 'cookieAdi=' döndürür ama bazıları yalnız 'cookieAdi' verir. Çerezler yalnız 'document.cookie' nesnesiyle erişilebilir. Basit bir değişken ile erişilemez (ancak erişilen bir çerezi bir değişkene atayarak değişken adıyla kullanma olanağı vardır). Bu diziden bir değer almak için hata yapmamak önemlidir. Örneği "benimadim" adlı çerezi araken "benimadimdegil" ya da "buradabenimadim" gibi çerez adlarıyla karıştırılmamalıdır. Çerezden ikililerin alınmasında kullanılan en temel yöntem diziyi parçalamaktır (split). Bu işlem bir yazı dizilerinden oluşan bir dizi döndürür. Her bir öğe değişken=değer biçimindedir. Bunların arasında 'for' döngüsüyle dolaşıp aranana uyanı seçebilirsiniz. Bunu da parçalayınca iki öğeli dizi elde edilir. Birincisi değişkenin adını ikincisi ise değerini gösterir. unescape ya da decodeURIComponent yöntemleriyle birinci parçanın açılımı yapılır. Burada çerez adi vardır. Eğer bu istenene uyuyorsa doğru çerez bulunmuştur. if(!arrayname[1]) kullanılarak değeri olup olmadığına bakılır. Eğer değer yoksa çerez değeri boştur. Eğer değeri varsa kullanmak için açabilirsiniz ve döngüden çıkarsınız. Eğer ilk dizinin sonuna geldiğinizde istenilen çerez adına erişemediyseniz bu çerez bilgisayarda tanımlı değildir. ![]() |