Php İle Sayaç – Ders 1

İnternet dünyasında artık merak ettiğimiz her konu hakında dersler, e-ktaplar bulmak mümkün. Çorbada benim de tuzum bulunsun diyerekten “php” programlama dilini kendi yöntemimle anlatmaya, öğretmeye çalışacağım. Benim yöntemimi açmak gerekirse tümdengelim metodu ile örnekler üzerinden anlatmayı kastediyorum. Bu bana göre php öğrenirken hem daha hızlı hem de daha pratiğe dönük hem de sıkıcı olmayan bir çözüm.


Genel Bilgi

İlk örneğimizde php ile sitemize basit bir sayaç yapacağız. Sayacımız şöyle çalışacak. Sitemizde bir metin dosyası (.txt) bulunacak ve içine bir başlangıç sayısı yazacağız. Bir kullanıcı sitemizi görüntülediği zaman dosyadan bu sayıyı okuyacağız. Bir artırdıktan sonra yeniden dosyaya yazacağız ve bu bir artırılmış halini ekrana yansıtacağız.

Bu örnekten çıkarılması gereken dersler dosyalara nasıl yazı yazılır, silinir, okunur, değiştirilir. Dosya kullanarak sayaçtan başka ziyaretçi defteri gibi bir betik de (script) yazılabilir. Önemli olan mantığı kavramanız.

Kod ve Açıklaması

Öncelikle aynı dizinde iki yeni dosya yaratıyoruz, say.txt ve sayac.php

say.txt -> Bu dosyanın içine 4 (herhangi bir sayı yazabilirsiniz) yazıp kaydedin ve dosyayı kapatın.

sayac.php -> Bu dosyamız bizim betiğimizi oluşturacak. İçine şu kodları ekleyin.

<?php
$dosya = "say.txt";

// Okuma safhası
$tut = fopen($dosya,"r");
$sayi = fread ($tut, filesize ($dosya));
echo "<center>Bu sayfa ".$sayi." kez görüntülenmiştir.</center>";
fclose($tut);

// Yazma safhası
$tut2 = fopen($dosya,"w") ;
$yenisayi = $sayi + 1;
$sonuc= fwrite ($tut2, $yenisayi);
fclose($tut2);

?>

Şimdi de satır satır açıklayalım.

1 ve 16 – Php kodumuzun başlangıcını ve bitişini belirtir.
2 - $dosya adında bir değişkene ( php’de değişkenlerin gösterimi örnek $dosya şeklindedir) dosyamızın adını, “say.txt” atıyoruz. Artık sayacımız hangi dosyadan okuyacağını biliyor.
4 ve 10 – Bu satırlar açıklayıcı bilgidir. Görüğünüz gibi çift taksim işaretinden ( // ) sonra gelen php satırı betik tarafından okunmaz. Ek bilgileri böyle ekleyebiliriz.
5 – Dosyamızı okumak için açıyoruz ve bu açılmış halini $tut değişkeninde muhafaza ediyoruz. fopen () komutu dosyayı açmak için kullanılır. Bu satırda $dosya değişkeni ile belirlediğimiz dosyayı “r” ile açtım. “r” (read) okumak için anlamına gelir. Bu şekilde açılmış bir dosyaya yazı yazılamaz. bkz. fopen ()
6 – Bu satırda dosyadaki sayımızı elde ediyoruz. Bu da şu şekilde oluyor. $tut değişkeninde bulunan açık haldeki dosyanın içinden dosyanın boyutu kadar ( filesize() ) yani tamamını okuyup bir yazı olarak (string) $sayi değişkenine atıyoruz (fread ()). Artık ziyaret sayımızı biliyoruz ($sayi değişkenindeki sayı)
7 – Ekrana bu $sayi değişkenindeki değeri yazdırıyoruz (ekrana yazma komutu echo)
8 – $tut ile belirtilen dosyayı kapatıyoruz. (fclose ())
11 – 5. satırdaki işlemin aynısı fakat bu sefer dosyayı “w” ile yani yazmak için (write) açıyoruz ve $tut2 değişkenine atıyoruz.
12 – Okuma safhasında 6. satırda, dosyanın içindeki değeri $sayi değişkenine atamıştık. Şimdi bu sayıyı bir artırarak $yenisayi değişkenine atıyoruz.
13 – $yenisayı değişkenini $tut2 ‘deki açık halde bulunan dosyaya fwrite () komutu ile yazıyoruz.
4 – $tut2 ile belirtilen dosyayı kapatıyoruz.

Sonuç

Özetlemek gerekirse say.txt dosyasını okumak için açtık, içindeki sayıyı okuduk, ekrana yazdık, dosyayı kapadık, dosyayı yazmak için açtık, yeni sayıyı dosyaya yazdık ve kapattık.

Bu makaleyi başlangıç seviyesinde yazmaya çalıştım. Ne kadar anlaşılabilir olduğumu lütfen yorumlarınızla belirtiniz. Bundan sonraki örneklerimde de ona göre bir dil kullanacağım.

Eğer php’yi öğrenmek istiyorsanız lütfen bu anlattıklarım lafta kalmasın, bir deneyin, biraz kurcalayın. Dosyaya sayı değil de isminizi yazın ve ekrana görüntüleyin. Ne de olsa amaç daha önce belirttiğim gibi mantığını anlamak…

Benzer Yazılar

yakuter

Erhan Yakut

www.yakuter.com

Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.

Bu Yazıya Ait Yorumlar

murat emirik

murat emirik
13 Haziran 2007

kardeş çok güzel anlatmışsın. denedim ama bunu sayfaya yani htmlde nasıl göstereceğimi bilemedim. yardımcı olursan sevinirim

yakuter

yakuter
16 Haziran 2007

html içinde değil, bunu php içine yazmalısın. Bir php dosyasına bu kodu olduğu gibi yazarak çıktısını görebilirsin. Dene-yanıl yöntemi en güzel öetoddur bu konuda ;)

