Reklam

Reklamlar

9 Haziran 2010 Çarşamba

PHP ile grafikli sayaç uygulaması

Bu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Yapmamız gereken şey genel anlamda şöyle olacaktır :

- Sayfamız ziyaretçiyi karşılar ve ona daha önce sayfamızı ziyaret ettiğine dair bir bilgi yani cookie gönderilip-gönderilmediğini kontrol eder.
- Eğer ziyaretçimiz daha önce de aynı sayfaya girmişse, zaten onda mevcut bulunan (daha önce kaç kez girdiğini gösteren) cookie değeri alınır ve bu değer 1 arttırarak tekrar ziyaretçimize yollanır.
- İlk defa giriyorsa değişkenin degeri NULL yani 0 atanacak, 1 artırılıp cookie olarak atılacaktır.
Böylece her girişinde değer bir artacağı için, onun sayfamızı kaç kez ziyaret ettiğini görmemiz mümkün oBu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.


Yapmamız gereken şey genel anlamda şöyle olacaktır :

- Sayfamız ziyaretçiyi karşılar ve ona daha önce sayfamızı ziyaret ettiğine dair bir bilgi yani cookie gönderilip-gönderilmediğini kontrol eder.
- Eğer ziyaretçimiz daha önce de aynı sayfaya girmişse, zaten onda mevcut bulunan (daha önce kaç kez girdiğini gösteren) cookie değeri alınır ve bu değer 1 arttırarak tekrar ziyaretçimize yollanır.
- İlk defa giriyorsa değişkenin degeri NULL yani 0 atanacak, 1 artırılıp cookie olarak atılacaktır.
Böylece her girişinde değer bir artacağı için, onun sayfamızı kaç kez ziyaret ettiğini görmemiz mümkün olacaktır.

Yukarıdaki yönergeleri izlediğimiz taktirde basit bir sayaç oluşturabiliriz. Tabi sayacı sadece cookie yöntemini kullanarak yapmak zorunda değiliz! Kullanıcı bilgilerini, oluşturduğumuz bir veritabanında depolayabileceğimiz gibi harici bir "txt" dosyasında da saklamamız mümkündür. Session fonksiyonlarını kullanarak da bir sayaç oluşturabiliriz. Ama en sağlık yöntem cookie kullanmaktır Eğer, bir çok yerde sayaç kullanacaksak; o zaman daha organize ve müdahaleye yönelik sayaçlar oluşturabilmek adına, biraz önce saydığım yöntemleri (veritabanı ve dosyalama yöntemlerini) kullanabiliriz.

Gelelim bizim hazırlayacağımız sayaca; biz de yukarıda sırladığımız yönergeleri izleyerek bir sayaç oluşturacağız. Fakat hazırlayacağımız sayaç basit olmayacak. Sayacımızı bu basitlikten kurtarmak için değerleri, bir "grafik (resim)" kullanarak yansıtacağız. Grafik sayaç oluşturma konusuna birazdan geçeceğiz, ama bundan önce bu grafikleri oluşturmamız ve isimlendirmemiz gerekiyor. Siz istediğiniz grafik biçimini kullanabilirsiniz. Fakat ziyaretçiye geri dönüşümü "sayılarla" sağlayacağımızı düşünürsek (ki bir sayaçtan bahsediyoruz), grafiği oluşturduğumuz resim(ler)in rakamlardan oluşması bizim için en mantıklı seçim olacaktır. Bu örnek için benim hazırladığım grafikler şu şekilde;






Göründüğü gibi her resim bir rakamı temsil ediyor. Rakamları temsil eden grafiklerimizi de hazırladıktan sonra artık kodlamaya geçebiliriz. Yapmamız gerekenleri kabaca sıralamıştık, bunun yanında yapacağımız tek işlem cookie den her defasında gelen rakamları okuyarak, bunların hazırladığımız grafiklerdeki karşılığını ekrana yazdırmak olacak. Örneğin ziyaretçimiz sitemizi daha önce "749" defa girmiş olsun. Biz bu ifadeyi karşılaştırma yapabilmek için "7", "4", "9" şeklinde ayırmamız gerekiyor. Parçalama fonksiyonu kulanarak bunu yapabiliriz.

