Kucuk,hafif,portatif oldukca hizli bir veri depolama bicimi...Iste bunun ismi ne yazikki Turkce'de "cerez dosyasi".(Onlarin kulturunde kurabiye bizim kulturumuzde cerez agir basiyor herhalde..)
Biraz detaya girmek gerekirse, istemci-server arasindaki veri iletisiminde bu "cerez dosyalari" istemci tarafin tarayicisinda(browser'inda) kucuk capli verileri saklamak icin gelistirilmistir.
Kullanim alani: Kucuk,fakat oldukca yardimci olabilecek "kritik" olmayan verilerin saklanmasidir.Buna en iyi ornek sitenin gorunumunu istedigi gibi degistiren kullanici icin ayarlarin kendi bilgisayarinda,kullandigi tarayicinin ozel bir alaninda "cerez dosyasi" tabir edilen kucuk dosyalarda saklanmasdir.
Nasil Kullanilir?
Bunu kesin kurallara dayandirarak aciklamak mumkun degil cunku ziyaretcinin kullandigi browser'dan browser'a degisiklik gostermektedir.
Simdi size anlatacaklarimiz "cerez dosya"larinin kullanimina iliskin genel kurallardir.
Istemci bilgisayar, "cerez dosyasi" kullanan bir web sitesini goruntulemeye calistigi zaman,Web Server istemci tarafa (ki bu genellikle kullanicinin browser programi olur) bir parca veriyi daha sonra kullanilmak uzere saklamasi icin verir.Bunun ardindan artik o veriden istemci taraftaki bilgisayar sorumludur."Cerez Dosyasi" destekleyen browserlar bu islemi, "cerez dosya"sini gonderen sitenin ismini dosya ismi olarak kullanarak yaparlar.
Bu veriye yapilacak daha sonraki isteklerde buradan alinan bilgilerin bir kopyasi Web Server'a gonderilir.Bu veriler daha "cerez dosyasi" yaratilirken belirledigimiz omur sureleri dolana kadar istemci tarafin bilgisayarinda saklanir.Omur sureleri dolan "cerez dosyalari" sistemden silinirler.
"Cerez dosya"lari yaratilirken server tarafi,istemci tarafa bu verileri ne kadar sure ile saklamasi gerektigini bildirir.Bu bildirim temel olarak "saniye" cinsinden bir rakam vermek suretiyle yapilir.
Eger belirtilen sure "0" ise istemci bilgisayarda bu "cerez dosya"si kullanici browser penceresini kapatana kadar saklanir ve sonra hard disketen silinmesi suretiyle yok edilir.
Elbette istemci tarafta saklanan veriler icin,server tarafindan bir kontrol soz konusu degildir.Bir defa yaratildiktan sonra server tarafindan bu dosyalar uzerindeki tum hakimiyet kaybolur.Kullanici bu dosyalarin icinde saklanan verileri degistirebilir,duzenleyebilir,silebilir veya tumunu oratadan kaldirabilir.Bu durumda, bir web prgramcisi olarak istemci taraftaki verilere supheci yaklasmak ve kritik olan verileri bu sekilde saklamak yolundan kendimizi ali koymak gereklidir.
ONEMLI:Web Serverlar "cerez dosya"larini HTTP header olarak gondermektedir. Bu nedenle herhangi bir HTML ciktisi goruntulenmeden once istemciye gonderilmelidir.(Istemci tarafta ayni sekilde server istedigi zaman bu "cerez dosya" sini HTTP Header olarak gondermektedir.)
Istemci taraf hangi "cerez dosya"sinin hangi web sitesinden geldigini bilmektedir.Bu nedenle eger www.php.net sitesini goruntuluyorsaniz kullandiginiz browser www.turk-php.com sitesinden alinmis bir "cerez dosya" sini asla bu siteye gondermeyecektir.
PHP ve Cerez Dosyalari
PHP en gelismis scripting dillerinden birisidir.Bu nedenle cok guclu bir "cerez dosyasi" destegi ile beraber gelmektedir."Cerez Dosyasi" degiskenlerini yaratmak icin setcookie () fonksiyonu kullanilmaktadir.Bu fonksiyon ayni header() fonksiyonunda oldugu gibi kullanicinin bilgisyarinda herhangi bir HTML goruntulenmeden once kullanilmalidir.
setcookie () fonksiyonu nasil kullanilir?
Bu fonksiyon toplam alti tane parametre almaktadir.bunlarda yanlizca ilk ucu en onemli olanlaridir.
Not: UNIX Timestamp integer olarak 01/01/1970 gece yarisindan baslayan ve verilen zaman araligina kadar gecen zamanin saniye olarak sayilmasidir.O andaki gecerli zamani bu formatta gormek icin time () fonksiyonunu kullanabilirsiniz.Eger simdi bulundugumuz andan itibaren 1 saat icinde omru bitecek bir "cerez dosyasi" yaratmak istersek bunu en kisa sekilde time ()+3600 yazarak saglayabiliriz.
Diger uc parametre degeri genel olarak kullanilmamaktadir.Burada size bilgi olmasi acisindan aciklanmistir.
Tum bu bilgilerin isiginda bir ornek yapmak istersek,asagida yazacagimiz format genel olarak butun ihtiyaclariniza cevap verecek seviyededir.
setcookie ("fontozellikleri", "", time()+3600);
Yaratilan bu "cerez dosyasi" icinde saklanan verilere erismek,yukaridaki yaratma isleminde bile kolaydir.Cunku bu veriye ulasirken hic bir sey yapmaniza bile gerek YOKTUR.
Butun POST degiskenlerinde oldugu gibi yanlizca adini yazip kullanmaniz yeterlidir.PHP otomatik olarak global domaine ait "cerez" degiskenleri ile ilgili degerleri yerlestirmektedir.Ornek vermek gerekirse "cerez dosyasi" icinde "fontozellikleri" ismi ile saklanan degisken,scriptler icinde global degisken olarak $fontozellikleri ismi ile kullanilabilir olarak hazir olacaktir.
Cerez dosyasini nasil silerim?
"Cerez Dosya"sini silmek icin bir kac yol bulunmaktadir.Elbette istemci bilgisayari kontrol eden kisi nereye bakmasi gerektigini biliyorsa her zaman icin bu dosyalari duzenleyebilir veya silebilir.Buradaki teknikler server tarafindan bu "cerez dosya" larini nasil sileceginize iliskin bilgileri icermeketedir.
setcookie ("num", "0", time()-9999);
setcookie ("fontozellikleri");
bu durumda "cerez dosyasi" gecersiz kabul edilecek ve silinecektir.
Simdi ornek bir uygulama yapalim.
1.Text editorunuzu acin ve asagidaki kodlari yazin.
<?
//cerezdosyasi_test.php
//Once POST degiskenlerimizi kontrol ediyoruz.Buna bagli olarak cookie koyuyoruz.
if ($tip_secim) setcookie ("font[tip]", $tip_secim, time()+3600);
if ($boyut_secim) setcookie ("font[boyut]", $boyut_secim, time()+3600);
//Font tipi ve boyutu icin HTML formunda kullanilmak uzere iki dizi hazirliyorum.
$tipler = array ("arial","helvetica","sans-serif","courier");
$boyutlar = array ("1","2","3","4","5","6","7");
echo "<HTML><HEAD><TITLE>Cerez dosyalari icin ornek makale</TITLE></HEAD><BODY><DIV ALIGN='CENTER'>";
//Burada iki tane liste kutusu yaratiyoruz.Kullanici font ve boyutu buradan seciyor.
echo "<FORM METHOD=POST>";
echo "Hangi yazi fontunu kullanmak istersiniz? ";
echo "<SELECT NAME='tip_secim'>";
echo "<OPTION SELECTED VALUE=' ' >Ongorulen</OPTION>";
foreach ($tipler as $diziyilisteyekoy) echo "<OPTION>$diziyilisteyekoy</OPTION>";
echo "</SELECT><BR><BR>";
echo "Hangi yazi boyutunu kullanmak istersiniz? ";
echo "<SELECT NAME='boyut_secim'>";
echo "<SELECTED VALUE=' ' >Ongorulen</OPTION>";
foreach ($boyutlar as $diziyilisteyekoy) echo "<OPTION>$diziyilisteyekoy</OPTION>";
echo "</SELECT><BR><BR>";
echo "<INPUT TYPE=SUBMIT>";
echo "</FORM>";
//Son olarak sonuclari ekrana yaziyoruz.Buradan kullanici sakladigi degerleri gorebiliyor.
echo "Cerez dosyalariniz diyorki:<BR>";
echo "<FONT ";
if ($font[tip]) echo "FACE=$font[tip] ";
if ($font[boyut]) echo "SIZE=$font[boyut] ";
echo ">";
echo "$font[tip] = $font[tip]<BR>";
echo "$font[boyut] = $font[boyut]";
echo "</FONT><BR>";
echo "Form degiskenleriniz diyorki:<BR>";
echo "<FONT ";
if ($tip_secim) echo "FACE = $tip_secim";
if ($boyut_secim) echo "SIZE = $boyut_secim";
echo ">";
echo "$tip_secim = $tip_secim<BR>";
echo "$boyut_secim = $boyut_secim<BR>";
echo "</FONT>";
echo "</DIV></BODY></HTML>";
?>
2.Bu dosyayi "cerez.php" olarak kayit edin.
3.Browser ile sayfayi goruntuleyin.
Hiç yorum yok:
Yorum Gönder