Problème de redirection avec condition (php)

dxthz -  
maka54 Messages postés 721 Statut Membre -
Bonjour a tous,

Je vous expose mon problème : J'aimerais pouvoir faire une redirection avec une condition mais j'ai un problème de synthaxe dans le if que je n'arrive pas a trouver. Mon but est de faire une géolocalisation par IP des personnes arrivant sur mon site et en fonction de leur pays je voudrais les rediriger sur tel ou tel page.


Voici mon code (je l'ai placé avant toute balise html dans ma page d'accueil):


<?php
include("geoipcity.inc");    // ici et ce qui suit : le code me permettant de faire la géolocalisation
include("geoipregionvars.php");

$gi = geoip_open(realpath("GeoLiteCity.dat"),GEOIP_STANDARD);

$record = geoip_record_by_addr($gi,$_SERVER['REMOTE_ADDR']);

echo geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);  // ici j'affiche la fonction qui me donne le nom du pays d'où la connexion se fait (pour moi : New Caledonia)

geoip_close($gi);

 if (geoip_country_name_by_addr() == "New Caledonia")   // voila où je bloque, je voudrais que les visiteurs se connectant depuis la nouvelle caledonie soient renvoyé vers une page spéciale et pour les autres qu'ils continuent la visite normalement.
      {         
	   header('Location: www.monsite.com/nc/index.php');  
                   exit();
       }

?>


Lorsque je me connecte a la page la redirection ne se fait pas, pour la géolocalisation tout se passe bien, c'est apres que sa plante.

Si quelqu'un peu m'aider a faire en sorte que se code fonctionne je le remercie d'avance.

A voir également:

4 réponses

nEm3sis Messages postés 722 Statut Membre 113
 
tu ne peux pas appeler la fonction header après un echo il me semble
de plus tente avec http:// -> header('Location: http://www.monsite.com/nc/index.php');

Si une réponse est utile pense au +1
Si tu as résolu ton problème passe nous le dire et met ton sujet en résolu.
0
dxthz
 
Merci pour ta réponse.
J'ai enlever "echo" et rajouter "http://" dans le header mais ça ne marche toujours pas. Je pense que le problème se trouve dans les paramètres de if mais je ne sais pas où !
0
le père
 
Bonjour

Pour voir si ta condition de redirection est bien remplie :

      {         
         echo 'redirection'; exit;
	   header('Location: www.monsite.com/nc/index.php');  
                   exit();
       }


Est-ce que ceci t'affiche bien 'redirection'?

Si oui, vérifie bien qu'il n'y a aucun espace, aucune ligne vide avant ton <?php du début de ton fichier.
Vérifie aussi si ton éditeur est en utf8, que tu travailles bien SANS BOM.
0
maka54 Messages postés 721 Statut Membre 80
 
$country = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);  


geoip_close($gi);

 if ($country == "New Caledonia")
0