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!

2 réponses

  1. thevinou Messages postés 1130 Statut Membre 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
  2. 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
    1. thevinou Messages postés 1130 Statut Membre 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
    2. 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
    3. thevinou Messages postés 1130 Statut Membre 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
    4. 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
    5. thevinou Messages postés 1130 Statut Membre 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