Serdar Aydar

Serdar Aydar
17 Ekim 2007

evet, normalde sayaç local de çalışıyor. fakat internette yayınladığım zaman nedese yayınlanmıyor.
bu konuda yardımcı olan olursa sevinirim.
sanırım sorun bende, ama sorunun ne olduğunu anlamadım..

Serdar Aydar

Serdar Aydar
17 Ekim 2007

Pardon yayınlanmıyor dedim düzeltiyorum. yayınlanıyor, ama sayfayı yenile dediğim zaman sayı artmıyor. hatta farklı IP lerden de girdirttirdim. sayı artmıyor. sorun bu. yardımcı olursanız sevinirim..

ramazan yıldız

ramazan yıldız
12 Ocak 2008

arkadaşlar dosyalarınızı hosta attıgınızda chmod ayarlarınızı kontrol edin

sezgin bilketay

sezgin bilketay
14 Ocak 2008

Arkadaşımızın eline sağlık.Güzel bir döküman..Fakat bana göre eksik.Çünkü bu sayacı oluşturduğunuz sayfa size sağlıklı bir bilgi vermez.. Sayfayı “her yenilediğinizde” sayacın değeri 1 artacak.Yani ne olacak? Web sitemize gelen kullanıcı, sitemizdeki yenileme haraketinde (bu linke tıklamak olarak da değerlendirilebilir..) sayaç 1 artacağından dolayı, o ziyaretçiyi birden çok kez saymış olacağız.Oysaki bizim amacımız gelen ziyaretçiyi bir kez saymak ve mevcut oturumu sırasında bir daha sayılmasını engellemek. O yüzden ziyaretçimize bir cookie göndererek, aşağıdaki şekilde bir kod oluşturmamız en mantıklısı…

Murat USTAALIOGLU

Murat USTAALIOGLU
05 Şubat 2008

evet, normalde sayaç local de çalışıyor. fakat internette yayınladığım zaman nedese yayınlanmıyor.
bu konuda yardımcı olan olursa sevinirim.
sanırım sorun bende, ama sorunun ne olduğunu anlamadım..

—————————————————————————————

host aldigin serverin fopen fonksiyonu buyuk ihtimalle kapalidir o yuzden calismiyordur kardesim. fopen bir kac guvenlik nedeninden dolayi pek kullanilmayan bir kodlamadir…

lestioni

lestioni
07 Haziran 2008

sayacın artması için, dosyanın yazma yetkisi açık olması gerekir.. windows sunucuda salt okunur kalkmalı, *nix ise chmod 777 gibi olmalıdır.. sonrasını zaten kod yapıyor..

Cihan

Cihan
07 Eylül 2009

merhabalar anlatım için teşekkür ederim kafama birşey takıldı siteye aynı anda iki veya daha fazla kişi girerse bu sayaç başarıyla çalışırmı ?

ozanozatay

ozanozatay
04 Ocak 2010

php de veritabanına bağlanmadan ziyaretçi sayacı yaptık. sayısal değer .dat dosyasında tutuluyor.
ziyaretçi sayacı güzel bi şekilde çalışıyor fakat bi bakıyorum dat dosyasının içeriği kendiliğinden boşalıyor.her defasında rakam girmek zorunda kalıyorum. bu sorun neden kaynaklanmış olabilir. lütfen bi yardım edin.
php kodu aşağıdaki gibidir;

hunterboy1453

hunterboy1453
24 Şubat 2010

Murat kardeş sorunun cevabı
nerde görüntülenmesini istiyorsan oranın kod kısmına
include(“sayac.php”);
yazman yeterli olacaktır.
not: tabi bilgisayarında easy php gibi bir sunucu yazılımının bulunduğunu var sayarak bunu soyledim yoksa zaten çalışmaz…

omerler

omerler
30 Aralık 2010

arkadaşlar ben bi sayac yapmak istiyorum ama becereme dim yol gosteren varmı

Peki ya sizin düşünceleriniz?

Facebook Grubumuz Twitter Wordpress Linked in Google Friendfeed RSS Beslemesi Feedburner RSS

Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.

TAMindir.com - Yeni Programlar

World of Warcraft Duvar Kağıtları - Windows

World of Warcraft için Blizzard Entertainment tarafından hazırlanmış, sizin için seçtiğimiz duvar ka...

Autodelete - Windows

Seçtiğiniz klasörlerdeki eski dosyalarınızı kendi belirleyeceğiniz kurallar dahilinde silmenize yara...

uTorrent - Windows

Sistemi yormadan çalışan uTorrent 3 ile tüm torrent dosyalarını indirebilir ve yönetebilirsiniz....

PicPick - Windows

PicPick ekran görüntüsü yakalama, resim düzenleme, grafik çizim özelliklerini tek bir program ile si...

Online Armor Free - Windows

Ücretsiz kişisel güvenlik duvarı Online Armor spyware, hacker, keylogger ve virüslere karşı koruma s...

Abonelik

Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.

yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi).
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.