Redirection php selon le pays

Régen -  
 Réjean -
Bonjour,

Je veux rediriger les visiteurs de mon site sur d'autres pages en fonction de leur pays.

J'utilise ce code et j'ai mis le fichier GeoIP.dat et geoip.inc dans le même dossier que ma page .php (qui contient ce code)

Lorsque je visite la page, j'obtiens une page blanche, je ne suis pas redirigé. Quelqu'un peut m'aider svp!

<?php
require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);
 
if ($country == 'ca') { 
header('Location: www.google.ca');
}
if ($country == 'nz') { 
header('Location: example.co.nz');
}
if ($country == 'uk') { 
header('Location: example.co.uk');
}
if ($country == 'us') { 
header('Location: http://www.yahoo.com');
}

?>



Merci!
A voir également:

2 réponses

thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
C'est qu'aucune de ces condition n'est remplie, donc rien n'est affiché.
Pour t'en assurer, fait un echo 'essai'; avant le ?>
0
Régen
 
que veux tu dire par "aucune de ces condition n'est remplie" ?

J'ai essayé avec un ip du Canada et via un proxy au USA

Lorsque je rajoute un echo 'essai'; avant le ?> je vois bien "essai" à l'écran.

Merci.
0
thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
ton probleme vient donc de ces lignes

require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);


Tu peux essayer un var dump sur le $country pour voir ce qu'il y a dedans.
0
Régen
 
alors est-ce que j'ai bon à la base ? les fichiers hébergés (le .dat et le .inc) sont'ils nécessaires et au bon endroit ? Est-ce que le code php est bon à la base ?

Que veux-tu dire par "voir ce qu'il y a dedans." ?

Est-ce la bonne syntaxe ? : var_dump($country);
0
thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
Oui, ou alors echo $country;

Si $country est vide ou non défini, tu le sauras direct, cela signifiera que tes fichiers pour la GeoIP ne marchent pas.
0
Régen
 
le echo $country; m'affiche bien "CA"

jai testé avec 3 sources pour mon geoip.dat et .inc et avec FF et IE, toujours le même résultat.

Dois-je configurer autre chose ? Problème du côté de mon hébergeur (c'est HostPapa) pour ce site.

Que puis-je essayer encore?
0
thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
tu peux essayer avec les majuscules, je ne sais pas si les variables respectent la casse, sinon, tu peux mettre ta variable en majuscule et verifier avec CA ( majuscule)
0