Доброго времени суток, друзья.
Есть такой ресурс http://www.maxmind.com/app/geolite. Кажется многие им пользуются.
Там среди прочего предлагается бесплатная база городов в формате .dat
Доступна следующая ссылка для скачивания http://geolite.maxmi...LiteCity.dat.gz
Здесь описан порядок установки http://www.maxmind.c...allation?city=1
На сайте также можно скачать примеры реализации на разных языках, в том числе PHP
Вроде все просто, но на opencart не удается внедрить все до конца, при попытке доступа к файлам с соответствующими классами выдает ошибку доступа к файлу.
Ошибка сервера код 500. Непонятно, это opencart что-то запрещает или настройки сервера.
Код такой:
<?
// Подключаем необходимые классы
include(HTTP_SERVER."geoip/geoipcity.php");
include(HTTP_SERVER."geoip/geoip.php");
include(HTTP_SERVER."geoip/geoipregionvars.php");
// Подключаем файл с данными
$filename = HTTP_SERVER."/geoip/GeoLiteCity.dat";
// Использую методы из подключенных выше классов пытаемся получить массив данных о текущем регионе
// Вот тут возникает ошибка
$gim = geoip_open($filename,GEOIP_STANDARD);
$record = geoip_record_by_addr($gim,$_SERVER['REMOTE_ADDR']);
print $record['country_code'] . " " . $record['country_code3'] . " " . $record['country_name'] . "\n";
print $record['region'] . "\n";
print $record['city'] . "\n";
print $record['latitude'] . "\n";
print $record['longitude'] . "\n";
geoip_close($gim);
?>
Дамп ошибки примерно следующий
Warning: include([url="http://xn--_-htbdnodicd/geoip/geoipcity.php"]http://мой_домен/geoip/geoipcity.php[/url]'>http://мой_домен/geoip/geoipcity.php[/url]) [function.include]: failed to open stream: HTTP request failed!
HTTP/1.1 500 Internal Server Error in /home/юзер/domains/мой_домен/public_html/ecodom/catalog/controller/common/home.php on line 28
Warning: include() [function.include]: Failed opening '[url="http://xn--_-htbdnodicd/geoip/geoipcity.php"]http://мой_домен/geoip/geoipcity.php[/url]'>http://мой_домен/geoip/geoipcity.php[/url]' for inclusion (include_path='.:/usr/local/php5/lib/php') in /home/wgtest2rk/domains/wgtest2.rk.ua/public_html/ecodom/catalog/controller/common/home.php on line 28
Fatal error: Call to undefined function geoip_open() in /home/юзер/domains/мой_домен/public_html/ecodom/catalog/controller/common/home.php on line 32
Есть мысль что это именно проблема opencart, так как экспериментально в чистом php файле ошибок не дает.
И да, к вопросу зачем мне это, нужно реализовать автоподстановку города при регистрации и оформлении товара.
Файлы с примерами реализации на PHP прилагаю.
GeoLiteCity.dat.gz
php-1.11.tar.gz
Направьте пожалуйста, если где ошибся :)