• 26-09-2023, 23:54:06
    #1
    Üyeliği durduruldu
    merhabalar php ile tekil hit ve sayfa görüntülenmesi yapmaya çalıştım fakat sayfa görüntülenmesi her sayfayı yenilediğimde +1 artması gerekirken çift artıyor 2 4 6 diye kodumda sorun var mi?

    <?php
    
    date_default_timezone_set('Europe/Istanbul');
    
    include 'baglan.php';
    
    function ziyaretci($db) {
        $ip = gercekip();
    
        $query = $db->prepare("
            SELECT * FROM ziyaretciler
            WHERE ip = :ip
            AND YEAR(tarih) = :year
            AND MONTH(tarih) = :month
            AND DAY(tarih) = :day
        ");
    
        $query->execute([
            ':ip' => $ip,
            ':year' => date('Y'),
            ':month' => date('m'),
            ':day' => date('d')
        ]);
    
        $ziyaretciler = $query->fetch(PDO::FETCH_ASSOC);
    
        if ($ziyaretciler) {
            // BUGÜN BU İP DEN ZİYARETÇİ VARSA
            $query = $db->prepare("
                UPDATE ziyaretciler
                SET ziyaret = ziyaret + 1
                WHERE ip = :ip
                AND YEAR(tarih) = :year
                AND MONTH(tarih) = :month
                AND DAY(tarih) = :day
            ");
    
            $query->execute([
                ':ip' => $ip,
                ':year' => date('Y'),
                ':month' => date('m'),
                ':day' => date('d')
            ]);
        } else {
            $query = $db->prepare("
                INSERT INTO ziyaretciler (ip, ziyaret, tarih)
                VALUES (:ip, 1, :tarih)
            ");
    
            $query->execute([
                ':ip' => $ip,
                ':tarih' => date('Y-m-d')
            ]);
        }
    }
    
    function gercekip() {  
      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'];  
      } 
      return $ip;
    }
    
    ziyaretci($db);
    ?>
  • 26-09-2023, 23:55:40
    #2
    ziyaret + 1 - 1 yaparsan sorun çözülür bence
  • 26-09-2023, 23:58:22
    #3
    Localde çalışmıyorsanız web adresini iletebilir misiniz sayfanın
  • 27-09-2023, 00:25:53
    #4
    Üyeliği durduruldu
    Endrown adlı üyeden alıntı: mesajı görüntüle
    Localde çalışmıyorsanız web adresini iletebilir misiniz sayfanın
    arka planda baktım 1 kere istek gönderiyor hocam admin panel entegreli suan sadece anydeskden bakabilme şansınız varmı acaba
  • 27-09-2023, 00:28:26
    #5
    $ziyaret=$ziyaret+1;

    ziyaret=:ziyaret_deger

    'ziyaret_deger'=>$ziyaret

    Olarak denermisin
  • 27-09-2023, 00:30:07
    #6
    Üyeliği durduruldu
    netlook adlı üyeden alıntı: mesajı görüntüle
    $ziyaret=$ziyaret+1;

    ziyaret=:ziyaret_deger

    'ziyaret_deger'=>$ziyaret

    Olarak denermisin
    teşekkürler hocam fakat bu şekildede calismadi
  • 27-09-2023, 00:33:16
    #7
    selcukcbk adlı üyeden alıntı: mesajı görüntüle
    teşekkürler hocam fakat bu şekildede calismadi
    Ziyaret sayısını nerede çekiyorsunuz onu göremedim, $ziyaret değişkenine o veriyi çekerseniz sorun çözülür.
  • 27-09-2023, 00:35:58
    #8
    Üyeliği durduruldu
    netlook adlı üyeden alıntı: mesajı görüntüle
    Ziyaret sayısını nerede çekiyorsunuz onu göremedim, $ziyaret değişkenine o veriyi çekerseniz sorun çözülür.
    veritabanında her kişinin ipine göre sayfa yenilediğinde ziyaret kısmı +1 alıyor şuan veri geliyor sadece 1 fazla geliyor 1 2 3 4 diye gitmesi gerekirken 2 4 6 diye gidiyor
  • 27-09-2023, 00:51:43
    #9
    selcukcbk adlı üyeden alıntı: mesajı görüntüle
    veritabanında her kişinin ipine göre sayfa yenilediğinde ziyaret kısmı +1 alıyor şuan veri geliyor sadece 1 fazla geliyor 1 2 3 4 diye gitmesi gerekirken 2 4 6 diye gidiyor
    Anladım hocam , sorun bence ziyaret = ziyaret + 1 kısmında, o kismida diğer alanlarda gibi ziyaret=:ziyaret olarak yapın, alt kısımda da 'ziyaret'=>$ziyaretSonDeger şeklinde değeri gönderin, ziyaretSonDeger değişkeni veri tabanına gitmeden hesaplamanizi ekrana basın ve ne değer gönderdiğinize bakın birde o şekilde deneyin