// Read all fingerprint data $fingerprints = []; foreach ($files as $file) $content = file_get_contents($file); $data = json_decode($content, true); if ($data) $fingerprints[] = $data;
.btn.primary background: #667eea; color: white;
.spinner display: inline-block; width: 20px; height: 20px; border: 3px solid #e2e8f0; border-top-color: #667eea; border-radius: 50%; animation: spin 0.6s linear infinite;
echo json_encode([ 'export_date' => date('Y-m-d H:i:s'), 'total_fingerprints' => count($fingerprints), 'fingerprints' => $fingerprints ], JSON_PRETTY_PRINT); ?> * margin: 0; padding: 0; box-sizing: border-box; fingerprint sdk sample with php javascript download
const saveResult = await saveResponse.json();
foreach ($files as $file) $fileList[] = [ 'name' => basename($file), 'size' => filesize($file), 'date' => date('Y-m-d H:i:s', filemtime($file)) ];
// Capture fingerprint async function captureFingerprint() const resultDiv = document.getElementById('result'); resultDiv.innerHTML = '<div class="spinner"></div> Capturing fingerprint...'; resultDiv.classList.remove('hidden'); // Read all fingerprint data $fingerprints = [];
// Event Listeners document.getElementById('captureBtn').addEventListener('click', captureFingerprint); document.getElementById('downloadBtn').addEventListener('click', downloadAsJSON); document.getElementById('downloadCsvBtn').addEventListener('click', downloadAsCSV);
// Sort by timestamp usort($fingerprints, function($a, $b) return strtotime($b['timestamp']) - strtotime($a['timestamp']); );
.btn.primary:hover background: #5a67d8; transform: translateY(-2px); $data = json_decode($content
if (!$input || !isset($input['visitorId'])) echo json_encode(['success' => false, 'message' => 'Invalid fingerprint data']); exit;
.error color: #742a2a; background: #fed7d7; padding: 10px; border-radius: 5px;
?> <?php header('Access-Control-Allow-Origin: *'); $dataDir = DIR . '/fingerprints/';
.file-list list-style: none;
if (!file_exists($dataDir)) echo json_encode(['success' => true, 'files' => []]); exit;