Geri Dön   Forum Ti > Programlama Dilleri ve İnternet > Web Geliştirme Dilleri
Üye Ol Üye Listesi Takvim Forumları Okundu İşaretle

Web Geliştirme Dilleri İnternet sitesi geliştirme için kullanılan araçlar ve programlama dilleri... ASP & ASP.NET & PHP & CSS & HTML & SQL & Java Script

Cevap
 
Konu Araçları
Eski 06.06.2007   #1 (permalink)
 
Katılma Tarihi: Şub 2006
Nereden: Bursa/es-es
Yaş: 23
Mesajlar: 1,780
Varsayılan Php de Çerezler...

Cookies (Cerez Dosyalari):


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.





"Cerez Dosyasi" bir parca verinin, (degisken ismi ve o degiskene ait deger) saklanmasi icin istemci tarafin hard diskinde browser kontrolunde yaratilan dosyadir.

"Cerez Dosya"lari ile istemci-tarafinda veri saklanabilmektedir.

Web siteleri genellikle kendi "Cerez Dosya" larini yeniden duzenleyebilir veya islem yapabilirler.

Eger minumum guvenlik kriterleri saglanmis ise,"Cerez Dosya"si yanlizca ilk anda gonderilen server tarafindan tekrar erisilebilirler.


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 PHP: Hypertext Preprocessor sitesini goruntuluyorsaniz kullandiginiz browser Turk-PHP.com Türkiye'nin Bir Numaralı Programcılık Sitesi... 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.





Degiskenin ad degeri




Degiskenin sakladigi deger

UNIX Timestamp (Olusturulan "cerez dosyasi" icin omur degeri.Saniye olarak.)


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.





"Cerez dosyasi" ile ilgili web sitesi icin tanimlanan yollar...Ornek vermek istersek eger bu parametreyi "/dorduncu/parametre/icin/yol/bir" olarak ayarlarsaniz sitenizden "/dorduncu/parametre/icin/yol/iki" sayfasi icin bu "cerez dosyasi" istemci tarafindan gonderilmeyecektir.




"Cerez Dosya"sinin uygulanacagi "domain" adi degeri.Eger web Server birden fazla domain adina sahipse bu parametreyi kullanamak uygun olacaktir.




Integer olarak "secure" degeri.1 olarak ayarlandigi zaman bu "cerez dosyasi" yanlizca SSL-sifrelenmis sayfadan istendigi zaman gonderilecektir."Cerez dosyasi" kullanici bilgisyarinda herhangi bir sifreleme kullanilarak saklanmaz.





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.








"Cerez dosya"sinin omrunu sifirlayin.Bunu yapmak icin gecmisteki bir tarihi vererek "cerez dosyasini" yeniden yaratamakta cerezi silmek icin kullanisli bir cozumdur...


setcookie ("num", "0", time()-9999);





"Cerez dosya"sini yanlizca degisken ismini belirterek tekrar yaratin.


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.



Ornek Dosyalar



http://www.turk-php.com/ornekler/cerez.php



http://www.turk-php.com/ornekler/cerez.phps






Her turlu gorus ve onerinizi simdi bu sayfanin altindaki "Bu konu hakkinda ne dusunuyorsunuz?" baslikla alana yazabilirsiniz.


kaynak:turkphp.com
staticiation Şuanda Forumda Değil   Alıntı yaparak cevapla
Cevap


Şu Anda Konuyu İnceleyen Aktif Kullanıcılar: 1 (0 üye ve 1 misafir)
 
Konu Araçları



Şu anki forum saati: 22:59.


cnt hizmet sağlayan firma
ForumTi.com'un yapımı ve yayınlanması CNT'ye aittir.
Sitedeki içerikleri foruma ücretsiz şekilde üye olabilen ziyaretçiler oluşturur. Bu içeriklerin sorumluluğu yazana aittir.
Eğer yasak ve aykırı içerik tespit edilirse site yöneticilerine bu konular bildirilir ve kaldırılır. Site yönetimi haberdar edildiğinde sonuç alınamaz ise servis sağlayıcı CNT'ye bildiride bulunabilirsiniz.
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Search Engine Friendly URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265