cici9911 发表于 2013-4-4 17:51:07

关于GEO代码的求助帖

php页面上有如下代码:<?php
include("geoipcity.inc");
include("geoipregionvars.php");

// uncomment for Shared Memory support
// geoip_load_shared_mem("/usr/local/share/GeoIP/GeoIPCity.dat");
// $gi = geoip_open("/usr/local/share/GeoIP/GeoIPCity.dat",GEOIP_SHARED_MEMORY);

$gi = geoip_open("/usr/local/share/GeoIP/GeoLiteCity.dat",GEOIP_STANDARD);

$record = geoip_record_by_addr($gi,$ip);
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n";
print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "\n";
print $record->city . "\n";
print $record->postal_code . "\n";
print $record->latitude . "\n";
print $record->longitude . "\n";
print $record->metro_code . "\n";
print $record->area_code . "\n";
print $record->continent_code . "\n";

geoip_close($gi);

?>GeoLiteCity.dat也用winscp上传到指定目录了!
但是运行后会出现这样的提示:

Can not open /usr/local/share/GeoIP/GeoLiteCity.dat

求助是什么情况,路径,包括大小写都检查过了,也重启过服务器了,但是问题依旧!

毛Kobe 发表于 2013-4-4 19:15:36

GeoLiteCity.dat路径应该对了,
1.是否这个GeoLiteCity.dat没下载完全?删除了重新下载再上传看看
2.权限不对吧,用户组改成对应的,权限也都先改为777试一下看看吧

花魂雪魄 发表于 2013-4-4 19:26:07

chmod 777 xxx.dat

cici9911 发表于 2013-4-4 21:17:59

都是777了,依旧不行

cici9911 发表于 2013-4-4 21:35:04

这段代码怎么把城市给输出 出来?

yoo 发表于 2013-4-4 21:42:04

你这个错误是提示不能打开文件,要么权限不够,要么文件不存在。仔细检查检查,可能是某个很微小的地方造成的。

yoo 发表于 2013-4-4 21:42:47

cici9911 发表于 2013-4-4 21:35 static/image/common/back.gif
这段代码怎么把城市给输出 出来?

这个数据库里只有国家的数据,没有城市的数据,是无法查到城市的。

河小马 发表于 2013-4-4 21:50:12

LZ 看看包含的文件有没有在你的空间上

cici9911 发表于 2013-4-4 22:06:58

yoo 发表于 2013-4-4 21:42 static/image/common/back.gif
这个数据库里只有国家的数据,没有城市的数据,是无法查到城市的。

<?php
include("geoipcity.inc");

// uncomment for Shared Memory support
// geoip_load_shared_mem("/usr/local/share/GeoIP/GeoIPCity.dat");
// $$gi = geoip_open("/usr/local/share/GeoIP/GeoIPCity.dat",GEOIP_SHARED_MEMORY);

$$gi = geoip_open("GeoLiteCity.dat",GEOIP_STANDARD);

$$record = geoip_record_by_addr($$gi,$$ip);
print $$record->country_code . " " . $$record->country_code3 . " " . $$record->country_name . "\n";
print $$record->region . " " . $$GEOIP_REGION_NAME[$$record->country_code][$$record->region] . "\n";
print $$record->city . "\n";
print $$record->postal_code . "\n";
print $$record->latitude . "\n";
print $$record->longitude . "\n";
print $$record->metro_code . "\n";
print $$record->area_code . "\n";
print $$record->continent_code . "\n";

geoip_close($$gi);

?>
我现在把数据库放到本地就ok了,但是无法输出城市
这个是专门下载的城市的数据库啊

河小马 发表于 2013-4-4 22:17:42

cici9911 发表于 2013-4-4 21:35 static/image/common/back.gif
这段代码怎么把城市给输出 出来?

print $record->city . "\n";

cici9911 发表于 2013-4-4 22:33:32

河小马 发表于 2013-4-4 22:17 static/image/common/back.gif
print $record->city . "\n";

源代码运行以后一片空白,什么都不现实

yinet 发表于 2013-4-4 22:42:10

不知道楼主的代码用在什么地方,我今天也找了很久,这个是我在LP用的方法<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script><script language="JavaScript">document.write(geoip_city())</script>

河小马 发表于 2013-4-4 22:56:40

cici9911 发表于 2013-4-4 22:33 static/image/common/back.gif
源代码运行以后一片空白,什么都不现实

我看了一下代码。。应该是缺少文件

你的代码里面自带的两个文件里面,还包含有其他的文件

所以没有一些函数,无法输出

cici9911 发表于 2013-4-4 22:57:45

用JS方法完美解决!
谢谢河马和yinet先生

cici9911 发表于 2013-4-4 23:02:10

yinet 发表于 2013-4-4 22:42 static/image/common/back.gif
不知道楼主的代码用在什么地方,我今天也找了很久,这个是我在LP用的方法 ...

哈哈,我也同样用在LP上!
忙活了一下午,没去想JS的事情,居然一个JS调用给解决掉了!。。。
页: [1] 2
查看完整版本: 关于GEO代码的求助帖