Redirection php selon le pays

Fermé
Régen - 28 juil. 2011 à 15:33
 Réjean - 2 août 2011 à 07:29
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!

2 réponses

thevinou Messages postés 1008 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
28 juil. 2011 à 15:36
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
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 lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
29 juil. 2011 à 09:03
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
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 lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
29 juil. 2011 à 15:13
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
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 lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
30 juil. 2011 à 11:42
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