📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
blogscripti.demodesign.com.tr
/
admin
📝
analiz.php
← Geri Dön
<?php include('inc/head.php'); include('inc/header.php'); $sayfaslug = '1'; $sayfa = $db->prepare("SELECT * FROM sayfa WHERE id = :id"); $sayfa->execute(['id' => $sayfaslug]); $sayfa = $sayfa->fetch(PDO::FETCH_ASSOC); if ($kullanici['yetki'] == 0) : ?> <div class="container-xxl container-p-y"> <div class="misc-wrapper"> <h2 class="mb-1 mx-2">Yetkisiz erişim!</h2> <p class="mb-4 mx-2">Yetkiniz olmayan bir sayfaya girmeye çalışıyorsunuz. <br> Site yöneticisi ile iletişime geçin.</p> <a href="index" class="btn btn-primary mb-4">Anasayfa</a> <div class="mt-4"> <img src="assets/img/illustrations/page-misc-you-are-not-authorized.png" alt="page-misc-not-authorized" width="170" class="img-fluid"> </div> </div> </div> <?php else: function getTotalHits($db) { $stmt = $db->prepare("SELECT COUNT(*) AS total_hits FROM content_hits"); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result['total_hits']; } function getMonthlyHits($db) { $currentMonth = date('Y-m'); $stmt = $db->prepare("SELECT COUNT(*) AS monthly_hits FROM content_hits WHERE DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y-%m') = :currentMonth"); $stmt->bindParam(':currentMonth', $currentMonth); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result['monthly_hits']; } function getYearlyHits($db) { $currentYear = date('Y'); $stmt = $db->prepare("SELECT COUNT(*) AS yearly_hits FROM content_hits WHERE DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y') = :currentYear"); $stmt->bindParam(':currentYear', $currentYear); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result['yearly_hits']; } function getDailyHits($db) { $currentDate = date('Y-m-d'); $stmt = $db->prepare("SELECT COUNT(*) AS daily_hits FROM content_hits WHERE DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y-%m-%d') = :currentDate"); $stmt->bindParam(':currentDate', $currentDate); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result['daily_hits']; } function getThreeMonthsHits($db) { $threeMonthsAgo = date('Y-m-d', strtotime('-3 months')); $currentDate = date('Y-m-d'); $stmt = $db->prepare("SELECT COUNT(*) AS three_months_hits FROM content_hits WHERE DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y-%m-%d') BETWEEN :threeMonthsAgo AND :currentDate"); $stmt->bindParam(':threeMonthsAgo', $threeMonthsAgo); $stmt->bindParam(':currentDate', $currentDate); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return $result['three_months_hits']; } function getCountryHits($db) { $stmt = $db->prepare("SELECT visitor_country, COUNT(*) AS hits FROM content_hits GROUP BY visitor_country"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } function getCountryFlags($db) { $stmt = $db->prepare("SELECT country, flag_link FROM countries"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } function getHitsData($db) { $stmt = $db->prepare("SELECT * FROM content_hits"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } function getHitsDataWithTitles($db) { $stmt = $db->prepare("SELECT content_hits.*, blog.baslik FROM content_hits LEFT JOIN blog ON content_hits.content_id = blog.id"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } $countryFlags = getCountryFlags($db); // Add this line to get country flags $hitsData = getHitsData($db); $hitsDataWithTitles = getHitsDataWithTitles($db); $countryHits = array(); $labels = array(); foreach ($hitsData as $data) { $country = $data['visitor_country']; if (isset($countryHits[$country])) { $countryHits[$country]++; } else { $countryHits[$country] = 1; } } $hitsCount = array_values($countryHits); $labels = array_keys($countryHits); $hitsDataWithTitles = array_slice(getHitsDataWithTitles($db), -20); ?> <div class="container"> <!-- Sayfa içeriği başlangıcı --> <h1>Site İstatistikleri</h1> <div class="row"> <div class="col-md-6 mb-3"> <div class="card"> <div class="card-body"> <h5 class="card-title">Toplam Ziyaretçi Sayısı</h5> <p class="card-text"><?php echo getTotalHits($db); ?></p> </div> </div> </div> <div class="col-md-6 mb-3"> <div class="card"> <div class="card-body"> <h5 class="card-title">Aylık Ziyaretçi Sayısı</h5> <p class="card-text"><?php echo getMonthlyHits($db); ?></p> </div> </div> </div> <div class="col-md-6 mb-3"> <div class="card"> <div class="card-body"> <h5 class="card-title">Yıllık Ziyaretçi Sayısı</h5> <p class="card-text"><?php echo getYearlyHits($db); ?></p> </div> </div> </div> <div class="col-md-6 mb-3"> <div class="card"> <div class="card-body"> <h5 class="card-title">Günlük Ziyaretçi Sayısı</h5> <p class="card-text"><?php echo getDailyHits($db); ?></p> </div> </div> </div> </div> <div class="col-md-12 col-xl-12 mb-4"> <div class="row"> <div class="col-md-6"> <div class="card"> <div class="card-header"> Ziyaretçiler </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th>Ülke</th> <th>Ziyaret Sayısı</th> </tr> </thead> <tbody> <?php foreach ($countryHits as $countryName => $hitCount): ?> <tr> <td><?php echo $countryName; ?></td> <td><?php echo $hitCount; ?></td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </div> </div> <div class="col-md-6"> <div class="card"> <div class="card-header"> Ülkelere Göre Dağılım </div> <div class="card-body"> <canvas id="hitsChart"></canvas> </div> </div> </div> </div> </div> <h2>IP, Tarih ve Ülke Bilgileri</h2> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th>IP Adresi</th> <th>Tarih</th> <th>Ülke</th> <th>Başlık</th> </tr> </thead> <tbody> <?php foreach ($hitsDataWithTitles as $data): ?> <tr> <td><?php echo $data['visitor_ip']; ?></td> <td><?php echo date('Y-m-d H:i:s', $data['timestamp']); ?></td> <td><?php echo $data['visitor_country']; ?></td> <td><?php echo $data['baslik']; ?></td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> // Use Chart.js to create the bar chart var ctx = document.getElementById('hitsChart').getContext('2d'); var hitsChart = new Chart(ctx, { type: 'bar', data: { labels: <?php echo json_encode($labels); ?>, datasets: [{ label: 'Hits', data: <?php echo json_encode($hitsCount); ?>, backgroundColor: 'rgba(75, 192, 192, 0.6)', borderColor: 'rgba(75, 192, 192, 1)', borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); </script> <?php endif; ?> <?php include('inc/footer.php'); ?>
💾 Kaydet
İptal
📝 Yeniden Adlandır
İptal
Kaydet
🔐 Dosya İzinleri (chmod)
İzin Değeri:
Hızlı Seçim:
777
755
644
600
777
= Herkes okur/yazar/çalıştırır
755
= Sahip tam, diğerleri okur/çalıştırır
644
= Sahip okur/yazar, diğerleri okur
600
= Sadece sahip okur/yazar
İptal
Uygula