Trouver le pays d'un utilisateur
Résolu
xidy
-
xidy -
xidy -
Bonjour,
et merci d'avance^^
J'ai un problème pour trouver le nom du pays des gens visitant mon site internet je vous passe le code si quelqu'un cerne l'erreur merci^^
$pays="33.99.63.44";
$pays=str_replace(".","",$REMOTE_ADDR);
$pays=(double)$pays;
$valeur= mysql_query("SELECT COUNTRY_NAME FROM IP_PAYS WHERE \'".$pays."\' BETWEEN \'IP_FROM\' and \'IP_TO\'",$conn);
while ($row = mysql_fetch_row($valeur))
{
echo $row[0];
}
et merci d'avance^^
J'ai un problème pour trouver le nom du pays des gens visitant mon site internet je vous passe le code si quelqu'un cerne l'erreur merci^^
$pays="33.99.63.44";
$pays=str_replace(".","",$REMOTE_ADDR);
$pays=(double)$pays;
$valeur= mysql_query("SELECT COUNTRY_NAME FROM IP_PAYS WHERE \'".$pays."\' BETWEEN \'IP_FROM\' and \'IP_TO\'",$conn);
while ($row = mysql_fetch_row($valeur))
{
echo $row[0];
}
A voir également:
- Trouver le pays d'un utilisateur
- Trouver adresse mac - Guide
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Ou trouver le presse papier - Guide
- Comment trouver le code verrouillage d'un telephone - Guide
9 réponses
Ok, par contre je connais pas trop ta syntaxe du between, et je ne vois pas pourquoi tu échappes ces simples quotes.
Perso je l'aurai écrite :
$sSql = " SELECT COUNTRY_NAME
FROM `IP_PAYS`
WHERE
`IP_FROM` <= '".$pays."'
AND
`IP_TO` >= '".$pays."'
";
Perso je l'aurai écrite :
$sSql = " SELECT COUNTRY_NAME
FROM `IP_PAYS`
WHERE
`IP_FROM` <= '".$pays."'
AND
`IP_TO` >= '".$pays."'
";
Lu,
ils n'ont pas un profil sur ton site ? tu peux pas regarder leur pays de là-bas ?
et pourquoi veux-tu à tout prix savoir leur pays?
ils n'ont pas un profil sur ton site ? tu peux pas regarder leur pays de là-bas ?
et pourquoi veux-tu à tout prix savoir leur pays?
Bonjour,
je ne suis pas très bon en dev. mais pour contourner le problème et pour trouver le pays de tes visiteurs tu peux aussi simplement passé par PHPMyvisites.
Si ça peut t'aider,
dyllan
je ne suis pas très bon en dev. mais pour contourner le problème et pour trouver le pays de tes visiteurs tu peux aussi simplement passé par PHPMyvisites.
Si ça peut t'aider,
dyllan
J'aimerais avoir le pays pour simple information (outil d'analyse) mais si possible le coder moi-même et eviter google analytics ou autre (but pédagogique dans ce cas). Merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ta requête me parait bien étrange...
Tu veux pas faire :
$sSql = "SELECT COUNTRY_NAME FROM IP_PAYS WHERE \'".$pays."\' BETWEEN \'IP_FROM\' and \'IP_TO\'";
echo "<br/>on va éxécuter : ".$sSql;
$valeur= mysql_query($sSql,$conn) or die ('error '.mysql_error());
Et dis moi ce que ça t'affiches.
Puis comme ça, t'as bien une table IP_PAYS ? ? //Si oui montre la structure
Et t'as des enregistrements dedans ?
Un par adresse IP sans les points ? ? ? //ca parait irréel
Car c'est ce que ta requête demande...
Tu veux pas faire :
$sSql = "SELECT COUNTRY_NAME FROM IP_PAYS WHERE \'".$pays."\' BETWEEN \'IP_FROM\' and \'IP_TO\'";
echo "<br/>on va éxécuter : ".$sSql;
$valeur= mysql_query($sSql,$conn) or die ('error '.mysql_error());
Et dis moi ce que ça t'affiches.
Puis comme ça, t'as bien une table IP_PAYS ? ? //Si oui montre la structure
Et t'as des enregistrements dedans ?
Un par adresse IP sans les points ? ? ? //ca parait irréel
Car c'est ce que ta requête demande...
En effet j'ai retiré les quotes pour ceci:
$valeur= mysql_query("SELECT * FROM IP_PAYS WHERE \'".$pays."\' BETWEEN IP_FROM and IP_TO",$conn);
mais je ne comprends pas la syntaxe avec les => et >=.
J'ai une erreur de type:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\4Gl\4glOnNet\fct.php
lors du:
while ($row = mysql_fetch_row($valeur))
{
echo $row[0];
}
$valeur= mysql_query("SELECT * FROM IP_PAYS WHERE \'".$pays."\' BETWEEN IP_FROM and IP_TO",$conn);
mais je ne comprends pas la syntaxe avec les => et >=.
J'ai une erreur de type:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\4Gl\4glOnNet\fct.php
lors du:
while ($row = mysql_fetch_row($valeur))
{
echo $row[0];
}
Fais un mysql_query("SELECT * FROM IP_PAYS WHERE \'".$pays."\' BETWEEN IP_FROM and IP_TO",$conn) or die('ERROR SQL : '.mysql_error() );
Il doit y avoir une erreur de syntaxe de requête. D'ailleurs ça ne sert toujours à rien d'échapper les simple quotes pour le pays, il vaut mieux écrire :
"SELECT * FROM IP_PAYS WHERE '".$pays."' BETWEEN IP_FROM and IP_TO"
Pour ce qui est des <= et => c'est pour faire le between c'est du "inférieur ou égal" à et "supérieur ou égal à"
Il doit y avoir une erreur de syntaxe de requête. D'ailleurs ça ne sert toujours à rien d'échapper les simple quotes pour le pays, il vaut mieux écrire :
"SELECT * FROM IP_PAYS WHERE '".$pays."' BETWEEN IP_FROM and IP_TO"
Pour ce qui est des <= et => c'est pour faire le between c'est du "inférieur ou égal" à et "supérieur ou égal à"
s'agit t-il du fichier iptocountry.csv que tu as utilisé ?
Si oui, les "ip" contenues dans la tables n'en sont pas. C'est le résultat d'un calcul à partir des 4 parties de l'ip.
ex pour un ip du style AAA.BBB.CCC.DDD il faut calculer :
AAA x 256^3 + BBB x 256 ^2 + CCC x 256 + DDD
et c'est cette valeur qu'il faut comparer aux IPFROM et IPTO.
Bonne journée