global variable kullanımı (sayaç)
selamlar,
Tüm PHP sayfalarımında include ettiğim ana fonksiyon sayfam içerisinde "counter" diye bir değişken (veya session) oluşuturup, bunu tüm sayfalardan erişilip +1 arttırabilmek istiyorum.
Kısacası; ziyaretçi1 sitenin anasayfasına girdi; counter = 1 oldu;
ziyaretçi1 "hakkımızda" sayfasına girdi, counter = 2 oldu;
başka bir ziyaretçi3 giriş yaptığı zaman, counter = 3 olsun; tekrar 1'den başlamasın.
Session ile denediğim zaman, gizli sekmeden girdiğimde VEYA başka bir kullanıcı girdiğinde, sayaç hep default olarak sıfırlanıyor.
Ben kalıcı olarak sayacı hep en son sayısında tutup, oradan devam ettirmek istiyorum.
Bunu nasıl yapabilirim?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Merhaba, veritabanı kullanmadan yapmak istiyorsanız eğer counter.php dosyası oluşturup veriyi dosya içerisinde değişken oluşturup bu değişkeni siteye her girildiğinde güncelleyecek şekilde çalıştırabilirsiniz.
Örnek:
- 1.Adım: Değişkenimizi counter.php dosyasının içerisinde barındıracağımız için dosyayı oluşturmamız gerekiyor.
- 2.Adım: counter.php dosyasında oluşturduğumuz $counter değişkenini siteye her girişte +1 olarak güncellemek için dosya içeriğini güncellememiz gerekiyor.
counter.php
<?php
$counter = 0;
?>
Dosya içeriğini güncelleme
<?php
// $counter değişkenine erişebilmek için dosyayı sayfamıza dahil ediyoruz.
include "counter.php";
// $counter değişkenini +1 olarak güncellemek için dosya içeriğimizi çekiyoruz.
$fileContent = file_get_contents('counter.php');
// $counter değerini +1 arttırma
$newCounter = $counter + 1;
// Yeni $counter değerini dosya içeriğine yazdırma
$newFileContent = preg_replace('/\$counter\s*=\s*\d+/', '$counter = ' . $newCounter, $fileContent);
// Dosyamızı güncelliyoruz
file_put_contents("counter.php", $newFileContent);
?>
$counter değişkeninin güncellenmesini istediğin her sayfaya bu kodları fonksiyon haline getirip ekleyebilirsin. $counter değişkenine erişmek için counter.php dosyasını erişmek istediğin php dosyasına include edip kullanabilirsin.
Güncellenmiş counter.php dosyası
<?php
$counter = 1;
?>