setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $tables = $db_handle->query("SELECT name FROM sqlite_master WHERE type='table'")->fetch(PDO::FETCH_ASSOC); if (!in_array('counter', $tables, true)) { $db_handle->exec("CREATE TABLE `counter` ( ID INTEGER PRIMARY KEY, ua TEXT, ip TEXT, created_at DATE );"); } $anonymized_ip = sprintf('%s.0.0', implode('.', array_slice(explode('.', $_SERVER['REMOTE_ADDR']), 0, 2))); $parser = new UserAgentParser(); $ua = $parser->parse(); $insert_request = $db_handle->prepare('INSERT INTO `counter` ( ua, ip, created_at ) VALUES (:ua, :ip, :created_at)'); $query = $insert_request->execute([ 'ua' => sprintf('%s / %s / %s', $ua->platform(), $ua->browser(), $ua->browserVersion()), 'ip' => $anonymized_ip, 'created_at' => date('Y-m-d H:i:s'), ]); $count = $db_handle->query('SELECT count(*) as `count` from `counter`')->fetch(PDO::FETCH_ASSOC)['count']; include 'badge.php'; header('Content-Type: image/svg+xml'); header('Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private'); exit; } catch (Exception $e) { die('Erreur : '.$e->getMessage()); }