Afficher le contenu selon ip du pays
Fermé
Marc
-
9 févr. 2010 à 12:44
Snoopip Messages postés 235 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 1 mai 2014 - 12 févr. 2010 à 20:57
Snoopip Messages postés 235 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 1 mai 2014 - 12 févr. 2010 à 20:57
A voir également:
- Afficher le contenu selon ip du pays
- Ethernet n'a pas de configuration ip valide - Guide
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Comment connaître son adresse ip - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
- Ip local - Guide
12 réponses
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
10 févr. 2010 à 09:36
10 févr. 2010 à 09:36
Re,
essaye de remplacer ça:
$fp = fsockopen ("www.ip-to-country.com", 80, &$errno, &$errstr, 30);
par ça
$fp = fsockopen ("www.ip-to-country.com", 80, $errno, $errstr, 30);
Ici, l'erreur se fait au niveau des variable par référence, en les mettant par valeur, peut-être que ça marchera u_u' lol
A+
Gaerebut
essaye de remplacer ça:
$fp = fsockopen ("www.ip-to-country.com", 80, &$errno, &$errstr, 30);
par ça
$fp = fsockopen ("www.ip-to-country.com", 80, $errno, $errstr, 30);
Ici, l'erreur se fait au niveau des variable par référence, en les mettant par valeur, peut-être que ça marchera u_u' lol
A+
Gaerebut
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
11 févr. 2010 à 13:11
11 févr. 2010 à 13:11
Alors effectivement il n'y a plus d'erreur, mais maintenant plus rien s'affiche (page blanche). voici tout le code de ma page:
<?php
/* extraction adresse IP du visiteur */
$ip = $_SERVER['REMOTE_ADDR'];
/* transformation IP */
$dotted = preg_split( "/[.]+/", $ip);
$ip2 = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
/* URL du serveur et paramètres à lui passer */
$url = "/get-country/?ip=".$ip2."&user=guest&pass=guest";
/* ouverture de la socket */
$fp = fsockopen ("www.ip-to-country.com", 80, $errno, $errstr, 30);
/* test si erreur à l'ouverture */
if (!$fp) {
/* affichage de l'erreur */
echo "$errstr ($errno)<br>\n";
} else {
/* envoi de la requête HTTP */
fputs ($fp, "GET $url HTTP/1.0\r\nHost: ip-to-country.com\r\n\r\n");
/* réception des données en retour */
while (!feof($fp)) {
/* extraction réponse */
$response .= fgets ($fp,128);
}
/* fermeture socket */
fclose ($fp);
}
function IPAddress2IPNumber($dotted) {
$dotted = preg_split( "/[.]+/", $dotted);
$ip = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
return $ip;
}
function IPNumber2IPAddress($number) {
$a = ($number/16777216)%256;
$b = ($number/65536)%256;
$c = ($number/256)%256;
$d = ($number)%256;
$dotted = $a.".".$b.".".$c.".".$d;
return $dotted;
}
$lignes = explode("\n",$response);
$pays = $lignes[sizeof($lignes)-1];
?>
S'il vous plait aidez moi c'est vraiment très important. Merci gaerebut pour ton soutien.
<?php
/* extraction adresse IP du visiteur */
$ip = $_SERVER['REMOTE_ADDR'];
/* transformation IP */
$dotted = preg_split( "/[.]+/", $ip);
$ip2 = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
/* URL du serveur et paramètres à lui passer */
$url = "/get-country/?ip=".$ip2."&user=guest&pass=guest";
/* ouverture de la socket */
$fp = fsockopen ("www.ip-to-country.com", 80, $errno, $errstr, 30);
/* test si erreur à l'ouverture */
if (!$fp) {
/* affichage de l'erreur */
echo "$errstr ($errno)<br>\n";
} else {
/* envoi de la requête HTTP */
fputs ($fp, "GET $url HTTP/1.0\r\nHost: ip-to-country.com\r\n\r\n");
/* réception des données en retour */
while (!feof($fp)) {
/* extraction réponse */
$response .= fgets ($fp,128);
}
/* fermeture socket */
fclose ($fp);
}
function IPAddress2IPNumber($dotted) {
$dotted = preg_split( "/[.]+/", $dotted);
$ip = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
return $ip;
}
function IPNumber2IPAddress($number) {
$a = ($number/16777216)%256;
$b = ($number/65536)%256;
$c = ($number/256)%256;
$d = ($number)%256;
$dotted = $a.".".$b.".".$c.".".$d;
return $dotted;
}
$lignes = explode("\n",$response);
$pays = $lignes[sizeof($lignes)-1];
?>
S'il vous plait aidez moi c'est vraiment très important. Merci gaerebut pour ton soutien.
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
9 févr. 2010 à 16:07
9 févr. 2010 à 16:07
Salut,
pourquoi ne pas directement afficher la langue du visiteur ?!
Pour ça c'est facile, on utilise un petit script PHP qui détecte la langue par défaut du navigateur client:
<?php
$lang= explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang= strtolower(substr(chop($lang[0]),0,2));
echo $lang;
?>
Après, tu peux utiliser un tableau PHP contenant uniquement les pays autorisé (ou uniquement les pays interdit).
Puis, via la fonction in_array(); on detecte si la langue appartient au tableau:
Exemple:
A+
Gaerebut
pourquoi ne pas directement afficher la langue du visiteur ?!
Pour ça c'est facile, on utilise un petit script PHP qui détecte la langue par défaut du navigateur client:
<?php
$lang= explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang= strtolower(substr(chop($lang[0]),0,2));
echo $lang;
?>
Après, tu peux utiliser un tableau PHP contenant uniquement les pays autorisé (ou uniquement les pays interdit).
Puis, via la fonction in_array(); on detecte si la langue appartient au tableau:
Exemple:
<?php $lang= strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2)); $arrAcceptLanguage = array('fr', 'en', 'de', 'it') //Langue AUTORISEES if(in_array($lang, $arrAcceptLanguage)) echo 'Bienvenu !'; // Autorisé else header('location: error.php') // Non autorisé => Redirigé sur la page error.php ?>
A+
Gaerebut
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
9 févr. 2010 à 17:03
9 févr. 2010 à 17:03
Bonjour gaerebut,
dans ta technique est ce que c'est possible qu'un américain avec un son navigateur français voit le contenu?
Pour ma part c'est de la publicité que je vais afficher, ma régie publicitaire est française et me demande que ce soit que des visiteurs français cliquent sur les pub.
J'attends ta réponse, et merci encore.
dans ta technique est ce que c'est possible qu'un américain avec un son navigateur français voit le contenu?
Pour ma part c'est de la publicité que je vais afficher, ma régie publicitaire est française et me demande que ce soit que des visiteurs français cliquent sur les pub.
J'attends ta réponse, et merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
9 févr. 2010 à 17:14
9 févr. 2010 à 17:14
Je viens de vérifier et c'est effectivement ce que je pensai. Je cherche plus un système qui affiche seulement quand c'est du territoire français qu'on accède.
Si vous avez des idées?
Merci :)
Si vous avez des idées?
Merci :)
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
9 févr. 2010 à 17:18
9 févr. 2010 à 17:18
RE,
oui dans le cas ou ton américain configuré en Francais, il pourra y accéder ...
Faut alors détecter le pays en fonction de l'ip
Va faire un tour ici : https://cyberzoide.developpez.com/php4/ip-to-country/
A+
Gaerebut
oui dans le cas ou ton américain configuré en Francais, il pourra y accéder ...
Faut alors détecter le pays en fonction de l'ip
Va faire un tour ici : https://cyberzoide.developpez.com/php4/ip-to-country/
A+
Gaerebut
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
9 févr. 2010 à 22:21
9 févr. 2010 à 22:21
gaerebut merci encore une fois, mais j'ai pas trop compris comment cela fonctionne vraiment. J'ai essayer de differentes facons. je fait copier coller l'exemple puis j'exécute mais une erreur s'affiche.
<?php
/* extraction adresse IP du visiteur */
$ip = $_SERVER['REMOTE_ADDR'];
/* transformation IP */
$dotted = preg_split( "/[.]+/", $ip);
$ip2 = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
/* URL du serveur et paramètres à lui passer */
$url = "/get-country/?ip=".$ip2."&user=guest&pass=guest";
/* ouverture de la socket */
$fp = fsockopen ("www.ip-to-country.com", 80, &$errno, &$errstr, 30);
/* test si erreur à l'ouverture */
if (!$fp) {
/* affichage de l'erreur */
echo "$errstr ($errno)<br>\n";
} else {
/* envoi de la requête HTTP */
fputs ($fp, "GET $url HTTP/1.0\r\nHost: ip-to-country.com\r\n\r\n");
/* réception des données en retour */
while (!feof($fp)) {
/* extraction réponse */
$response .= fgets ($fp,128);
}
/* fermeture socket */
fclose ($fp);
}
?>
Voici l'erreur:
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/www/e61a8680e8b575431a3048f0c67a7f81/web/pub.php on line 10
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/www/e61a8680e8b575431a3048f0c67a7f81/web/pub.php on line 10
que faire s'il vous plait.
<?php
/* extraction adresse IP du visiteur */
$ip = $_SERVER['REMOTE_ADDR'];
/* transformation IP */
$dotted = preg_split( "/[.]+/", $ip);
$ip2 = (double) ($dotted[0]*16777216)+($dotted[1]*65536)+($dotted[2]*256)+($dotted[3]);
/* URL du serveur et paramètres à lui passer */
$url = "/get-country/?ip=".$ip2."&user=guest&pass=guest";
/* ouverture de la socket */
$fp = fsockopen ("www.ip-to-country.com", 80, &$errno, &$errstr, 30);
/* test si erreur à l'ouverture */
if (!$fp) {
/* affichage de l'erreur */
echo "$errstr ($errno)<br>\n";
} else {
/* envoi de la requête HTTP */
fputs ($fp, "GET $url HTTP/1.0\r\nHost: ip-to-country.com\r\n\r\n");
/* réception des données en retour */
while (!feof($fp)) {
/* extraction réponse */
$response .= fgets ($fp,128);
}
/* fermeture socket */
fclose ($fp);
}
?>
Voici l'erreur:
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/www/e61a8680e8b575431a3048f0c67a7f81/web/pub.php on line 10
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/www/e61a8680e8b575431a3048f0c67a7f81/web/pub.php on line 10
que faire s'il vous plait.
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
12 févr. 2010 à 12:58
12 févr. 2010 à 12:58
personne ne peut m'aider?
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
12 févr. 2010 à 15:06
12 févr. 2010 à 15:06
Rien ne s'affiche car tu n'a peut-être pas appelé les fonctions ?! lol
On sait jamais :p
A+
Gaerebut
On sait jamais :p
A+
Gaerebut
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
12 févr. 2010 à 18:20
12 févr. 2010 à 18:20
Gaerebut merci et merci :))
le seul petit (et grand) soucis c'est que je suis très mauvais en php, tu l'a remarqué. Comment dois-je faire pour l'appeler?
Je doit faire echo $variable;
mais quelle variable? S'il te plait.
le seul petit (et grand) soucis c'est que je suis très mauvais en php, tu l'a remarqué. Comment dois-je faire pour l'appeler?
Je doit faire echo $variable;
mais quelle variable? S'il te plait.
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
12 févr. 2010 à 18:29
12 févr. 2010 à 18:29
d'après une logique j'ai essayé
echo $pays;
mais ça na marche pas...
echo $pays;
mais ça na marche pas...
Snoopip
Messages postés
235
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
1 mai 2014
7
12 févr. 2010 à 20:57
12 févr. 2010 à 20:57
s'il vous plait...