<?php
require_once __DIR__ . '/config.php';

function getCounterHtml() {
    static $html = null;
    if ($html !== null) return $html; // se chiami 2 volte nella stessa pagina, non riconta

    try {
        $pdo = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=utf8mb4", DB_USER, DB_PASS, [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        ]);

        $ip = $_SERVER['HTTP_CF_CONNECTING_IP'] 
              ?? trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'] ?? '')[0]) 
              ?? $_SERVER['REMOTE_ADDR'] 
              ?? '0.0.0.0';

        $hash = hash('sha256', $ip . IP_SALT);
        $today = date('Y-m-d');

        $stmt = $pdo->prepare("INSERT IGNORE INTO counter_log (ip_hash, visit_date) VALUES (?,?)");
        $stmt->execute([$hash, $today]);

        if ($stmt->rowCount() === 1) {
            $pdo->exec("UPDATE counter SET visits = visits + 1 WHERE id = 1");
        }

        $count = (int)$pdo->query("SELECT visits FROM counter WHERE id=1")->fetchColumn();

    } catch (Exception $e) {
        error_log("Counter error: ".$e->getMessage());
        $count = 0;
    }

    // crea HTML con immagini
    $display = (string)$count;
    for ($i = 0; $i <= 9; $i++) {
        $display = str_replace((string)$i, "<img src=\"/images/counter/$i.gif\" alt=\"$i\">", $display);
    }

    $html = $display;
    return $html;
}

function theCounter() {
    echo getCounterHtml();
}
?>
