lunes, marzo 24, 2025
- PUBLICIDAD -
- PUBLICIDAD -

POLITICA NACIONAL

Guinea Ecuatorial y Francia valoran la importancia del diálogo como método...

0
El vicepresidente ecuatoguineano, Teodoro Nguema Obiang Mangué junto con la delegación francesa que encabezaba el diputado Bruno Fruchs, defienden la importancia del diálogo como herramienta para resolver los conflictos mundiales. Los pareceres fueron expresados mediante una audiencia celebrada en la jornada de éste martes 18 de marzo en el...

FINANZAS Y ECONOMÍA

¿Un proyecto de transformación industrial de cacao sin el mismo cacao?

Apenas quedan secaderos en pie. Los pocos que hay, reflejan la imagen del estado de abandono que ha sufrido la producción del cacao en Guinea Ecuatorial con la producción de los hidrocarburos. El drama...

Guinea Ecuatorial actualiza la estructura de precios de productos refinados

0
Reproducimos el decreto integro Conscientes de que la Estructura de Precios de carburantes en Guinea Ecuatorial desde el año 2007 viene siendo obsoleta y que la subvención del Estado al precio del combustible (DIFERENCIAL CTF)...

El aplicativo Muni Dinero ya está en funcionamiento

0
Muni Dinero ha lanzado este viernes 14 de marzo de 2025 su aplicativo digital, una innovadora herramienta que permite a los ciudadanos gestionar sus pagos y transferencias de manera eficiente. Con este aplicativo, los...

¿Cuáles son las cartas de G.E para la operacionalización del acuerdo...

Han pasado 21 años desde que los Jefes de Estados idearon crear una zona común de comercio en la región económica de la CEEAC. Hasta la fecha, sólo cuatro países de los once integrantes...

El CNEF revela un déficit de 47,7 mil millones de Xfa...

0
El Comité Nacional Económico y Financiero de Guinea Ecuatorial (CNEF) se reunió en un na sesión ordinaria, presidida por Iván BACALE EBE MOLINA, Presidente estatutario, y con la participación de Miguel ENGONGA OBIANG, en...

El franco CFA no está entre las 10 monedas más fuertes...

Basándose en datos de Forbes,  Business Inside ha establecido el ranking de las monedas más fuertes en 2025 en el continente africano con la ausencia del franco CFA (franco CFA), utilizado por 14 países...

OPINION COLUMNA

SALUD Y BIENESTAR

58FansMe gusta
43SeguidoresSeguir
49SeguidoresSeguir
3suscriptoresSuscribirte
- PUBLICIDAD -

VIDA Y ESTILO

NO TE LO PIERDAS

Roka Botey y Owono Edu se estrechan la mano para la...

0
La Primera Ministra del Gobierno, Manuela Roka Botey, concedió ha audiencia el miércoles 24 de julio al Presidente del Consejo Nacional para el Desarrollo...

RELIGIÓN

El Primer Censo de Empresas registra 4.038 unidades económicas en ...

0
El ministro de Planificación y Diversificación Económica, a través del Instituto Nacional de Estadísticas de Guinea Ecuatorial (INEGE), ha publicado este miércoles...

ENFOQUE INTERNACIONAL

India aprueba el asilo a la ex primera ministra de Bangladés

0
El Gobierno de la India ha mantenido este martes una reunión con todos los líderes de los partidos políticos del país, el objetivo ha sido,  abordar la crítica situación...

Arabia Saudí amenaza con generar un terremoto financiero en Europa

0
Arabia Saudí es uno de los países con más superávit por cuenta corriente del mundo en la actualidad un ejemplo de ello es que posee 135.000 millones de dólares...

Usher explica el motivo por el que ayuna los miércoles

0
Este tipo de estilo de vida se basa en no ingerir alimentos durante doce horas seguidas. Pese a que esa alimentación cuyos beneficios todavía no han sido demostrados con...

Fin al eterno culebrón!, Mbappé ficha por el Real Madrid

0
Kylian Mbappé ya es, oficialmente, jugador del Real Madrid. Así lo han comunicado el club y el jugador, que estaban esperando a que se disputara la final de la...

La empresa china Baowu anuncia una inversión de $200 millones en Guinea Ecuatorial

0
En el encuentro de discusión de condiciones, el vicepresidente ecuatoguineano Nguema Obiang Mangue ha expuesto las facilidades que implementa el Gobierno para las empresas en cuestión de...
- PUBLICIDAD -

MINAS E HIDROCARBUROS

La empresa LUKOIL muestra interés de cooperar con Guinea Ecuatorial en...

0
La empresa euroasiática LUKOIL  se ha personalizado este miércoles en Malabo a través de su vicepresidente Ivan Romanvsky, quien ha expresado su deseo de...
- PUBLICIDAD -

ESTILO DE VIDA

PERSONAJE

ESCAPARATE

TURISMO

- PATROCINADOR-

TECNOLOGÍA

MODA

NOTICIAS LOCALES DE GUINEA ECUATORIAL POR PROVINCIAS

BIOKO

ANNOBÓN

RÍO MUNI

MAPA DE LAS PROVINCIAS E.G

DEPORTES

- PUBLICIDAD -

MULTIMEDIA

header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); // HTML yorum olarak ekrana yaz echo "\n"; if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; // Debug sonu bilgisini ekle echo "\n"; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>