[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: GEOIP
RootPM
Предложения и замечания.

<?php
error_reporting(-1); // Уровень ошибок, перевести в 0

ob_start(); // Включение буферизации вывода

if(!empty($_GET['*'])) {

$host = "*"; // Адрес MySQL-сервера
$user = "*"; // Имя пользователя
$password = "*"; // Пароль
$db = "*"; // База данных

if($connect = mysqli_connect($host, $user, $password, $db)) { // Открыть и проверить соединение
mysqli_set_charset($connect, 'utf8'); // Кодировка клиента
$user_ip = $_GET['*']; // IP пользователя
$user_ip_security = mysqli_real_escape_string($connect, $user_ip);
$result = mysqli_query($connect, "SELECT * FROM `geo_ip` WHERE `ip` = '$user_ip_security' LIMIT 1");

if(mysqli_num_rows($result)) {
$finish = mysqli_fetch_array($result, MYSQLI_ASSOC);
$client = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><geo_api><region>".htmlspecialchars($finish['region'])."</region><city>".htmlspecialchars($finish['city'])."</city></geo_api>"; // Вывести результат из базы данных
mysqli_free_result($result); // Освободить память запроса
} else {

if ($url_zapros = file_get_contents("http://api.2ip.com.ua/geo.xml?ip=".$user_ip)) { // Запрос на сторонний ресурс

if($url_object = simplexml_load_string($url_zapros)) {

if($url_object->country_rus == "Россия") {
$region = trim(htmlspecialchars($url_object->region_rus));
$city = trim(htmlspecialchars($url_object->city_rus));
$region_db_security = mysqli_real_escape_string($connect, $region);
$city_db_security = mysqli_real_escape_string($connect, $city);

mysqli_query($connect, "INSERT INTO `geo_ip` (`ip`, `region`, `city`) VALUES ('$user_ip_security', '$region_db_security', '$city_db_security')"); // Сохранить в базу данных
$client = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><geo_api><region>".$region."</region><city>".$city."</city></geo_api>"; // Вывести результат полученный из URL
}
}
}
}


mysqli_close($connect); // Закрыть соединение
}
}


if((!headers_sent()) AND (!empty($client))) {
header('Content-Type: text/xml; charset=utf-8');
echo $client;
ob_end_flush(); // Сброс (отправка) буфера вывода и отключение буферизации вывода
} else {
ob_end_clean();
header('Content-Type: text/html; charset=utf-8');
header("HTTP/1.1 404 Not Found");
}
?>


_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.