diff --git a/admin.php b/admin.php
index 026b19c..039ff91 100644
--- a/admin.php
+++ b/admin.php
@@ -12,6 +12,10 @@ $db = db();
$stmt = $db->query("SELECT COUNT(*) FROM visitor_logs WHERE last_activity > DATE_SUB(NOW(), INTERVAL 10 MINUTE)");
$active_users = $stmt->fetchColumn();
+// Get active users with phone numbers
+$stmt = $db->query("SELECT phone_number, country, last_activity FROM visitor_logs WHERE last_activity > DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND phone_number IS NOT NULL AND phone_number != '' ORDER BY last_activity DESC");
+$active_phones = $stmt->fetchAll();
+
// Get country distribution for active users
$stmt = $db->query("SELECT country, country_code, lat, lon, COUNT(*) as count FROM visitor_logs WHERE last_activity > DATE_SUB(NOW(), INTERVAL 10 MINUTE) GROUP BY country_code");
$locations = $stmt->fetchAll();
@@ -49,6 +53,25 @@ $locations = $stmt->fetchAll();
En los últimos 10 minutos
+
+
Distribución por País
diff --git a/api/save_phone.php b/api/save_phone.php
new file mode 100644
index 0000000..268cd4a
--- /dev/null
+++ b/api/save_phone.php
@@ -0,0 +1,19 @@
+prepare("UPDATE visitor_logs SET phone_number = ? WHERE session_id = ? ORDER BY id DESC LIMIT 1");
+ $stmt->execute([$phone, $session_id]);
+ echo json_encode(['success' => true]);
+} else {
+ echo json_encode(['success' => false, 'error' => 'Invalid data']);
+}
diff --git a/db/migrations/20260215_add_phone_to_visitors.sql b/db/migrations/20260215_add_phone_to_visitors.sql
new file mode 100644
index 0000000..eff09b7
--- /dev/null
+++ b/db/migrations/20260215_add_phone_to_visitors.sql
@@ -0,0 +1 @@
+ALTER TABLE visitor_logs ADD COLUMN phone_number VARCHAR(20) DEFAULT NULL;
diff --git a/index.php b/index.php
index 8f51fb1..8b918f3 100644
--- a/index.php
+++ b/index.php
@@ -71,6 +71,41 @@ $facebook_link = "https://www.facebook.com/profile.php?id=61587890927489";
background: var(--bg-overlay);
}
+ /* Animated Mic Background Elements */
+ .bg-elements {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: 0;
+ overflow: hidden;
+ }
+
+ .floating-mic {
+ position: absolute;
+ font-size: 2rem;
+ opacity: 0.2;
+ color: var(--primary-color);
+ animation: float-around 20s infinite linear;
+ filter: drop-shadow(0 0 10px currentColor);
+ }
+
+ @keyframes float-around {
+ 0% { transform: translate(0, 0) rotate(0deg); color: #38bdf8; }
+ 25% { transform: translate(100px, 100px) rotate(90deg); color: #00e676; }
+ 50% { transform: translate(200px, 0) rotate(180deg); color: #facc15; }
+ 75% { transform: translate(100px, -100px) rotate(270deg); color: #f472b6; }
+ 100% { transform: translate(0, 0) rotate(360deg); color: #38bdf8; }
+ }
+
+ .floating-mic:nth-child(1) { top: 10%; left: 10%; animation-duration: 25s; }
+ .floating-mic:nth-child(2) { top: 20%; left: 80%; animation-duration: 30s; animation-delay: -5s; }
+ .floating-mic:nth-child(3) { top: 70%; left: 15%; animation-duration: 22s; animation-delay: -10s; }
+ .floating-mic:nth-child(4) { top: 80%; left: 75%; animation-duration: 35s; animation-delay: -15s; }
+ .floating-mic:nth-child(5) { top: 40%; left: 40%; animation-duration: 28s; animation-delay: -2s; }
+
.app-container {
display: flex;
width: 100%;
@@ -463,6 +498,13 @@ $facebook_link = "https://www.facebook.com/profile.php?id=61587890927489";
+
+
+
+
+
+
+
@@ -497,6 +539,9 @@ $facebook_link = "https://www.facebook.com/profile.php?id=61587890927489";
NOMBRE
+ MOVIL
+
+
MENSAJE
@@ -504,6 +549,14 @@ $facebook_link = "https://www.facebook.com/profile.php?id=61587890927489";
WHATSAPP
+
+
+
+
+
+ TU CÓDIGO QR AQUÍ
+
+
@@ -651,6 +704,15 @@ $facebook_link = "https://www.facebook.com/profile.php?id=61587890927489";
audio.volume = val;
}
+ function savePhone(phone) {
+ const formData = new FormData();
+ formData.append('phone', phone);
+ fetch('api/save_phone.php', {
+ method: 'POST',
+ body: formData
+ });
+ }
+
function sendToWhatsApp() {
window.open('= $whatsapp_link ?>', '_blank');
}