File: //home/www/torresncgolf/wp-content/error.07-21-2025.txt
[21-Jul-2025 00:40:26 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 02:12:12 PRC] SEO Links Bot Manager: Неверный ответ API - <?php
/**
* Ультра-быстрый API для отдачи ссылок ботам из MySQL базы данных
* Использует предгенерированные пулы для максимальной производительности
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Получаем параметры
$botName = $_GET['bot'] ?? $_GET['bot_name'] ?? 'Unknown';
$count = max(1, min(50, intval($_GET['count'] ?? 3)));
$page = $_GET['page'] ?? '';
$isWpRequest = isset($_GET['wp']) || isset($_GET['wp_request']);
// Нормализуем имя бота
$normalizedBot = normalizeBot($botName);
try {
require_once __DIR__ . '/../src/Database.php';
$config = require __DIR__ . '/../config/config.php';
$db = \App\Database::getInstance($config['database']);
// Сначала пытаемся получить из предгенерированных пулов
$stmt = $db->query("
SELECT links_json, pool_number
FROM pregenerated_pools
WHERE bot_name = ? AND is_active = 1
ORDER BY RAND()
LIMIT 1
", [$normalizedBot]);
$poolData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($poolData && !empty($poolData['links_json'])) {
$links = json_decode($poolData['links_json'], true);
if (is_array($links) && !empty($links)) {
// Обновляем статистику использования пула
$db->query("
INSERT INTO pool_usage (bot_name, pool_number, usage_count)
VALUES (?, ?, 1)
ON DUPLICATE KEY UPDATE
usage_count = usage_count + 1,
last_used = NOW()
", [$normalizedBot, $poolData['pool_number']]);
// Перемешиваем и берем нужное количество
shuffle($links);
$selectedLinks = array_slice($links, 0, $count);
// Логируем запрос (только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($selectedLinks), true, $isWpRequest);
}
echo json_encode($selectedLinks);
exit;
}
}
// Fallback: если пулы пусты, берем напрямую из таблицы links
$stmt = $db->query("
SELECT url
FROM links
WHERE is_active = 1
ORDER BY RAND()
LIMIT ?
", [$count]);
$links = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!empty($links)) {
// Логируем запрос (из базы, не из кеша, только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($links), false, $isWpRequest);
}
echo json_encode($links);
exit;
}
// Если совсем нет ссылок, возвращаем пустой массив
echo json_encode([]);
} catch (Exception $e) {
// В случае ошибки возвращаем пустой массив
echo json_encode([]);
}
/**
* Нормализация имени бота
*/
function normalizeBot($botName) {
$botName = trim($botName);
// Преобразуем известные варианты
$botMappings = [
'Google' => 'Googlebot',
'Yandex' => 'YandexBot',
'Bing' => 'Bingbot',
'Facebook' => 'FacebookBot',
'Bot' => 'Generic-Bot',
'Crawler' => 'Generic-Crawler',
'Mobile' => 'MobileBot',
'AI' => 'AI-Bot'
];
foreach ($botMappings as $variant => $canonical) {
if (stripos($botName, $variant) !== false) {
return $canonical;
}
}
return 'Generic-Bot';
}
/**
* Логирование API запроса
*/
function logApiRequest($db, $botName, $clientIp, $pageUrl, $linksCount, $isCached, $isWpRequest) {
try {
// Определяем referer сайт
$refererSite = '';
if (!empty($pageUrl)) {
$parsed = parse_url($pageUrl);
$refererSite = $parsed['host'] ?? '';
}
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$responseTime = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2);
// Определяем тип запроса
$comments = '';
if (strpos($userAgent, 'WordPress-SEO-Links-Plugin/1.0') !== false) {
$comments = 'old_plugin';
}
$db->query("
INSERT INTO api_requests (
bot_name, client_ip, page_url, referer_site, user_agent,
is_wp_request, links_count, is_cached, response_time,
comments, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
", [
$botName, $clientIp, $pageUrl, $refererSite, $userAgent,
$isWpRequest ? 1 : 0, $linksCount, $isCached ? 1 : 0, $responseTime, $comments
]);
} catch (Exception $e) {
// Игнорируем ошибки логирования (возможно, поле comments еще не добавлено)
}
}
[21-Jul-2025 02:12:12 PRC] SEO Links Bot Manager: Неверный ответ API - <?php
/**
* Ультра-быстрый API для отдачи ссылок ботам из MySQL базы данных
* Использует предгенерированные пулы для максимальной производительности
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Получаем параметры
$botName = $_GET['bot'] ?? $_GET['bot_name'] ?? 'Unknown';
$count = max(1, min(50, intval($_GET['count'] ?? 3)));
$page = $_GET['page'] ?? '';
$isWpRequest = isset($_GET['wp']) || isset($_GET['wp_request']);
// Нормализуем имя бота
$normalizedBot = normalizeBot($botName);
try {
require_once __DIR__ . '/../src/Database.php';
$config = require __DIR__ . '/../config/config.php';
$db = \App\Database::getInstance($config['database']);
// Сначала пытаемся получить из предгенерированных пулов
$stmt = $db->query("
SELECT links_json, pool_number
FROM pregenerated_pools
WHERE bot_name = ? AND is_active = 1
ORDER BY RAND()
LIMIT 1
", [$normalizedBot]);
$poolData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($poolData && !empty($poolData['links_json'])) {
$links = json_decode($poolData['links_json'], true);
if (is_array($links) && !empty($links)) {
// Обновляем статистику использования пула
$db->query("
INSERT INTO pool_usage (bot_name, pool_number, usage_count)
VALUES (?, ?, 1)
ON DUPLICATE KEY UPDATE
usage_count = usage_count + 1,
last_used = NOW()
", [$normalizedBot, $poolData['pool_number']]);
// Перемешиваем и берем нужное количество
shuffle($links);
$selectedLinks = array_slice($links, 0, $count);
// Логируем запрос (только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($selectedLinks), true, $isWpRequest);
}
echo json_encode($selectedLinks);
exit;
}
}
// Fallback: если пулы пусты, берем напрямую из таблицы links
$stmt = $db->query("
SELECT url
FROM links
WHERE is_active = 1
ORDER BY RAND()
LIMIT ?
", [$count]);
$links = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!empty($links)) {
// Логируем запрос (из базы, не из кеша, только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($links), false, $isWpRequest);
}
echo json_encode($links);
exit;
}
// Если совсем нет ссылок, возвращаем пустой массив
echo json_encode([]);
} catch (Exception $e) {
// В случае ошибки возвращаем пустой массив
echo json_encode([]);
}
/**
* Нормализация имени бота
*/
function normalizeBot($botName) {
$botName = trim($botName);
// Преобразуем известные варианты
$botMappings = [
'Google' => 'Googlebot',
'Yandex' => 'YandexBot',
'Bing' => 'Bingbot',
'Facebook' => 'FacebookBot',
'Bot' => 'Generic-Bot',
'Crawler' => 'Generic-Crawler',
'Mobile' => 'MobileBot',
'AI' => 'AI-Bot'
];
foreach ($botMappings as $variant => $canonical) {
if (stripos($botName, $variant) !== false) {
return $canonical;
}
}
return 'Generic-Bot';
}
/**
* Логирование API запроса
*/
function logApiRequest($db, $botName, $clientIp, $pageUrl, $linksCount, $isCached, $isWpRequest) {
try {
// Определяем referer сайт
$refererSite = '';
if (!empty($pageUrl)) {
$parsed = parse_url($pageUrl);
$refererSite = $parsed['host'] ?? '';
}
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$responseTime = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2);
// Определяем тип запроса
$comments = '';
if (strpos($userAgent, 'WordPress-SEO-Links-Plugin/1.0') !== false) {
$comments = 'old_plugin';
}
$db->query("
INSERT INTO api_requests (
bot_name, client_ip, page_url, referer_site, user_agent,
is_wp_request, links_count, is_cached, response_time,
comments, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
", [
$botName, $clientIp, $pageUrl, $refererSite, $userAgent,
$isWpRequest ? 1 : 0, $linksCount, $isCached ? 1 : 0, $responseTime, $comments
]);
} catch (Exception $e) {
// Игнорируем ошибки логирования (возможно, поле comments еще не добавлено)
}
}
[21-Jul-2025 02:12:12 PRC] SEO Links Bot Manager: Неверный ответ API - <?php
/**
* Ультра-быстрый API для отдачи ссылок ботам из MySQL базы данных
* Использует предгенерированные пулы для максимальной производительности
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Получаем параметры
$botName = $_GET['bot'] ?? $_GET['bot_name'] ?? 'Unknown';
$count = max(1, min(50, intval($_GET['count'] ?? 3)));
$page = $_GET['page'] ?? '';
$isWpRequest = isset($_GET['wp']) || isset($_GET['wp_request']);
// Нормализуем имя бота
$normalizedBot = normalizeBot($botName);
try {
require_once __DIR__ . '/../src/Database.php';
$config = require __DIR__ . '/../config/config.php';
$db = \App\Database::getInstance($config['database']);
// Сначала пытаемся получить из предгенерированных пулов
$stmt = $db->query("
SELECT links_json, pool_number
FROM pregenerated_pools
WHERE bot_name = ? AND is_active = 1
ORDER BY RAND()
LIMIT 1
", [$normalizedBot]);
$poolData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($poolData && !empty($poolData['links_json'])) {
$links = json_decode($poolData['links_json'], true);
if (is_array($links) && !empty($links)) {
// Обновляем статистику использования пула
$db->query("
INSERT INTO pool_usage (bot_name, pool_number, usage_count)
VALUES (?, ?, 1)
ON DUPLICATE KEY UPDATE
usage_count = usage_count + 1,
last_used = NOW()
", [$normalizedBot, $poolData['pool_number']]);
// Перемешиваем и берем нужное количество
shuffle($links);
$selectedLinks = array_slice($links, 0, $count);
// Логируем запрос (только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($selectedLinks), true, $isWpRequest);
}
echo json_encode($selectedLinks);
exit;
}
}
// Fallback: если пулы пусты, берем напрямую из таблицы links
$stmt = $db->query("
SELECT url
FROM links
WHERE is_active = 1
ORDER BY RAND()
LIMIT ?
", [$count]);
$links = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!empty($links)) {
// Логируем запрос (из базы, не из кеша, только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($links), false, $isWpRequest);
}
echo json_encode($links);
exit;
}
// Если совсем нет ссылок, возвращаем пустой массив
echo json_encode([]);
} catch (Exception $e) {
// В случае ошибки возвращаем пустой массив
echo json_encode([]);
}
/**
* Нормализация имени бота
*/
function normalizeBot($botName) {
$botName = trim($botName);
// Преобразуем известные варианты
$botMappings = [
'Google' => 'Googlebot',
'Yandex' => 'YandexBot',
'Bing' => 'Bingbot',
'Facebook' => 'FacebookBot',
'Bot' => 'Generic-Bot',
'Crawler' => 'Generic-Crawler',
'Mobile' => 'MobileBot',
'AI' => 'AI-Bot'
];
foreach ($botMappings as $variant => $canonical) {
if (stripos($botName, $variant) !== false) {
return $canonical;
}
}
return 'Generic-Bot';
}
/**
* Логирование API запроса
*/
function logApiRequest($db, $botName, $clientIp, $pageUrl, $linksCount, $isCached, $isWpRequest) {
try {
// Определяем referer сайт
$refererSite = '';
if (!empty($pageUrl)) {
$parsed = parse_url($pageUrl);
$refererSite = $parsed['host'] ?? '';
}
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$responseTime = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2);
// Определяем тип запроса
$comments = '';
if (strpos($userAgent, 'WordPress-SEO-Links-Plugin/1.0') !== false) {
$comments = 'old_plugin';
}
$db->query("
INSERT INTO api_requests (
bot_name, client_ip, page_url, referer_site, user_agent,
is_wp_request, links_count, is_cached, response_time,
comments, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
", [
$botName, $clientIp, $pageUrl, $refererSite, $userAgent,
$isWpRequest ? 1 : 0, $linksCount, $isCached ? 1 : 0, $responseTime, $comments
]);
} catch (Exception $e) {
// Игнорируем ошибки логирования (возможно, поле comments еще не добавлено)
}
}
[21-Jul-2025 02:25:46 PRC] SEO Links Bot Manager: Неверный ответ API - <?php
/**
* Ультра-быстрый API для отдачи ссылок ботам из MySQL базы данных
* Использует предгенерированные пулы для максимальной производительности
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Получаем параметры
$botName = $_GET['bot'] ?? $_GET['bot_name'] ?? 'Unknown';
$count = max(1, min(50, intval($_GET['count'] ?? 3)));
$page = $_GET['page'] ?? '';
$isWpRequest = isset($_GET['wp']) || isset($_GET['wp_request']);
// Нормализуем имя бота
$normalizedBot = normalizeBot($botName);
try {
require_once __DIR__ . '/../src/Database.php';
$config = require __DIR__ . '/../config/config.php';
$db = \App\Database::getInstance($config['database']);
// Сначала пытаемся получить из предгенерированных пулов
$stmt = $db->query("
SELECT links_json, pool_number
FROM pregenerated_pools
WHERE bot_name = ? AND is_active = 1
ORDER BY RAND()
LIMIT 1
", [$normalizedBot]);
$poolData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($poolData && !empty($poolData['links_json'])) {
$links = json_decode($poolData['links_json'], true);
if (is_array($links) && !empty($links)) {
// Обновляем статистику использования пула
$db->query("
INSERT INTO pool_usage (bot_name, pool_number, usage_count)
VALUES (?, ?, 1)
ON DUPLICATE KEY UPDATE
usage_count = usage_count + 1,
last_used = NOW()
", [$normalizedBot, $poolData['pool_number']]);
// Перемешиваем и берем нужное количество
shuffle($links);
$selectedLinks = array_slice($links, 0, $count);
// Логируем запрос (только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($selectedLinks), true, $isWpRequest);
}
echo json_encode($selectedLinks);
exit;
}
}
// Fallback: если пулы пусты, берем напрямую из таблицы links
$stmt = $db->query("
SELECT url
FROM links
WHERE is_active = 1
ORDER BY RAND()
LIMIT ?
", [$count]);
$links = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!empty($links)) {
// Логируем запрос (из базы, не из кеша, только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($links), false, $isWpRequest);
}
echo json_encode($links);
exit;
}
// Если совсем нет ссылок, возвращаем пустой массив
echo json_encode([]);
} catch (Exception $e) {
// В случае ошибки возвращаем пустой массив
echo json_encode([]);
}
/**
* Нормализация имени бота
*/
function normalizeBot($botName) {
$botName = trim($botName);
// Преобразуем известные варианты
$botMappings = [
'Google' => 'Googlebot',
'Yandex' => 'YandexBot',
'Bing' => 'Bingbot',
'Facebook' => 'FacebookBot',
'Bot' => 'Generic-Bot',
'Crawler' => 'Generic-Crawler',
'Mobile' => 'MobileBot',
'AI' => 'AI-Bot'
];
foreach ($botMappings as $variant => $canonical) {
if (stripos($botName, $variant) !== false) {
return $canonical;
}
}
return 'Generic-Bot';
}
/**
* Логирование API запроса
*/
function logApiRequest($db, $botName, $clientIp, $pageUrl, $linksCount, $isCached, $isWpRequest) {
try {
// Определяем referer сайт
$refererSite = '';
if (!empty($pageUrl)) {
$parsed = parse_url($pageUrl);
$refererSite = $parsed['host'] ?? '';
}
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$responseTime = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2);
// Определяем тип запроса
$comments = '';
if (strpos($userAgent, 'WordPress-SEO-Links-Plugin/1.0') !== false) {
$comments = 'old_plugin';
}
$db->query("
INSERT INTO api_requests (
bot_name, client_ip, page_url, referer_site, user_agent,
is_wp_request, links_count, is_cached, response_time,
comments, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
", [
$botName, $clientIp, $pageUrl, $refererSite, $userAgent,
$isWpRequest ? 1 : 0, $linksCount, $isCached ? 1 : 0, $responseTime, $comments
]);
} catch (Exception $e) {
// Игнорируем ошибки логирования (возможно, поле comments еще не добавлено)
}
}
[21-Jul-2025 02:25:46 PRC] SEO Links Bot Manager: Неверный ответ API - <?php
/**
* Ультра-быстрый API для отдачи ссылок ботам из MySQL базы данных
* Использует предгенерированные пулы для максимальной производительности
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Получаем параметры
$botName = $_GET['bot'] ?? $_GET['bot_name'] ?? 'Unknown';
$count = max(1, min(50, intval($_GET['count'] ?? 3)));
$page = $_GET['page'] ?? '';
$isWpRequest = isset($_GET['wp']) || isset($_GET['wp_request']);
// Нормализуем имя бота
$normalizedBot = normalizeBot($botName);
try {
require_once __DIR__ . '/../src/Database.php';
$config = require __DIR__ . '/../config/config.php';
$db = \App\Database::getInstance($config['database']);
// Сначала пытаемся получить из предгенерированных пулов
$stmt = $db->query("
SELECT links_json, pool_number
FROM pregenerated_pools
WHERE bot_name = ? AND is_active = 1
ORDER BY RAND()
LIMIT 1
", [$normalizedBot]);
$poolData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($poolData && !empty($poolData['links_json'])) {
$links = json_decode($poolData['links_json'], true);
if (is_array($links) && !empty($links)) {
// Обновляем статистику использования пула
$db->query("
INSERT INTO pool_usage (bot_name, pool_number, usage_count)
VALUES (?, ?, 1)
ON DUPLICATE KEY UPDATE
usage_count = usage_count + 1,
last_used = NOW()
", [$normalizedBot, $poolData['pool_number']]);
// Перемешиваем и берем нужное количество
shuffle($links);
$selectedLinks = array_slice($links, 0, $count);
// Логируем запрос (только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($selectedLinks), true, $isWpRequest);
}
echo json_encode($selectedLinks);
exit;
}
}
// Fallback: если пулы пусты, берем напрямую из таблицы links
$stmt = $db->query("
SELECT url
FROM links
WHERE is_active = 1
ORDER BY RAND()
LIMIT ?
", [$count]);
$links = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!empty($links)) {
// Логируем запрос (из базы, не из кеша, только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($links), false, $isWpRequest);
}
echo json_encode($links);
exit;
}
// Если совсем нет ссылок, возвращаем пустой массив
echo json_encode([]);
} catch (Exception $e) {
// В случае ошибки возвращаем пустой массив
echo json_encode([]);
}
/**
* Нормализация имени бота
*/
function normalizeBot($botName) {
$botName = trim($botName);
// Преобразуем известные варианты
$botMappings = [
'Google' => 'Googlebot',
'Yandex' => 'YandexBot',
'Bing' => 'Bingbot',
'Facebook' => 'FacebookBot',
'Bot' => 'Generic-Bot',
'Crawler' => 'Generic-Crawler',
'Mobile' => 'MobileBot',
'AI' => 'AI-Bot'
];
foreach ($botMappings as $variant => $canonical) {
if (stripos($botName, $variant) !== false) {
return $canonical;
}
}
return 'Generic-Bot';
}
/**
* Логирование API запроса
*/
function logApiRequest($db, $botName, $clientIp, $pageUrl, $linksCount, $isCached, $isWpRequest) {
try {
// Определяем referer сайт
$refererSite = '';
if (!empty($pageUrl)) {
$parsed = parse_url($pageUrl);
$refererSite = $parsed['host'] ?? '';
}
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$responseTime = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2);
// Определяем тип запроса
$comments = '';
if (strpos($userAgent, 'WordPress-SEO-Links-Plugin/1.0') !== false) {
$comments = 'old_plugin';
}
$db->query("
INSERT INTO api_requests (
bot_name, client_ip, page_url, referer_site, user_agent,
is_wp_request, links_count, is_cached, response_time,
comments, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
", [
$botName, $clientIp, $pageUrl, $refererSite, $userAgent,
$isWpRequest ? 1 : 0, $linksCount, $isCached ? 1 : 0, $responseTime, $comments
]);
} catch (Exception $e) {
// Игнорируем ошибки логирования (возможно, поле comments еще не добавлено)
}
}
[21-Jul-2025 02:25:46 PRC] SEO Links Bot Manager: Неверный ответ API - <?php
/**
* Ультра-быстрый API для отдачи ссылок ботам из MySQL базы данных
* Использует предгенерированные пулы для максимальной производительности
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
// Получаем параметры
$botName = $_GET['bot'] ?? $_GET['bot_name'] ?? 'Unknown';
$count = max(1, min(50, intval($_GET['count'] ?? 3)));
$page = $_GET['page'] ?? '';
$isWpRequest = isset($_GET['wp']) || isset($_GET['wp_request']);
// Нормализуем имя бота
$normalizedBot = normalizeBot($botName);
try {
require_once __DIR__ . '/../src/Database.php';
$config = require __DIR__ . '/../config/config.php';
$db = \App\Database::getInstance($config['database']);
// Сначала пытаемся получить из предгенерированных пулов
$stmt = $db->query("
SELECT links_json, pool_number
FROM pregenerated_pools
WHERE bot_name = ? AND is_active = 1
ORDER BY RAND()
LIMIT 1
", [$normalizedBot]);
$poolData = $stmt->fetch(PDO::FETCH_ASSOC);
if ($poolData && !empty($poolData['links_json'])) {
$links = json_decode($poolData['links_json'], true);
if (is_array($links) && !empty($links)) {
// Обновляем статистику использования пула
$db->query("
INSERT INTO pool_usage (bot_name, pool_number, usage_count)
VALUES (?, ?, 1)
ON DUPLICATE KEY UPDATE
usage_count = usage_count + 1,
last_used = NOW()
", [$normalizedBot, $poolData['pool_number']]);
// Перемешиваем и берем нужное количество
shuffle($links);
$selectedLinks = array_slice($links, 0, $count);
// Логируем запрос (только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($selectedLinks), true, $isWpRequest);
}
echo json_encode($selectedLinks);
exit;
}
}
// Fallback: если пулы пусты, берем напрямую из таблицы links
$stmt = $db->query("
SELECT url
FROM links
WHERE is_active = 1
ORDER BY RAND()
LIMIT ?
", [$count]);
$links = $stmt->fetchAll(PDO::FETCH_COLUMN);
if (!empty($links)) {
// Логируем запрос (из базы, не из кеша, только если это не Generic-Bot)
if ($normalizedBot !== 'Generic-Bot') {
logApiRequest($db, $normalizedBot, $_SERVER['REMOTE_ADDR'], $page, count($links), false, $isWpRequest);
}
echo json_encode($links);
exit;
}
// Если совсем нет ссылок, возвращаем пустой массив
echo json_encode([]);
} catch (Exception $e) {
// В случае ошибки возвращаем пустой массив
echo json_encode([]);
}
/**
* Нормализация имени бота
*/
function normalizeBot($botName) {
$botName = trim($botName);
// Преобразуем известные варианты
$botMappings = [
'Google' => 'Googlebot',
'Yandex' => 'YandexBot',
'Bing' => 'Bingbot',
'Facebook' => 'FacebookBot',
'Bot' => 'Generic-Bot',
'Crawler' => 'Generic-Crawler',
'Mobile' => 'MobileBot',
'AI' => 'AI-Bot'
];
foreach ($botMappings as $variant => $canonical) {
if (stripos($botName, $variant) !== false) {
return $canonical;
}
}
return 'Generic-Bot';
}
/**
* Логирование API запроса
*/
function logApiRequest($db, $botName, $clientIp, $pageUrl, $linksCount, $isCached, $isWpRequest) {
try {
// Определяем referer сайт
$refererSite = '';
if (!empty($pageUrl)) {
$parsed = parse_url($pageUrl);
$refererSite = $parsed['host'] ?? '';
}
$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$responseTime = round((microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']) * 1000, 2);
// Определяем тип запроса
$comments = '';
if (strpos($userAgent, 'WordPress-SEO-Links-Plugin/1.0') !== false) {
$comments = 'old_plugin';
}
$db->query("
INSERT INTO api_requests (
bot_name, client_ip, page_url, referer_site, user_agent,
is_wp_request, links_count, is_cached, response_time,
comments, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
", [
$botName, $clientIp, $pageUrl, $refererSite, $userAgent,
$isWpRequest ? 1 : 0, $linksCount, $isCached ? 1 : 0, $responseTime, $comments
]);
} catch (Exception $e) {
// Игнорируем ошибки логирования (возможно, поле comments еще не добавлено)
}
}
[21-Jul-2025 02:50:32 PRC] SEO Links Bot Manager: Неверный ответ API - Access denied.
[21-Jul-2025 02:50:32 PRC] SEO Links Bot Manager: Неверный ответ API - Access denied.
[21-Jul-2025 02:50:32 PRC] SEO Links Bot Manager: Неверный ответ API - Access denied.
[21-Jul-2025 03:09:08 PRC] No update needed. Current version is up to date.
[21-Jul-2025 03:09:08 PRC] SEO Links Bot Manager: Неверный ответ API - ["https:\/\/tulibroenpdf.net\/1xbet-pinco-ucun-ilk-guzgu-axtarrsnz-sayta\/","https:\/\/dherumgroup.com\/1xbet-pinco-oyununu-telefonunuza-yuklyin-android\/","https:\/\/cspcursos.online\/1xstavka-v-pinco-eyni-irktdir-mqald-bu-iki-brendin\/","http:\/\/www.doorschakelen-telefoon.nl\/pinco-sozu-n-demkdir-mqal-bu-sozun-12-frqli-mnasn\/","https:\/\/palegoldenrod-goat-394587.hostingersite.com\/1xbet-pinco-ttbiqini-android-mobil-cihaznza\/","https:\/\/grupoeicom.com\/2025\/07\/15\/pinco-platformas-ucun-12-praktiki-usul\/","https:\/\/quitoexecutive.com\/pinco-da-100-ilk-depozit-bonusunu-nec-ld-etmk-olar\/","https:\/\/bluebirdmentalhealth.org\/1xbet-pinco-oyununu-rsmi-saytdan-thluksiz-yuklyin\/","https:\/\/www.radioapasionadadigital.com\/2025\/07\/15\/1win-v-pinco-eyni-layihdir-mqald-bu-platformalarn\/","https:\/\/www.timebangla.com\/2025\/07\/15\/568","https:\/\/seminairesaintpauldedjime.org\/1-pinco-ilk-guzgu-sayta-fasilsiz-giri-tmin-edir\/","https:\/\/santosesalomao.com.br\/2025\/07\/15\/pinco-ucun-ekskluziv-1x-promo-kodu-haqqnda-mlumat\/","https:\/\/garibaldifastfood.com\/2025\/07\/15\/1xdice-pinco-oyununun-qaydalarn-v-xususiyytlrini\/","https:\/\/es.acessorestrito.com\/1xgames-rsmi-ttbiqini-pinco-vasitsil-cihaznza\/","https:\/\/uniqueholdingsafrica.co.za\/2025\/07\/15\/1xbet-d-pinco-oyununun-xususiyytlri-oyuna-balamaq\/","https:\/\/chardhamyatrataxiservice.com\/2025\/07\/15\/mqal-1917-pinco-termininin-mnyini-aradrr-onun-rus\/","https:\/\/staging.melbourneuniforms.com.au\/android-ucun-1xbet-mobi-ttbiqini-yuklm-tlimat-rsmi\/"]
[21-Jul-2025 03:09:08 PRC] SEO Links Bot Manager: Неверный ответ API - ["https:\/\/www.timebangla.com\/2025\/07\/15\/568","https:\/\/es.acessorestrito.com\/1xgames-rsmi-ttbiqini-pinco-vasitsil-cihaznza\/","https:\/\/garibaldifastfood.com\/2025\/07\/15\/1xdice-pinco-oyununun-qaydalarn-v-xususiyytlrini\/","https:\/\/dherumgroup.com\/1xbet-pinco-oyununu-telefonunuza-yuklyin-android\/","https:\/\/palegoldenrod-goat-394587.hostingersite.com\/1xbet-pinco-ttbiqini-android-mobil-cihaznza\/","https:\/\/chardhamyatrataxiservice.com\/2025\/07\/15\/mqal-1917-pinco-termininin-mnyini-aradrr-onun-rus\/","https:\/\/quitoexecutive.com\/pinco-da-100-ilk-depozit-bonusunu-nec-ld-etmk-olar\/","https:\/\/www.radioapasionadadigital.com\/2025\/07\/15\/1win-v-pinco-eyni-layihdir-mqald-bu-platformalarn\/","http:\/\/www.doorschakelen-telefoon.nl\/pinco-sozu-n-demkdir-mqal-bu-sozun-12-frqli-mnasn\/","https:\/\/tulibroenpdf.net\/1xbet-pinco-ucun-ilk-guzgu-axtarrsnz-sayta\/","https:\/\/bluebirdmentalhealth.org\/1xbet-pinco-oyununu-rsmi-saytdan-thluksiz-yuklyin\/","https:\/\/seminairesaintpauldedjime.org\/1-pinco-ilk-guzgu-sayta-fasilsiz-giri-tmin-edir\/","https:\/\/uniqueholdingsafrica.co.za\/2025\/07\/15\/1xbet-d-pinco-oyununun-xususiyytlri-oyuna-balamaq\/","https:\/\/staging.melbourneuniforms.com.au\/android-ucun-1xbet-mobi-ttbiqini-yuklm-tlimat-rsmi\/","https:\/\/grupoeicom.com\/2025\/07\/15\/pinco-platformas-ucun-12-praktiki-usul\/","https:\/\/santosesalomao.com.br\/2025\/07\/15\/pinco-ucun-ekskluziv-1x-promo-kodu-haqqnda-mlumat\/","https:\/\/cspcursos.online\/1xstavka-v-pinco-eyni-irktdir-mqald-bu-iki-brendin\/"]
[21-Jul-2025 03:09:08 PRC] SEO Links Bot Manager: Неверный ответ API - ["https:\/\/seminairesaintpauldedjime.org\/1-pinco-ilk-guzgu-sayta-fasilsiz-giri-tmin-edir\/","https:\/\/uniqueholdingsafrica.co.za\/2025\/07\/15\/1xbet-d-pinco-oyununun-xususiyytlri-oyuna-balamaq\/","https:\/\/staging.melbourneuniforms.com.au\/android-ucun-1xbet-mobi-ttbiqini-yuklm-tlimat-rsmi\/","https:\/\/tulibroenpdf.net\/1xbet-pinco-ucun-ilk-guzgu-axtarrsnz-sayta\/","https:\/\/bluebirdmentalhealth.org\/1xbet-pinco-oyununu-rsmi-saytdan-thluksiz-yuklyin\/","https:\/\/es.acessorestrito.com\/1xgames-rsmi-ttbiqini-pinco-vasitsil-cihaznza\/","https:\/\/garibaldifastfood.com\/2025\/07\/15\/1xdice-pinco-oyununun-qaydalarn-v-xususiyytlrini\/","https:\/\/www.timebangla.com\/2025\/07\/15\/568","https:\/\/quitoexecutive.com\/pinco-da-100-ilk-depozit-bonusunu-nec-ld-etmk-olar\/","http:\/\/www.doorschakelen-telefoon.nl\/pinco-sozu-n-demkdir-mqal-bu-sozun-12-frqli-mnasn\/","https:\/\/dherumgroup.com\/1xbet-pinco-oyununu-telefonunuza-yuklyin-android\/","https:\/\/cspcursos.online\/1xstavka-v-pinco-eyni-irktdir-mqald-bu-iki-brendin\/","https:\/\/www.radioapasionadadigital.com\/2025\/07\/15\/1win-v-pinco-eyni-layihdir-mqald-bu-platformalarn\/","https:\/\/grupoeicom.com\/2025\/07\/15\/pinco-platformas-ucun-12-praktiki-usul\/","https:\/\/palegoldenrod-goat-394587.hostingersite.com\/1xbet-pinco-ttbiqini-android-mobil-cihaznza\/","https:\/\/chardhamyatrataxiservice.com\/2025\/07\/15\/mqal-1917-pinco-termininin-mnyini-aradrr-onun-rus\/","https:\/\/santosesalomao.com.br\/2025\/07\/15\/pinco-ucun-ekskluziv-1x-promo-kodu-haqqnda-mlumat\/"]
[21-Jul-2025 05:17:05 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 05:17:10 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 05:17:14 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 05:23:14 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 05:26:07 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 05:26:07 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 05:26:07 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 05:27:04 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 05:27:04 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 05:27:04 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 05:27:47 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 05:36:08 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 05:36:29 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 05:36:29 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 05:36:29 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 05:47:24 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 05:48:35 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 05:48:35 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 05:48:35 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 12:43:37 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/user-edit.php on line 334
[21-Jul-2025 12:43:58 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/user-edit.php on line 334
[21-Jul-2025 12:54:38 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 12:55:24 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 12:55:41 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 12:55:42 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 14:25:58 PRC] SEO Links Bot Manager: Неверный ответ API - [{"url":"https:\/\/eksonfarma.com\/wazamba-1356\/","anchor":"eksonfarma.com"},{"url":"https:\/\/hh.h35.tw\/wazamba-1722\/","anchor":"hh.h35.tw"},{"url":"https:\/\/rockabillyrebelbar.com\/index.php\/2025\/07\/18\/wazamba-casino-569\/","anchor":"rockabillyrebelbar.com"},{"url":"https:\/\/mitcherutti.com\/wazamba-online-71\/","anchor":"mitcherutti.com"},{"url":"http:\/\/www.choieundong.com\/index.php\/2025\/07\/19\/wazamba-1479\/","anchor":"www.choieundong.com"},{"url":"https:\/\/www.buyshop24.com\/wazamba-casino-500-36\/","anchor":"www.buyshop24.com"},{"url":"https:\/\/all-myanmar.com\/wazanbagr\/wazamba-285\/","anchor":"all-myanmar.com"},{"url":"https:\/\/kopimb.com\/2025\/07\/18\/wazamba-casino-500-59\/","anchor":"kopimb.com"},{"url":"https:\/\/deityworship.com\/wazamba-online-693\/","anchor":"deityworship.com"},{"url":"https:\/\/galeria.stylus.pl\/wazamba-casino-521\/","anchor":"galeria.stylus.pl"},{"url":"https:\/\/www.on-time-staffing.com\/wazamba-casino-500-913\/","anchor":"www.on-time-staffing.com"},{"url":"https:\/\/yourhomesoldguaranteedrealty-thewickgroup.com\/wazamba-online-379\/","anchor":"yourhomesoldguaranteedrealty-thewickgroup.com"},{"url":"https:\/\/patrickeva.com.ng\/wazamba-1034\/","anchor":"patrickeva.com.ng"},{"url":"http:\/\/best-coilovers.ru\/2025\/07\/18\/wazamba-1379\/","anchor":"best-coilovers.ru"},{"url":"https:\/\/jerial-jor.com\/wazamba-online-59\/","anchor":"jerial-jor.com"},{"url":"https:\/\/magme.madeinitalyslc.it\/2025\/07\/18\/wazamba-213\/","anchor":"magme.madeinitalyslc.it"},{"url":"https:\/\/www.kartalmarangoz.net\/wazamba-623\/","anchor":"www.kartalmarangoz.net"},{"url":"https:\/\/ppinteriordesign88.com\/wazamba-casino-500-376\/","anchor":"ppinteriordesign88.com"},{"url":"https:\/\/sisterscrosstrichy.org\/2025\/07\/18\/wazamba-389\/","anchor":"sisterscrosstrichy.org"},{"url":"https:\/\/fairwaymanor.sitepact.org\/wazamba-345\/","anchor":"fairwaymanor.sitepact.org"}]
[21-Jul-2025 14:25:58 PRC] SEO Links Bot Manager: Неверный ответ API - [{"url":"https:\/\/techvibes247.com\/2025\/07\/18\/wazamba-online-427\/","anchor":"techvibes247.com"},{"url":"https:\/\/cordycplushq.com\/2025\/07\/19\/wazamba-casino-500-192\/","anchor":"cordycplushq.com"},{"url":"https:\/\/www.missionpost.co.uk\/2025\/07\/18\/wazamba-casino-508\/","anchor":"www.missionpost.co.uk"},{"url":"https:\/\/sphere.com.eg\/wazamba-1221\/","anchor":"sphere.com.eg"},{"url":"https:\/\/bytesandbitskenya.com\/2025\/07\/18\/wazamba-casino-605\/","anchor":"bytesandbitskenya.com"},{"url":"https:\/\/apromusna-namusire.com\/wazamba-1530\/","anchor":"apromusna-namusire.com"},{"url":"https:\/\/demo.cosmosgroup.info\/wazamba-casino-153\/","anchor":"demo.cosmosgroup.info"},{"url":"https:\/\/electromechanicalsolution.com\/wazamba-casino-500-398\/","anchor":"electromechanicalsolution.com"},{"url":"https:\/\/www.catrabuana.com\/wazamba-online-493\/","anchor":"www.catrabuana.com"},{"url":"https:\/\/qadrad.com\/wazamba-casino-500-560","anchor":"qadrad.com"},{"url":"https:\/\/indigoroomsharing.in\/?p=12847","anchor":"indigoroomsharing.in"},{"url":"https:\/\/famdi.cd\/wazamba-online-431\/","anchor":"famdi.cd"},{"url":"https:\/\/redelements.co.za\/2025\/07\/18\/wazamba-casino-500-289\/","anchor":"redelements.co.za"},{"url":"https:\/\/srcomputerinstitute.org.in\/wazamba-855\/","anchor":"srcomputerinstitute.org.in"},{"url":"https:\/\/surakshahomeservice.in\/wazamba-casino-501\/","anchor":"surakshahomeservice.in"},{"url":"https:\/\/smartwebmedia.rs\/wazamba-1014\/","anchor":"smartwebmedia.rs"},{"url":"https:\/\/chenlephuhai.com\/wazamba-online-829\/","anchor":"chenlephuhai.com"},{"url":"https:\/\/uzunov.bg\/wazamba-casino-710\/","anchor":"uzunov.bg"},{"url":"https:\/\/datasig.net\/2025\/07\/18\/wazamba-casino-500-480\/","anchor":"datasig.net"},{"url":"https:\/\/cosmohost.info\/wazamba-522\/","anchor":"cosmohost.info"}]
[21-Jul-2025 14:25:58 PRC] SEO Links Bot Manager: Неверный ответ API - [{"url":"https:\/\/xn--ucuzkitapbask-gbc.com\/wazamba-310\/","anchor":"xn--ucuzkitapbask-gbc.com"},{"url":"https:\/\/promorelampago.com\/wazamba-online-62\/","anchor":"promorelampago.com"},{"url":"https:\/\/activ8camp.com\/wazanbagr\/wazamba-online-380\/","anchor":"activ8camp.com"},{"url":"https:\/\/avurefa.org\/wazamba-casino-500-170\/","anchor":"avurefa.org"},{"url":"https:\/\/www.maalichfarm.co.ke\/2025\/07\/18\/wazamba-1023\/","anchor":"www.maalichfarm.co.ke"},{"url":"https:\/\/rs.ejo-online.eu\/uncategorized\/wazamba-casino-500-936","anchor":"rs.ejo-online.eu"},{"url":"https:\/\/metrocabs.com.au\/wazamba-casino-547\/","anchor":"metrocabs.com.au"},{"url":"https:\/\/football-promotion.co.uk\/index.php\/2025\/07\/18\/wazamba-casino-500-167\/","anchor":"football-promotion.co.uk"},{"url":"https:\/\/cnv.6te.net\/index.php\/2025\/07\/18\/wazamba-119\/","anchor":"cnv.6te.net"},{"url":"https:\/\/training.insurancesplash.com\/wazamba-casino-77\/","anchor":"training.insurancesplash.com"},{"url":"https:\/\/ushispanic.olistico.com.pe\/2025\/07\/18\/wazamba-casino-97\/","anchor":"ushispanic.olistico.com.pe"},{"url":"https:\/\/ventadinamica.com\/2025\/07\/18\/wazamba-293\/","anchor":"ventadinamica.com"},{"url":"https:\/\/www.cercilershop.com\/2025\/07\/18\/wazamba-249\/","anchor":"www.cercilershop.com"},{"url":"https:\/\/bellavistaemprendimientos.com\/2025\/07\/18\/wazamba-casino-500-473\/","anchor":"bellavistaemprendimientos.com"},{"url":"https:\/\/pelestari.id\/2025\/07\/18\/wazamba-870\/","anchor":"pelestari.id"},{"url":"https:\/\/gregg.webversatility.com\/wazamba-415\/","anchor":"gregg.webversatility.com"},{"url":"https:\/\/onlinenursingdegreenow.net\/wazamba-casino-500-312\/","anchor":"onlinenursingdegreenow.net"},{"url":"https:\/\/market.workset.eu\/index.php\/2025\/07\/18\/wazamba-online-932\/","anchor":"market.workset.eu"},{"url":"https:\/\/nemesisaccounting.co.za\/wazamba-casino-500-90\/","anchor":"nemesisaccounting.co.za"},{"url":"https:\/\/technogeni.com\/wazamba-1171\/","anchor":"technogeni.com"}]
[21-Jul-2025 14:40:06 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 14:40:24 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 16:08:46 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 16:08:51 PRC] PHP Warning: A non-numeric value encountered in /home/www/torresncgolf/wp-content/plugins/external-db-auth-reloaded/medoo.php on line 34
[21-Jul-2025 16:08:51 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 16:26:27 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 18:29:04 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 18:47:04 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 19:18:14 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 21:12:17 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 21:12:19 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 21:12:19 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 21:12:19 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 21:12:21 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 21:12:21 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 21:12:21 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 21:26:45 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 21:26:51 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 21:26:51 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 21:26:51 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 21:26:52 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 21:26:52 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 21:26:52 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 21:34:28 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 21:34:34 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 21:34:34 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 21:34:34 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 21:34:36 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 21:34:36 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 21:34:36 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330
[21-Jul-2025 23:40:16 PRC] PHP Warning: Cannot modify header information - headers already sent by (output started at /home/www/torresncgolf/wp-includes/script-loader.php:3015) in /home/www/torresncgolf/wp-content/plugins/woocommerce_inputs/woocommerce_inputs.php on line 200
[21-Jul-2025 23:40:17 PRC] PHP Warning: count(): Parameter must be an array or an object that implements Countable in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 313
[21-Jul-2025 23:40:17 PRC] PHP Warning: Invalid argument supplied for foreach() in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 321
[21-Jul-2025 23:40:17 PRC] PHP Warning: array_keys() expects parameter 1 to be array, null given in /home/www/torresncgolf/wp-admin/includes/class-wp-plugins-list-table.php on line 330