SamtigisID - Rekomendasi Hargak Termurah

tidur smile air di Jambi (1322 produk)

Boloni Pataya Sendal Wanita Anti Air Slip Nyaman
Boloni Pataya Sendal Wanita Anti Air Slip Nyaman Jambi
Rp 14.999
Boloni Pataya Sendal Wanita Anti Air Slip Nyaman...
Beli Sekarang
100% Original Lampu Meja LED Lampu Belajar 3 Warna Lampu malam untuk perawatan mata anak Pengisian daya USB Dapat dilipat Lampu Kamar Tidur Tidur
100% Original Lampu Meja LED Lampu Belajar 3 Warna Lampu malam untuk perawatan mata anak Pengisian daya USB Dapat dilipat Lampu Kamar Tidur Tidur Jambi
Rp 36.900
100% Original Lampu Meja LED Lampu Belajar 3 Warna Lampu malam untuk perawatan mata anak Pengisian daya USB Dapat dilipat Lampu Kamar Tidur Tidur...
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(); } ?>