我在访问我的网站时遇到此错误。我已经为三个不同的服务器使用了相同的文件,包括我的本地服务器,它运行正常。有人可以点灯吗?
$stringIp = $_SERVER['REMOTE_ADDR'];
$intIp = ip2long($stringIp);
$inDB = @mysql_query("SELECT 1 FROM av_whoIsOnline WHERE ip=".$intIp);
if(!mysql_num_rows($inDB)) //CODE IN QUESTION <---------
{
if($_COOKIE['geoData'])
{
list($city,$countryName,$countryAbbrev) = explode('|',mysql_real_escape_string(strip_tags($_COOKIE['geoData'])));
}
else
{
$xml = file_get_contents('http://api.hostip.info/?ip='.$stringIp);
$city = get_tag('gml:name',$xml);
$city = $city[1];
$countryName = get_tag('countryName',$xml);
$countryName = $countryName[0];
$countryAbbrev = get_tag('countryAbbrev',$xml);
$countryAbbrev = $countryAbbrev[0];
setcookie('geoData',$city.'|'.$countryName.'|'.$countryAbbrev, time()+60*60*24*30,'/');
}
$countryName = str_replace('(Unknown Country?)','UNKNOWN',$countryName);
if (!$countryName)
{
$countryName='UNKNOWN';
$countryAbbrev='XX';
$city='(Unknown City?)';
}
答案 0 :(得分:0)
在@mysql_query
之前取出@符号。这显然可以抑制错误。如果您收到错误,$inDB
将不是有效资源,因此您将收到错误消息。你的问题很可能就在之前的那一行。
另请注意,mysql
库已被弃用,转而使用mysqli
和PDO
。考虑更改代码以使用其中一个较新的库,因为它们更安全
答案 1 :(得分:0)
现在正在运作。谢谢你的回复。
这是我从网上抢过一段时间的在线脚本。我使用相同的脚本更改了主机并得到了此错误。上传数据库后,我删除了'av_whoIsOnline'中的所有条目。然后发生了错误。插入条目并且错误消失了。
我的数据库连接位于另一个文件中。