Extraction des donnees de GeoIP

Mammouth du PHP | 725 Messages

21 juin 2012, 06:32

Bonjour,

Je voudrais extraire le code du pays depuis la fonction de GeoIP, et ca retourne une erreur:
http://php.net/manual/en/function.geoip ... y-name.php

$record = geoip_record_by_name($ip['country_code']);

echo $record;

l'erreur:

Code : Tout sélectionner

Notice: geoip_record_by_name(): Host 8 not found in /readxml.php on line 38
Merci a vous

ViPHP
xTG
ViPHP | 7331 Messages

21 juin 2012, 09:35

Tu as quoi dans $ip['country_code'] ?
Car si je comprend bien le message d'erreur tu lui passes "8".
Ce n'est pas une adresse ça. ^^

Mammouth du PHP | 725 Messages

21 juin 2012, 09:40

le print_r retourne:

Code : Tout sélectionner

Array ( [continent_code] => NA [country_code] => US [country_code3] => USA [country_name] => United States [region] => CA [city] => Marina Del Rey [postal_code] => [latitude] => 33.9776992798 [longitude] => -118.435096741 [dma_code] => 803 [area_code] => 310 )
alors je veux recuperer country_code seulement, je pense que 8 est le debut de l'adresse IP

ViPHP
xTG
ViPHP | 7331 Messages

21 juin 2012, 09:43

C'est le print_r() de $ip ???
Sauf qu'à priori tu as déjà tout geolocalisé...
Va nous falloir plus d'infors là si tu veux qu'on t'aide.
Car moi je comprend rien.

Tu veux geolocaliser quelque chose que tu as déjà geolocalisé ???

Mammouth du PHP | 725 Messages

21 juin 2012, 09:46

quand on utilise cette fonction avec un print_r ne retourne le resultat:

Code : Tout sélectionner

Array ( [continent_code] => NA [country_code] => US [country_code3] => USA [country_name] => United States [region] => CA [city] => Marina Del Rey [postal_code] => [latitude] => 33.9776992798 [longitude] => -118.435096741 [dma_code] => 803 [area_code] => 310 )
alors je veux pas faire un print_r, mais je veux un echo sur country_code

ViPHP
xTG
ViPHP | 7331 Messages

21 juin 2012, 09:55

Lire une variable donc... Depuis le temps que tu viens sur ce forum j'aurai pensé que tu savais une chose aussi basique, voilà pourquoi je n'avais pas compris. ^^'
echo $result['country_code'];
Mais cela ne réglera pas l'affichage de la Notice.

Mammouth du PHP | 725 Messages

22 juin 2012, 02:48

Depuis le temps que tu viens sur ce forum j'aurai pensé que tu savais une chose aussi basique, voilà pourquoi je n'avais pas compris. ^^'
echo $result['country_code'];
Mais cela ne réglera pas l'affichage de la Notice.
hehe, oui c'est basique, mais la notice me pose un probleme :D, et le code utilise
echo geoip_record_by_name($ip['country_code']);
ne retourne rien que la notice, peut etre avec un display_errors a off va regler ca, mais pourquoi la notice?

ViPHP
xTG
ViPHP | 7331 Messages

22 juin 2012, 07:54

Parce que l'ip fournie est incorrecte, c'est pas pour rien que je t'ai demandé le contenu de la variable...

Code : Tout sélectionner

Host 8 not found L'hôte 8 na pas été trouvé

Mammouth du PHP | 725 Messages

24 juin 2012, 03:09

voila c'est l'adresse ip:
$ip = '81.82.212.197';

ViPHP
xTG
ViPHP | 7331 Messages

24 juin 2012, 10:40

Si la variable $ip c'est ça, pourquoi tu passesà ta fonction $ip['country_code'] ?

Mammouth du PHP | 725 Messages

25 juin 2012, 04:34

pour recuperer juste country_code, et je veux pas les autres donnees

ViPHP
xTG
ViPHP | 7331 Messages

25 juin 2012, 10:06

Non mais attends faut pas confondre la valeur retour et la valeur d'entrée...
$retour = uneFonction($entrée);
L'ip est en entrée, l'array est en retour !

Mammouth du PHP | 725 Messages

25 juin 2012, 12:09

Non mais attends faut pas confondre la valeur retour et la valeur d'entrée...
$retour = uneFonction($entrée);
L'ip est en entrée, l'array est en retour !
qu'est ce que je vais mettre en retour? puisque c'est une array, comment recuperer country_code

ViPHP
xTG
ViPHP | 7331 Messages

25 juin 2012, 12:26

Il suffit d'accéder à l'index de l'array concerné.
Si tu stockes le retour dans une variable nommée $result :
echo $result['country_code'];

Mammouth du PHP | 725 Messages

26 juin 2012, 04:09

quelque chose comme:
$result = geoip_record_by_name($ip);
echo '<b>'.$result['country_code'].'</b>';