Unutmadan grafiklerin adları ".gif" şeklinde, böylece kolayca istediğimiz rakamı basabileceğiz.

  1. $deger = 749;
  2.  
  3. // integer degiskeni stringe donusturelim
  4. settype( $deger, "string" );
  5.  
  6. // string parcalari
  7. print($deger[0]); // 7
  8. print($deger[1]); // 4
  9. print($deger[2]); // 9
  10.  
  11. $sayac = $_COOKIE["ziyaret"]; // cookie'den degerimizi aliyoruz.
  12.  
  13. // eger daha once hic girilmemis ise otomatik olarak $sayac NULL degeri alacaktir.
  14. $sayac++; // sayacimizi artirdik. (NULL ise 0'dır, 1 artar ve 1 olur sonucta)
  15.  
  16. // cookie olarak atalim.
  17. setcookie( "ziyaret" , $sayac , (time()+(365*24*60*60)) );

"(time()+365*24*60*60)" ifadesi, gönderdiğimiz cookienin 1 yıl süreyle saklanacağını belirtir.
Eğer $_COOKIE["ziyaret"] adında bir değişken zaten var ise, mevcut değeri daha önceki ziyaret sayısı olacaktır. Eğer yoksa değeri NULL olduğundan 1 artırıldığında son değer 1 olacaktır. $sayac değişkenini 1 artırıp tekrar cookie atarak sayacımızı güncellemiş olduk. sıra geldi ekrana yazdırma işinde.

  1. // integer degiskeni stringe donusturelim
  2. settype($sayac,"string");
  3.  
  4. // diziyi dönüyoruz
  5. for( $i=0 ; $i($sayac) ; $i++ ){
  6.   print '$i . '.gif"> ';
  7. }

Kodu toparlamak gerekirse;

  1.  
  2. // cookie'den degerimizi aliyoruz.
  3. $sayac = $_COOKIE["ziyaret"];
  4.  
  5. // eger daha once hic girilmemis ise otomatik olarak $sayac NULL degeri alacaktir.
  6. $sayac++;
  7. // sayacimizi artirdik. (NULL ise 0'dır, 1 artar ve 1 olur sonucta)
  8.  
  9. // cookie olarak atalim.
  10. setcookie( "ziyaret" , $sayac , (time()+(365*24*60*60)) );
  11.  
  12. // integer degiskeni stringe donusturelim
  13. settype($sayac,"string");
  14.  
  15. // oluşan diziyi dönüyoruz
  16. for( $i=0 ; $i($sayac) ; $i++ ){
  17.   // her karakteri sırayla yazdırıyoruz.
  18.   print '$sayac[$i] . '.gif"> ';
  19. }
  20.  
  21. ?>

Örnek çıktı :

lacaktır.

Yukarıdaki yönergeleri izlediğimiz taktirde basit bir sayaç oluşturabiliriz. Tabi sayacı sadece cookie yöntemini kullanarak yapmak zorunda değiliz! Kullanıcı bilgilerini, oluşturduğumuz bir veritabanında depolayabileceğimiz gibi harici bir "txt" dosyasında da saklamamız mümkündür. Session fonksiyonlarını kullanarak da bir sayaç oluşturabiliriz. Ama en sağlık yöntem cookie kullanmaktır Eğer, bir çok yerde sayaç kullanacaksak; o zaman daha organize ve müdahaleye yönelik sayaçlar oluşturabilmek adına, biraz önce saydığım yöntemleri (veritabanı ve dosyalama yöntemlerini) kullanabiliriz.

Gelelim bizim hazırlayacağımız sayaca; biz de yukarıda sırladığımız yönergeleri izleyerek bir sayaç oluşturacağız. Fakat hazırlayacağımız sayaç basit olmayacak. Sayacımızı bu basitlikten kurtarmak için değerleri, bir "grafik (resim)" kullanarak yansıtacağız. Grafik sayaç oluşturma konusuna birazdan geçeceğiz, ama bundan önce bu grafikleri oluşturmamız ve isimlendirmemiz gerekiyor. Siz istediğiniz grafik biçimini kullanabilirsiniz. Fakat ziyaretçiye geri dönüşümü "sayılarla" sağlayacağımızı düşünürsek (ki bir sayaçtan bahsediyoruz), grafiği oluşturduğumuz resim(ler)in rakamlardan oluşması bizim için en mantıklı seçim olacaktır. Bu örnek için benim hazırladığım grafikler şu şekilde;






