fredericmaill
Messages postés144Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention22 mars 2006 18 janv. 2006 à 09:23
J'ai réalisé cette fonction pour un formulaire, les régions ainsi récupérées vont alimenter une liste déroulante. Afin d'effectué des recherche par critère de région pour avoir que la liste des régions utiles.
J'avais pensé à la localisation a partir de l'IP, mais cette liste de client, car il s'agit de client, peut être alimenté dans différent site.
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 18 janv. 2006 à 01:00
D'habitude se genre de script sert à localiser un utilisateur selon d'où il vient ,donc avec le genre de traitement que j'ai voulu faire on aurait pas à demande le code postal de l'utilisateur pour avoir les infos. Pour le script le WHOIS c'est plus "who is ?" parce que ça utilise la base de donnée du serveur et non les base de donnée de WHOIS. Pour se que je présente l'avantage c'est que t'as pas besoin d'avoir toute les bases de données pour les infos sur chaque pays ,IP et autres infos qui sont utiles sur les utilisateurs. Prends par exemple quelqu'un qui veut faire un site qui s'adresse à tout le monde et qui veut accumuler des données sur les utilisateurs qui vont sur sont site. Si il le fait sur un site gratuit il n'aura probablement pas assez d'espace (des sites gratuits et pas de pub ça donne pas grand espace) ou de ressources disponible (MySQL c'est pas sur tout les serveurs qui ont PHP).
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 16 janv. 2006 à 09:37
Arto_8000 => oui, mais ce n'est pas là le but. Le but est simplement de trouver une région en fonction d'un code postal, ici. Et puis, je préfère calculer ça, si c'est possiblé, à partir d'une fonction sur mon site, plutôt que de devoir me connecter à un autre site pour avoir cette réponse ;-)
Pour WHOIS, la population du pays...??
Enfin, sinon, le service que tu montres a l'air sympa, en effet :-)
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 16 janv. 2006 à 02:57
Plus simple pour avoir la région du visiteur :
<HTML>
<HEAD>
<TITLE>Where are you ?</TITLE>
<SCRIPT language="javascript" type="text/javascript" src="http://gd.geobytes.com/Gd?variables=GeobytesRegion"></SCRIPT>
<SCRIPT language="javascript" type="text/javascript">
alert(sGeobytesRegion);
</SCRIPT>
</HEAD>
</HTML>
Je ne sais pas si j'utilise la bonne variable, mais chez moi ça retourne Quebec.
J'ai trouver se merveilleux outil de WHOIS qui peut retourner à peu près n'importe quoi sur l'utilisateur, même la population de son pays et la ville. Pour plus d'info :
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 15 janv. 2006 à 12:32
Je suis de l'avis de Coucou et de Kankrelune. A moins d'avoir un besoin express de ces données dans une bdd, je ne vois pas l'intérêt de faire des requêtes pour ça.
Et j'opterais plutôt aussi pour le tableau, qui donnera un code moins long, et plus clair. Et on peut s'amuser (mon code renvoie aussi le nom du département par exemple).
cs_dume
Messages postés3Date d'inscriptionsamedi 10 novembre 2001StatutMembreDernière intervention14 janvier 2006 14 janv. 2006 à 22:41
Juste pour info, le code postal ne comporte que des chiffres, et pour la Corse il faut lire 20 et non pas 2A ou 2B...
Quant au code, j'opterais pour ma part, pour une requête sql sur une table de départements.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 14 janv. 2006 à 17:57
moi j'opterais pour le switch car dans le cas d'une recherche de région comme pour cette source si on prend un tableau on répète la même entrée pour plusieurs départements alors qu'avec un switch on peut les grouper... par contre dans le cas d'une recherche de département c'est clair qu'un tableau sera plus adapté... .. .
@ tchaOo°
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 janv. 2006 à 10:39
salut
tableau ou switch, seraient de bien meilleurs solution, moi je choisirais le tableau car il serait moins répétitif que le switch, plus générique, et qu'on pourrait se servir du tazbleau pour rentrer ces données dans une base de donnée...
mais cette source là est très mal codée... seul la liste des dépatrements est interessante...
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 14 janv. 2006 à 01:52
euuh pourquoi ne pas passer par un tableau ?
function region($cp)
{
if(!is_numeric($cp)){
return false;
}
function region($cp)
{
if(!is_numeric($cp)){
return false;
}
switch($cp){
case 75:
case 77:
case 78:
case 91:
case 92:
case 93:
case 94:
case 95:
return 'Ile-de-France';
break;
la suite... .. .
default:
return false;
break;
}
}
lefter utiliser MySQL ne sera pas plus simple et surement pas plus rapide... de plus je ne vois pas l'interet de créer une table et de générer des requetes juste pour retrouver une région c'est totalement inutile... .. .
@ tchaOo°
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 13 janv. 2006 à 18:23
Ba je ne suis pas sur qu'une requete SQL, soit plus lente. Ce n'est qu'une idee, je n'ai pas essayer.
A++
lefter
Messages postés63Date d'inscriptionlundi 7 juin 2004StatutMembreDernière intervention16 mai 2009 13 janv. 2006 à 11:21
Serai plus simple et plus rapide de faire une base de donnée, et d'y faire une recherche par une requête!
(Ton exemple est valable si ton fournisseur d'accès ne met pas à disposition une base de donnée MySql ou autre, sinon je ne vois pas l'intéret)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 13 janv. 2006 à 11:01
Hello,
bon, je vais laisser ce source parce que je me doute qu'il sera utile aux plus grands débutants...Mais s'il te plait, change le!
Le code est vraiment moche...
les multiples retour, l'absence de vérifications sur le paramètre passé, les if () inutiles, les guillemets pour entourer les variables de type chaîne, la balise <?...etc
Je te donne un indice (un gros) :
<?php
function getRegion ($cp) {
if (false === is_numeric ($cp) || 2 > strlen ((string)$cp)) {
return false;
}
$dpt = substr ($cp, 0, 2);
$aReg array (0> 'Provence-Alpes-Côte d\'Azur',
1 => 'Picardie'
);
$aDpts array ('13'> array (0 => 'Bouches-du-Rhône', ),
'04' => array (0 => 'Alpes-de-haute-Provence'),
'80' => array (1 => 'Somme')
);
return $aRetour array ('dept'> $aDpts[$dpt][key ($aDpts[$dpt])], 'reg' => $aReg[key ($aDpts[$dpt])]);
}
18 janv. 2006 à 09:23
J'avais pensé à la localisation a partir de l'IP, mais cette liste de client, car il s'agit de client, peut être alimenté dans différent site.
18 janv. 2006 à 01:00
16 janv. 2006 à 09:37
Pour WHOIS, la population du pays...??
Enfin, sinon, le service que tu montres a l'air sympa, en effet :-)
16 janv. 2006 à 02:57
<HTML>
<HEAD>
<TITLE>Where are you ?</TITLE>
<SCRIPT language="javascript" type="text/javascript" src="http://gd.geobytes.com/Gd?variables=GeobytesRegion"></SCRIPT>
<SCRIPT language="javascript" type="text/javascript">
alert(sGeobytesRegion);
</SCRIPT>
</HEAD>
</HTML>
Je ne sais pas si j'utilise la bonne variable, mais chez moi ça retourne Quebec.
J'ai trouver se merveilleux outil de WHOIS qui peut retourner à peu près n'importe quoi sur l'utilisateur, même la population de son pays et la ville. Pour plus d'info :
http://www.geobytes.com/GeoDirection.htm
15 janv. 2006 à 12:32
Et j'opterais plutôt aussi pour le tableau, qui donnera un code moins long, et plus clair. Et on peut s'amuser (mon code renvoie aussi le nom du département par exemple).
14 janv. 2006 à 22:41
Quant au code, j'opterais pour ma part, pour une requête sql sur une table de départements.
14 janv. 2006 à 17:57
@ tchaOo°
14 janv. 2006 à 10:39
tableau ou switch, seraient de bien meilleurs solution, moi je choisirais le tableau car il serait moins répétitif que le switch, plus générique, et qu'on pourrait se servir du tazbleau pour rentrer ces données dans une base de donnée...
mais cette source là est très mal codée... seul la liste des dépatrements est interessante...
14 janv. 2006 à 01:52
function region($cp)
{
if(!is_numeric($cp)){
return false;
}
$regions = array(
'75' => 'Ile-de-France',
'77' => 'Ile-de-France',
'78' => 'Ile-de-France',
'91' => 'Ile-de-France',
'92' => 'Ile-de-France',
'93' => 'Ile-de-France',
'94' => 'Ile-de-France',
'95' => 'Ile-de-France',
la suite... .. .
);
if(isset($regions[$cp])){
return $regions[$cp];
} else {
return false;
}
}
ou même un switch...
function region($cp)
{
if(!is_numeric($cp)){
return false;
}
switch($cp){
case 75:
case 77:
case 78:
case 91:
case 92:
case 93:
case 94:
case 95:
return 'Ile-de-France';
break;
la suite... .. .
default:
return false;
break;
}
}
lefter utiliser MySQL ne sera pas plus simple et surement pas plus rapide... de plus je ne vois pas l'interet de créer une table et de générer des requetes juste pour retrouver une région c'est totalement inutile... .. .
@ tchaOo°
13 janv. 2006 à 18:23
A++
13 janv. 2006 à 11:21
(Ton exemple est valable si ton fournisseur d'accès ne met pas à disposition une base de donnée MySql ou autre, sinon je ne vois pas l'intéret)
13 janv. 2006 à 11:01
bon, je vais laisser ce source parce que je me doute qu'il sera utile aux plus grands débutants...Mais s'il te plait, change le!
Le code est vraiment moche...
les multiples retour, l'absence de vérifications sur le paramètre passé, les if () inutiles, les guillemets pour entourer les variables de type chaîne, la balise <?...etc
Je te donne un indice (un gros) :
<?php
function getRegion ($cp) {
if (false === is_numeric ($cp) || 2 > strlen ((string)$cp)) {
return false;
}
$dpt = substr ($cp, 0, 2);
$aReg array (0> 'Provence-Alpes-Côte d\'Azur',
1 => 'Picardie'
);
$aDpts array ('13'> array (0 => 'Bouches-du-Rhône', ),
'04' => array (0 => 'Alpes-de-haute-Provence'),
'80' => array (1 => 'Somme')
);
return $aRetour array ('dept'> $aDpts[$dpt][key ($aDpts[$dpt])], 'reg' => $aReg[key ($aDpts[$dpt])]);
}
print_r (getRegion ('13100'));
?>