[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Notice ошибка
715kg
Здравствуйте. В файле index.php на линии 149 прописан код

$main = str_replace("{geo_map}", $res->latitud .','.$res->longitude, $main); // geo map Координаты IP


{geo_map} Работает. Этот код работает.

Но почему то в верху шаблона.


Notice: Trying to get property of non-object in C:\web\xampp\htdocs\index.php on line 149

Notice: Trying to get property of non-object in C:\web\xampp\htdocs\index.php on line 149

Как с этим бороться подскажите пожалуйста
Игорь_Vasinsky
может
$res['latitud']
$res['latitude']
?

var_dump($res) что кажет? это объект или массив?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Winston
Где и как происходит инициализация $res?
715kg
Вот, инициализация $res

//Geo Локация
include "./geo/geoipcity.inc";
$gi = geoip_open("./geo/GeoLiteCity.dat", GEOIP_STANDARD);
$ipadr = gethostbyname($ip);
$res = GeoIP_record_by_addr($gi,$ipadr);
geoip_close($gi);
715kg
А var_dump($res) кажет это



object(geoiprecord)#2 (12) { ["country_code"]=> string(2) "RU" ["country_code3"]=> string(3) "RUS" ["country_name"]=> string(18) "Russian Federation" ["region"]=> string(2) "48" ["city"]=> string(6) "Moscow" ["postal_code"]=> NULL ["latitude"]=> float(55.7522) ["longitude"]=> float(37.6156) ["area_code"]=> NULL ["dma_code"]=> NULL ["metro_code"]=> NULL ["continent_code"]=> string(2) "EU" }
killer8080
Цитата (715kg @ 22.12.2012 - 05:48)
А var_dump($res) кажет это

var_dump нужно делать там же, где выскочила в ошибка. Скорее всего проблема в области видимости.



Спустя 1 минута, 11 секунд killer8080 написал(а):
Цитата (715kg @ 21.12.2012 - 20:48)
$main = str_replace("{geo_map}", $res->latitude .','.$res->longitude, $main); // geo map Координаты IP

715kg
Седлал так. Ошибки пропали..

include "./geo/geoipcity.inc";  
$gi = geoip_open("./geo/GeoLiteCity.dat", GEOIP_STANDARD);

if ($ip_port == 'INVALID ADDRESS:!!!!')
{
$ipadr = gethostbyname('01.01.01.01');
}else{
$ipadr = gethostbyname($ip);
}

$res = GeoIP_record_by_addr($gi,$ipadr);
geoip_close($gi);



Правильно ли это??? Вроде все работает. Ведь у меня все запросы идут через GET, а на главной странице ошибка, так как нету данных из $_GET['ip']; А если нету, то он выводит INVALID ADDRESS:!!!!

Получается $ip = 'INVALID ADDRESS:!!!!';

Пытается взять $ipadr = gethostbyname($ip);

А адрес не правильный.
Игорь_Vasinsky
Цитата
$main = str_replace("{geo_map}", $res->latitud .','.$res->longitude, $main); // geo map Координаты IP


object(geoiprecord)#2 (12) { ["country_code"]=> string(2) "RU" ["country_code3"]=> string(3) "RUS" ["country_name"]=> string(18) "Russian Federation" ["region"]=> string(2) "48" ["city"]=> string(6) "Moscow" ["postal_code"]=> NULL ["latitude"]=> float(55.7522) ["longitude"]=> float(37.6156) ["area_code"]=> NULL ["dma_code"]=> NULL ["metro_code"]=> NULL ["continent_code"]=> string(2) "EU" }


Цитата
$res->latitud

Цитата
["latitude"]=> float(55.7522)

точно киллер подметил. потерял ты кое что)


Цитата
А адрес не правильный.

всмысле?

смотри gethostbyname()



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (715kg @ 22.12.2012 - 10:59)
$ipadr = gethostbyname('01.01.01.01');

Что это за бред?
715kg
Дая не знаю как сделать. Сделал все, что мог. Все ошибки пропали. Сделал долгими путями. И не профессионально. Но все пропало.


<?php
//Geo Локация
error_reporting(E_ALL ^E_NOTICE);
ini_set('display_errors', 'off');



include "./geo/geoipcity.inc";
$gi = geoip_open("./geo/GeoLiteCity.dat", GEOIP_STANDARD);



if ($ip_port == 'INVALID ADDRESS:!!!!')
{
$ipadr = '01.01.01.01';
}else{
$ipadr = gethostbyname($ip);
}
$res = GeoIP_record_by_addr($gi,$ipadr);


$res2 = GeoIP_record_by_addr($gi,$_SERVER['REMOTE_ADDR']);
geoip_close($gi);


//Условия для вывода карты. Если нет карты в списке, выводит default
$geo_img_flags = "Не определено";
if (file_exists("templates/images/flags/".$res->country_code.".png"))
{$geo_img_flags = "<img src='../templates/images/flags/".$res->country_code.".png' alt='".$map."' width='18' height='12'>";}



$monitortp2 = file_get_contents("templates/geo_google_map.tpl"); //Вывод странице с информацией
$main = str_replace("{google_map}", $monitortp2, $main); // шаблонизатор {google_map} вывод шаблона geo_google_map.tpl

$main = str_replace("{geo_map}", $res->latitude.','.$res->longitude, $main); // geo map Координаты IP
$main = str_replace("{geo_map_strana}", $res->country_name, $main); // geo map название страны сервера
$main = str_replace("{geo_map_strana_user}", $res2->country_name, $main); // geo map азвание страны пользователя
$main = str_replace("{geo_map_flag_user}", $geo_img_flags, $main); // geo map вывод картинки карты

if ($res2->city == ''){
$nameif2 = 'Не определено';
$main = str_replace("{geo_map_gorod_user}", $nameif2, $main); // geo map Название города - пользователя
}else{
$main = str_replace("{geo_map_gorod_user}", $res2->city, $main);
}


if ($res->city == ''){
$nameif = 'Не определено';
$main = str_replace("{geo_map_gorod}", $nameif, $main); // geo map Название города - сервера
}else{
$main = str_replace("{geo_map_gorod}", $res->city, $main);
}

?>
Быстрый ответ:

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