Göründüğü gibi her resim bir rakamı temsil ediyor. Rakamları temsil eden grafiklerimizi de hazırladıktan sonra artık kodlamaya geçebiliriz. Yapmamız gerekenleri kabaca sıralamıştık, bunun yanında yapacağımız tek işlem cookie den her defasında gelen rakamları okuyarak, bunların hazırladığımız grafiklerdeki karşılığını ekrana yazdırmak olacak. Örneğin ziyaretçimiz sitemizi daha önce "749" defa girmiş olsun. Biz bu ifadeyi karşılaştırma yapabilmek için "7", "4", "9" şeklinde ayırmamız gerekiyor. Parçalama fonksiyonu kulanarak bunu yapabiliriz.

Unutmadan grafiklerin adları ".gif" şeklinde, böylece kolayca istediğimiz rakamı basabileceğiz.

  1. $deger = 749;
  2.  
  3. // integer degiskeni stringe donusturelim
  4. settype( $deger, "string" );
  5.  
  6. // string parcalari
  7. print($deger[0]); // 7
  8. print($deger[1]); // 4
  9. print($deger[2]); // 9
  10.  
  11. $sayac = $_COOKIE["ziyaret"]; // cookie'den degerimizi aliyoruz.
  12.  
  13. // eger daha once hic girilmemis ise otomatik olarak $sayac NULL degeri alacaktir.
  14. $sayac++; // sayacimizi artirdik. (NULL ise 0'dır, 1 artar ve 1 olur sonucta)
  15.  
  16. // cookie olarak atalim.
  17. setcookie( "ziyaret" , $sayac , (time()+(365*24*60*60)) );

"(time()+365*24*60*60)" ifadesi, gönderdiğimiz cookienin 1 yıl süreyle saklanacağını belirtir.
Eğer $_COOKIE["ziyaret"] adında bir değişken zaten var ise, mevcut değeri daha önceki ziyaret sayısı olacaktır. Eğer yoksa değeri NULL olduğundan 1 artırıldığında son değer 1 olacaktır. $sayac değişkenini 1 artırıp tekrar cookie atarak sayacımızı güncellemiş olduk. sıra geldi ekrana yazdırma işinde.

  1. // integer degiskeni stringe donusturelim
  2. settype($sayac,"string");
  3.  
  4. // diziyi dönüyoruz
  5. for( $i=0 ; $i($sayac) ; $i++ ){
  6.   print '$i . '.gif"> ';
  7. }

Kodu toparlamak gerekirse;

  1.  
  2. // cookie'den degerimizi aliyoruz.
  3. $sayac = $_COOKIE["ziyaret"];
  4.  
  5. // eger daha once hic girilmemis ise otomatik olarak $sayac NULL degeri alacaktir.
  6. $sayac++;
  7. // sayacimizi artirdik. (NULL ise 0'dır, 1 artar ve 1 olur sonucta)
  8.  
  9. // cookie olarak atalim.
  10. setcookie( "ziyaret" , $sayac , (time()+(365*24*60*60)) );
  11.  
  12. // integer degiskeni stringe donusturelim
  13. settype($sayac,"string");
  14.  
  15. // oluşan diziyi dönüyoruz
  16. for( $i=0 ; $i($sayac) ; $i++ ){
  17.   // her karakteri sırayla yazdırıyoruz.
  18.   print '$sayac[$i] . '.gif"> ';
  19. }
  20.  
  21. ?>

Örnek çıktı :

Dipnot
Bu yazı 9 Haziran 2010 Çarşamba günü yazılmıştır. Bulunduğu kategori : ,,,,. Yazdığım yazıları RSS 2.0 sistemini kullanarak takip edebilir, dilerseniz yorum yapabilirsiniz. Unutmadan, Bu yazı sizler tarafından tam tamına defa okunmuştur.

1 yorum:


  1. This is a amazing post. This article is good . For more detail in briefly click here

    HOW TO DEFINE DATA TYPE IN PHP

    YanıtlaSil

Sitemizi ziyaret ettiğiniz için teşekkür ederiz


Php Dersleri

ebook library