v2.5.2
Giriş yap

PHP ile sayfa görüntülenmesi saydırma ve veri tabanına kaydetme

ilkertuncer
438 defa görüntülendi

Merhabalar. Bir sayfaya kaç kere girilmişse saydırmak ve veri tabanına yollamak istiyorum.
En basit yolla nasıl yapabilirim?

nyc
865 gün önce

Sana bir iki tane örnek yazıyım istediğini alıp kullanabilirsin
Txt Dosyası ile Sayaç Yapımı
Veritabanına gerek olmadan sadece sayac.txt belgesi oluşturarak yapabilirsin.

    <?php
	$sayac_degeri = file_get_contents('sayac.txt');
	$sayac_degeri = $sayac_degeri+1;
	file_put_contents('sayac.txt',$sayac_degeri);
	
	echo 'Site Goruntulenme Sayisi: '.$sayac_degeri;
?>

illa veritabanıyla yapmak istiyorum diyorsan cookie ile saydırabilirsin

<?php 
	/*Cookie ile PHP Sayaç Yapımı*/
	if (!$_COOKIE['makale__'.$makale['makale_id']]){
		query('UPDATE makaleler SET makale_hit = makale_hit + 1 WHERE makale_id = \''.$makale['makale_id'].'\''); /*makale_hit değerini 1 arttır*/
		setcookie('makale__'.$makale['makale_id'], '_', time()+86400);/*1gün boyunca çerez aktif olsun*/
	}

?>

İP Adresine göre sayaç yapabilirsin

<?php

function sayac(){  
    global $db;
  
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
  
    $kontrol = $db->prepare("SELECT * FROM counter");
            $kontrol->execute(array());
    $tablo_dolumu = $kontrol->rowCount();
  
    if (!$tablo_dolumu) {
      
        $query = $db->prepare("INSERT INTO counter SET
        counter_sayac = ?");
        $insert = $query->execute(array(
         "0"
        ));
              
    }
  
    $sql = $db->prepare("SELECT * FROM counter_ip");
            $sql->execute(array());
            $row=$sql->fetch(PDO::FETCH_ASSOC);
          
          
    if ($row['counterip_ip'] != $ip) {
      
        $query = $db->prepare("INSERT INTO counter_ip SET
        counterip_ip = ?");
        $insert = $query->execute(array(
             $ip
        ));
      
        $sql = $db->prepare("SELECT * FROM counter WHERE counter_id =?");
            $sql->execute(array('1'));
 
            $row=$sql->fetch(PDO::FETCH_ASSOC);
            $artir = $row['counter_sayac']+1;
          
          
            $guncelle = $db->prepare("UPDATE counter SET counter_sayac=? WHERE counter_id = ?");
            $guncelle->execute(array(
            $artir,'1'));
          
    } else {
        $sql = $db->prepare("SELECT * FROM counter WHERE counter_id= ?");
        $sql->execute(array(
            '1'
        ));

        $row=$sql->fetch(PDO::FETCH_ASSOC);
        echo $row['counter_sayac'];
    }
}

?>
<?php sayac(); ?>