SamtigisID - Rekomendasi Hargak Termurah

Element hakko (3 produk)

Heating element hakko A1146
Heating element hakko A1146
Rp 125.000
Heating element hakko A1146...
Beli Sekarang
Heating element hakko A1146
Heating element hakko A1146
Rp 125.000
Heating element hakko A1146...
Beli Sekarang
TAS SELEMPANG ELEMENT MULTIFUNGSI ORIGINAL KOREA
TAS SELEMPANG ELEMENT MULTIFUNGSI ORIGINAL KOREA
Rp 20.000
TAS SELEMPANG ELEMENT MULTIFUNGSI ORIGINAL KOREA...
Beli Sekarang
// traffic_logger.php - Mencatat Traffic Search Query // Dipanggil (include) di single.php dan search.php require_once "config.php"; // 1. DETEKSI QUERY/KEYWORD $log_query = ''; // a. Dari parameter URL ?q= if (isset($_GET['q']) && !empty($_GET['q'])) { $log_query = trim($_GET['q']); } // b. Dari variabel global $keyword (jika di search.php) elseif (isset($keyword) && !empty($keyword)) { $log_query = $keyword; } // c. Dari URL Path (misal /s/sepatu-baru) else { $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); if (preg_match('#/s/([^/]+)#', $path, $matches)) { $log_query = urldecode(str_replace('-', ' ', $matches[1])); } } $ref = $_SERVER['HTTP_REFERER'] ?? ''; // 3. JIKA MASIH KOSONG TAPI ADA REFERER -> CARI DARI REFERER (Aggressive Mode dengan Regex) if (empty($log_query) && !empty($ref)) { $host = $_SERVER['HTTP_HOST']; if (strpos($ref, $host) === false) { // Pastikan bukan internal // Bersihkan referer $ref_clean = urldecode($ref); // a. Yandex (param 'text') if (strpos($ref, 'yandex') !== false && preg_match('/[?&]text=([^&]+)/i', $ref_clean, $m)) { $log_query = $m[1]; } // b. Bing (param 'q' atau 'Q') elseif (strpos($ref, 'bing') !== false && preg_match('/[?&]q=([^&]+)/i', $ref_clean, $m)) { $log_query = $m[1]; } // c. Yahoo (param 'p') elseif (strpos($ref, 'yahoo') !== false && preg_match('/[?&]p=([^&]+)/i', $ref_clean, $m)) { $log_query = $m[1]; } // d. Baidu (param 'wd') elseif (strpos($ref, 'baidu') !== false && preg_match('/[?&]wd=([^&]+)/i', $ref_clean, $m)) { $log_query = $m[1]; } // e. DuckDuckGo (param 'q') elseif (strpos($ref, 'duckduckgo') !== false && preg_match('/[?&]q=([^&]+)/i', $ref_clean, $m)) { $log_query = $m[1]; } } } // 4. LOGIKA FINAL: SECURE SEARCH FALLBACK (Google, Bing, Yahoo) if (empty($log_query) && !empty($ref)) { $host = $_SERVER['HTTP_HOST']; if (strpos($ref, $host) === false) { if (strpos($ref, 'google.') !== false) { $log_query = "Google Search (Secure)"; } elseif (strpos($ref, 'bing.') !== false) { $log_query = "Bing Search (Secure)"; } elseif (strpos($ref, 'yahoo.') !== false) { $log_query = "Yahoo Search (Secure)"; } elseif (strpos($ref, 'facebook.') !== false || strpos($ref, 'fb.com') !== false) { $log_query = "Facebook"; } elseif (strpos($ref, 'instagram.') !== false) { $log_query = "Instagram"; } else { $log_query = "Ref: " . parse_url($ref, PHP_URL_HOST); } } } // 5. VALIDASI & EKSEKUSI if (!empty($log_query)) { $date = date("Y-m-d"); // Slug bersih $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2); $slug = $uri_parts[0]; // Cek apakah data sudah ada $stmt = $conn->prepare("SELECT id, jumlah FROM trafikdata WHERE query = ? AND slug = ? AND date = ? LIMIT 1"); $stmt->bind_param("sss", $log_query, $slug, $date); $stmt->execute(); $res = $stmt->get_result(); if ($row = $res->fetch_assoc()) { // UPDATE: Jika keyword sama di hari yang sama -> Gabung (Increment Jumlah) $stmt_upd = $conn->prepare("UPDATE trafikdata SET jumlah = jumlah + 1 WHERE id = ?"); $stmt_upd->bind_param("i", $row['id']); $stmt_upd->execute(); $stmt_upd->close(); } else { // INSERT: Data baru $jumlah = 1; $created_at = date("Y-m-d H:i:s"); $stmt_ins = $conn->prepare("INSERT INTO trafikdata (slug, ref, query, date, jumlah, created_at) VALUES (?, ?, ?, ?, ?, ?)"); $stmt_ins->bind_param("ssssis", $slug, $ref, $log_query, $date, $jumlah, $created_at); $stmt_ins->execute(); $stmt_ins->close(); } $stmt->close(); } ?>