Mozilla Firefox tarayıcısı, sayfa yenilendiğinde "no-store" ve "no-cache" özellikleri ile HTTP Cache-Control başlığını gönderir. Bu nedenle, sadece sayfa ilk defa yüklendiğinde işlem yapmak istediğinizde, $_SERVER['HTTP_CACHE_CONTROL'] değişkenini kontrol etmeli ve "max-age=0" veya "no-cache" değerine eşit olup olmadığını kontrol etmelisiniz.

Ancak, bazı tarayıcılar sayfa yenilendiğinde bu değişkeni göndermeyebilir. Bu nedenle, alternatif bir yöntem de, sayfa yenilendiğinde çerezleri kontrol etmek olabilir. Aşağıda örnek bir PHP kodunu görebilirsiniz:

<?php
// Sayfa yenilendiğinde çerezleri kontrol et
if(isset($_COOKIE['pageRefreshed'])) {
echo 'Sayfa yenilendi.';
} else {
// İlk defa ziyaret edildi
echo 'İlk defa geldiği için işlem yap veri tabanına ekle ';
// Çerezi oluştur
setcookie('pageRefreshed', 1, time() + 3600);
}
?>

Bu kod, sayfa ilk defa yüklendiğinde çerez oluşturur ve sayfa yenilendiğinde çerezi kontrol eder. Bu yöntem, tüm tarayıcılar için çalışacaktır.

Ayrıca, Tarayıcı özelliklerine göre oluşan bu sorunları çözmek için JavaScript kodlarını kullanarak da çözümler bulunabilir. Örneğin, tarayıcının sayfa yenilendiğini algılamak için window.performance.navigation özellikleri kullanılabilir.



MySQL veritabanı ile bu PHP kodu kullanılabilir. Örneğin, "konu" adında bir tablo olsun ve "konu_id", "konu_baslik", "konu_okundu" gibi sütunlar olsun. İlk defa sayfaya girdiğinde, "konu_okundu" sütununun değeri 1 olarak güncellenebilir ve tekrar sayfaya girdiğinde veritabanına yeni bir kayıt eklenmeyecektir.

Aşağıda örnek bir MySQL sorgusu verilmiştir:

if($pageRefreshed == 0){
$sql = "UPDATE konu SET konu_okundu = 1 WHERE konu_id = '$konu_id'";
mysqli_query($link, $sql);
echo 'Sayfa yenilendi.';
}else{
echo 'İlk defa geldiği için işlem yap veri tabanına ekle ';
}

Bu kod bloğunda, sayfa yenilendiğinde veritabanındaki konunun okundu sayısını arttırırken, sayfa ilk defa açıldığında bir işlem yapmaz.

Ancak, dikkat etmeniz gereken bir nokta var ki oda, üstteki kod bloğunda MySQL sorgusu için gerekli olan mysqli bağlantısının açık olmasıdır. Ayrıca, konu_id değişkeninin tanımlanmış olduğundan emin olmanız gerekir.