?
| Current Path : /home/webyoo/www/leumi/site/ |
| Current File : /home/webyoo/www/leumi/site/admin-visits.php |
<?php
include "start.php";
include "verif_session.php";
// ---- Acc猫s r茅serv茅 aux admins (emails autoris茅s) ----
$ADMINS = array('hmichael26@gmail.com', 'leumi67@gmail.com');
$meRow = mysqli_fetch_assoc(mysqli_query($link, "SELECT email, name FROM rent_users WHERE id = ".(int)$_SESSION['user']['id']));
$myEmail = $meRow ? strtolower(trim($meRow['email'])) : '';
if (!in_array($myEmail, array_map('strtolower', $ADMINS))) {
echo "<div style='font-family:Arial;direction:rtl;text-align:center;padding:60px;'>讗讬谉 诇讱 讛专砖讗讛 诇爪驻讜转 讘注诪讜讚 讝讛.</div>";
exit;
}
function scalarq($link, $sql) { $r = mysqli_query($link, $sql); $row = $r ? mysqli_fetch_row($r) : array(0); return $row[0]; }
$totalVisits = (int)scalarq($link, "SELECT COUNT(*) FROM rent_visits");
$todayVisits = (int)scalarq($link, "SELECT COUNT(*) FROM rent_visits WHERE DATE(created_at)=CURDATE()");
$uniqueTotal = (int)scalarq($link, "SELECT COUNT(DISTINCT ip) FROM rent_visits");
$uniqueToday = (int)scalarq($link, "SELECT COUNT(DISTINCT ip) FROM rent_visits WHERE DATE(created_at)=CURDATE()");
$visits7 = (int)scalarq($link, "SELECT COUNT(*) FROM rent_visits WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)");
// Visites par jour (30 derniers jours)
$days = array();
for ($i = 29; $i >= 0; $i--) { $days[date('Y-m-d', strtotime("-$i day"))] = 0; }
$rd = mysqli_query($link, "SELECT DATE(created_at) d, COUNT(*) c FROM rent_visits WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 29 DAY) GROUP BY DATE(created_at)");
while ($rd && ($x = mysqli_fetch_assoc($rd))) { if (isset($days[$x['d']])) { $days[$x['d']] = (int)$x['c']; } }
// R茅partition appareils
$devices = array();
$rdev = mysqli_query($link, "SELECT device, COUNT(*) c FROM rent_visits GROUP BY device");
while ($rdev && ($x = mysqli_fetch_assoc($rdev))) { $devices[$x['device'] ? $x['device'] : 'inconnu'] = (int)$x['c']; }
?>
<!doctype html>
<html lang="he" dir="rtl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>住讟讟讬住讟讬拽讜转 讘讬拽讜专讬诐 - 讗砖讻专讛</title>
<link rel="stylesheet" href="vendors/fontawesome-pro-5/css/all.css">
<link rel="stylesheet" href="css/themes.css">
<style>
body{background:#f5f7fb;font-family:Arial,sans-serif;padding:24px;direction:rtl;text-align:right;}
.stat-card{background:#fff;border-radius:12px;padding:18px;box-shadow:0 2px 10px rgba(0,0,0,.05);}
.stat-num{font-size:28px;font-weight:bold;color:#7a5cff;}
.stat-lbl{color:#666;font-size:14px;}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;}
th,td{padding:8px 10px;border-bottom:1px solid #eef1f6;font-size:13px;text-align:right;}
th{background:#f2f4f8;font-weight:bold;}
h3{margin:24px 0 10px;color:#333;}
.chip{display:inline-block;background:#eef1f6;border-radius:8px;padding:5px 10px;margin:0 3px 5px;font-size:13px;}
</style>
</head>
<body>
<h2 style="margin:0 0 6px;"><i class="fas fa-chart-line ml-2" style="color:#0ec6d5;"></i>住讟讟讬住讟讬拽讜转 讘讬拽讜专讬诐</h2>
<p class="text-muted">砖诇讜诐 <?php echo htmlspecialchars($meRow['name']); ?> 路 <a href="dashboard-home.php">讞讝专讛 诇讗讝讜专 讛讗讬砖讬</a></p>
<div class="row" style="margin:0 -8px;">
<?php
$cards = array(
array('住讛状讻 讘讬拽讜专讬诐', $totalVisits, 'fa-eye'),
array('讛讬讜诐', $todayVisits, 'fa-calendar-day'),
array('7 讬诪讬诐 讗讞专讜谞讬诐', $visits7, 'fa-calendar-week'),
array('诪讘拽专讬诐 讬讬讞讜讚讬讬诐 (住讛状讻)', $uniqueTotal, 'fa-users'),
array('讬讬讞讜讚讬讬诐 讛讬讜诐', $uniqueToday, 'fa-user-clock'),
);
foreach ($cards as $c) {
echo '<div class="col-md-4 col-lg" style="padding:8px;"><div class="stat-card"><div class="stat-lbl"><i class="fas '.$c[2].' ml-1"></i>'.$c[0].'</div><div class="stat-num">'.number_format($c[1]).'</div></div></div>';
}
?>
</div>
<h3>讘讬拽讜专讬诐 讘-30 讛讬诪讬诐 讛讗讞专讜谞讬诐</h3>
<div class="stat-card"><canvas id="visitsChart" height="90"></canvas></div>
<h3>诪讻砖讬专讬诐</h3>
<div>
<?php foreach ($devices as $d => $c): ?>
<span class="chip"><i class="fas <?php echo $d==='mobile'?'fa-mobile-alt':($d==='tablet'?'fa-tablet-alt':'fa-desktop'); ?> ml-1"></i><?php echo htmlspecialchars($d); ?> : <?php echo number_format($c); ?></span>
<?php endforeach; ?>
</div>
<div class="row" style="margin:0 -8px;">
<div class="col-lg-6" style="padding:8px;">
<h3>注诪讜讚讬诐 驻讜驻讜诇专讬讬诐</h3>
<table>
<thead><tr><th>注诪讜讚</th><th>讘讬拽讜专讬诐</th></tr></thead>
<tbody>
<?php
$rp = mysqli_query($link, "SELECT page, COUNT(*) c FROM rent_visits GROUP BY page ORDER BY c DESC LIMIT 12");
while ($rp && ($x = mysqli_fetch_assoc($rp))) {
echo '<tr><td>'.htmlspecialchars($x['page']).'</td><td>'.number_format($x['c']).'</td></tr>';
}
?>
</tbody>
</table>
</div>
<div class="col-lg-6" style="padding:8px;">
<h3>诪拽讜专讜转 讛讙注讛 (referer)</h3>
<table>
<thead><tr><th>诪拽讜专</th><th>讘讬拽讜专讬诐</th></tr></thead>
<tbody>
<?php
$rr = mysqli_query($link, "SELECT referer, COUNT(*) c FROM rent_visits WHERE referer <> '' GROUP BY referer ORDER BY c DESC LIMIT 12");
$anyRef = false;
while ($rr && ($x = mysqli_fetch_assoc($rr))) {
$anyRef = true;
echo '<tr><td style="word-break:break-all;">'.htmlspecialchars(substr($x['referer'],0,60)).'</td><td>'.number_format($x['c']).'</td></tr>';
}
if (!$anyRef) { echo '<tr><td colspan="2" style="color:#999;">讗讬谉 谞转讜谞讬诐 注讚讬讬谉</td></tr>'; }
?>
</tbody>
</table>
</div>
</div>
<h3>讘讬拽讜专讬诐 讗讞专讜谞讬诐</h3>
<div style="overflow-x:auto;">
<table>
<thead><tr><th>转讗专讬讱</th><th>注诪讜讚</th><th>驻专诪讟专讬诐</th><th>诪讻砖讬专</th><th>诪砖转诪砖</th><th>IP</th><th>诪拽讜专</th></tr></thead>
<tbody>
<?php
$rv = mysqli_query($link, "SELECT v.*, u.name uname FROM rent_visits v LEFT JOIN rent_users u ON v.id_user=u.id ORDER BY v.id DESC LIMIT 60");
while ($rv && ($x = mysqli_fetch_assoc($rv))) {
echo '<tr>';
echo '<td style="white-space:nowrap;">'.date('d/m H:i', strtotime($x['created_at'])).'</td>';
echo '<td>'.htmlspecialchars($x['page']).'</td>';
echo '<td style="max-width:180px;word-break:break-all;color:#888;">'.htmlspecialchars(urldecode($x['query'])).'</td>';
echo '<td>'.htmlspecialchars($x['device']).'</td>';
echo '<td>'.($x['uname'] ? htmlspecialchars($x['uname']) : '<span style="color:#bbb;">讗讜专讞</span>').'</td>';
echo '<td style="color:#888;">'.htmlspecialchars($x['ip']).'</td>';
echo '<td style="max-width:160px;word-break:break-all;color:#888;">'.htmlspecialchars(substr($x['referer'],0,40)).'</td>';
echo '</tr>';
}
?>
</tbody>
</table>
</div>
<script src="vendors/jquery.min.js"></script>
<script src="vendors/chartjs/Chart.min.js"></script>
<script>
var ctx = document.getElementById('visitsChart').getContext('2d');
new Chart(ctx, {
type: 'bar',
data: {
labels: <?php echo json_encode(array_map(function($d){ return date('d/m', strtotime($d)); }, array_keys($days))); ?>,
datasets: [{
label: '讘讬拽讜专讬诐',
data: <?php echo json_encode(array_values($days)); ?>,
backgroundColor: 'rgba(122,92,255,0.55)',
borderColor: '#7a5cff',
borderWidth: 1
}]
},
options: {
responsive: true,
legend: { display: false },
scales: { yAxes: [{ ticks: { beginAtZero: true, precision: 0 } }] }
}
});
</script>
</body>
</html>