Que esta mal en este PHP?

deskpro123 Seguir

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
Hola a todos, un usuario me hiso un codigo de forma gratuita como regalo, y esta exelente, solo que en mi host no me funciona, el codigo lo que hace es detectar el PAIS algo como GEO IP.

Este es el codigo:

PHP:
<?php

$var = file_get_contents('http://www.telize.com/geoip/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var);

if($api->country_code == 'DO'){

echo 'SOY DE RD';

}

?>

Si hago un echo ""; a la variable $var si me muestra los datos pero si hago echo a la variable $api no me hace nada, creo que el problema esta en el json_decode, alguna idea?

Gracias amigos, un saludo a todos.
 

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
es que `$api` es un objeto, que tiene varias propiedades, tienes que elegir que propiedades quieres ver.

jejeje

mira esta es mi ip:

Insertar CODE, HTML o PHP:
[COLOR=#000000]{"timezone":"America\/Mexico_City","isp":"Uninet S.A. de C.V.","region_code":"21","country":"Mexico","dma_code":"0","area_code":"0","region":"Puebla","ip":"x.x.x.x","asn":"AS8151","continent_code":"NA","city":"Puebla","longitude":-98.2,"latitude":19.05,"country_code":"MX","country_code3":"MEX"}[/COLOR]

y el objeto api tiene estas propiedades:

  • timezone
  • isp
  • region_code
  • country
  • dma_code
  • area_code
  • region
  • asn
  • continend_code
  • city
  • longitude
  • latitude
  • country_code
  • country_code3
asi que llegas a esas propiedades usando
PHP:
echo $api->propiedad
 
Última edición:

deskpro123

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
es que `$api` es un objeto, que tiene varias propiedades, tienes que elegir que propiedades quieres ver.

jejeje

mira esta es mi ip:

Insertar CODE, HTML o PHP:
[COLOR=#000000]{"timezone":"America\/Mexico_City","isp":"Uninet S.A. de C.V.","region_code":"21","country":"Mexico","dma_code":"0","area_code":"0","region":"Puebla","ip":"x.x.x.x","asn":"AS8151","continent_code":"NA","city":"Puebla","longitude":-98.2,"latitude":19.05,"country_code":"MX","country_code3":"MEX"}[/COLOR]

y el objeto api tiene estas propiedades:

  • timezone
  • isp
  • region_code
  • country
  • dma_code
  • area_code
  • region
  • asn
  • continend_code
  • city
  • longitude
  • latitude
  • country_code
  • country_code3
asi que llegas a esas propiedades usando
PHP:
echo $api->propiedad

SI lo se, lo del echo era solo para probar, pero no me funciona, osea deberia decirme echo 'SOY DE RD'; si estuviera funcionando, porque esa es la funcion del codigo detectar el pais, aun asi poniendo lo que me dijiste no me funciono, no me muestra nada :(,

puse esto y no me sale nada
echo $api->country_code;
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
SI lo se, lo del echo era solo para probar, pero no me funciona, osea deberia decirme echo 'SOY DE RD'; si estuviera funcionando, porque esa es la funcion del codigo detectar el pais, aun asi poniendo lo que me dijiste no me funciono, no me muestra nada :(,

puse esto y no me sale nada
echo $api->country_code;

hace un
PHP:
<?php
$var = file_get_contents('http://www.telize.com/geoip/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var); 
echo'<pre>';
print_r($api);
?>
y fijate si sale RD como pais o que...
 

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
hace un
PHP:
<?php
$var = file_get_contents('http://www.telize.com/geoip/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var); 
echo'<pre>';
print_r($api);
?>
y fijate si sale RD como pais o que...

eso eso eso

igual y no reconoce la ip como rd, en mi caso hay varios 0 y na
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
Hola a todos, un usuario me hiso un codigo de forma gratuita como regalo, y esta exelente, solo que en mi host no me funciona, el codigo lo que hace es detectar el PAIS algo como GEO IP.

Este es el codigo:

PHP:
<?php

$var = file_get_contents('http://www.telize.com/geoip/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var);

if($api->country_code == 'DO'){

echo 'SOY DE RD';

}

?>

Si hago un echo ""; a la variable $var si me muestra los datos pero si hago echo a la variable $api no me hace nada, creo que el problema esta en el json_decode, alguna idea?

Gracias amigos, un saludo a todos.

sino usa:
PHP:
<?php

$var = file_get_contents('http://smart-ip.net/geoip-json/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var);

if($api->countryCode == 'DO'){

echo 'SOY DE RD';

}

?>
Geo-IP API Documentation
 

deskpro123

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
hace un
PHP:
<?php
$var = file_get_contents('http://www.telize.com/geoip/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var); 
echo'<pre>';
print_r($api);
?>
y fijate si sale RD como pais o que...

Hola amigo, pues no, se me queda la pagina en blanco, sospecho que el fallo esta en el JSON porque si pongo echo al $var me tira esto:

{"timezone":"America\/Santo_Domingo","isp":"Compañía Dominicana de Teléfonos, C. por A. - CODETEL","region_code":"05","country":"Dominican Republic","dma_code":"0","area_code":"0","region":"Distrito Nacional","ip":"186.6.17*.***","asn":"AS6400","continent_code":"NA","city":"Santo Domingo","longitude":-**.9,"latitude":18.46**,"country_code":"DO","country_code3":"DOM"}

---------- Post agregado el 09-ene-2014 hora: 03:42 ----------

sino usa:
PHP:
<?php

$var = file_get_contents('http://smart-ip.net/geoip-json/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var);

if($api->countryCode == 'DO'){

echo 'SOY DE RD';

}

?>
Geo-IP API Documentation

Creo que ese si me funciona :D muchisimas gracias amigo :D
 

jtsamper

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Dic 2013
Mensajes
60
Puede que llegue un poco tarde pero puedes convertirlo en una matriz y por tanto es mas facil de leer...
PHP:
 <?php

$var = file_get_contents('http://smart-ip.net/geoip-json/'.$_SERVER['REMOTE_ADDR']);
$api = json_decode($var,true);

if($api["countryCode"] == 'DO'){

echo 'SOY DE RD';

}
print_r($api);
?>

Un saludo
 

juanec27

Gamma
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
19 Mar 2011
Mensajes
207
cuando quieras ver el contenido de una variable o saber como acceder a los objetos o datos de un arreglo (que para todo caso es lo mismo) has un simple
PHP:
var_dump($variable);

Es la manera correcta y profesional de conocer el contenido de una variable en vez de estar jugando o adivinando con echo's
 
A

AcidShout

cuando quieras ver el contenido de una variable o saber como acceder a los objetos o datos de un arreglo (que para todo caso es lo mismo) has un simple
PHP:
var_dump($variable);

Es la manera correcta y profesional de conocer el contenido de una variable en vez de estar jugando o adivinando con echo's

Insertar CODE, HTML o PHP:
print_r($algo);
tampoco es una mala manera, es cuestión de lo que necesites
 

Juanix

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Sep 2010
Mensajes
120
Insertar CODE, HTML o PHP:
echo '<pre>';
print_r($algo);
 
Arriba