salve
mi chiedevo se esistesse una funzione php per riconoscere il paese di provenienza di un dato utente
grazie
salve
mi chiedevo se esistesse una funzione php per riconoscere il paese di provenienza di un dato utente
grazie
Io consoco geoip ma e un modulo di apache.
ottimo il link e i suggerimenti
ma mi chiedevo 2 cose a questo punto
questa funzione è integrata sui server apache di default o c'è qualche aggiornamento che bisogna fare o roba simile?
in più ho letto in quel link che si usa:
Codice PHP:
geoip_country_name_by_name('www.example.com');
ma se al posto della provenienza di un sito volessi sapere quella dell'utente?
grazi emille
Allora per riconoscere la lingua solitamente se procede identificando la linga specifica del browser passata nello user-agent :
Quindi puoi esplodere gli accepted languages e controllare che nello user agent sia presente.Codice PHP:
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
/*
produce un output simile a :
Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
*/
Senno controlli semplicemente lo user agent te vedi in che lingua e' settato il browser dell'utente.
Io lo farei con una regexp e degli explode tipo :
O comunque una cosa simile e recuperi il codice iso della nazionalita'.Codice PHP:
echo "<pre>";
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
echo "<hr>";
$arr = array();
$ris = preg_match('/\\((.*)\\) /' , $_SERVER['HTTP_USER_AGENT'] , $arr );
$tks = explode( ";" , $arr[1] );
echo "\nUSER LANG =".$tks[3];
echo"</pre>";
Ovviamente non ho inserito i vari controlli etc ma quello spetta a te.
ah quindi la funzione geoip non serve a questo punto?
io vorrei fare un header()ad una pagina diversa a seconda se il codice iso è italiano o no,
quindi mi chiedo il codice iso italiano è standard ?
devo procedere cosi:
1- recupero codice iso
2-if ($codice iso= italiano;header(pagina in italiano)
3- else(header(pagina inglese))
giusto?
ti serve un database ip2location o ip2country oppure apri con un socket geoplugin.net e esplodi il risultato, gestendo il timeout in caso qualcosa vada male.
per ip2country avevo un database e controllavo l'appartenenza di un ip al range del paese, per essere più specifici putroppo il database diventa molto pesante (sui 70 mb).
ora uso geoplugin e non mi trovo male
http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM
Twitter http://twitter.com/#!/TrustWeb
LinkedIn http://it.linkedin.com/in/trustweb
cavolo troppo pesante
ma quindi i codici iso non sono fissi
se io controllo che il codice sia uguale a quello italiano semplicemente?
Per te sia importante proprio il paese o solo la lingua? Nel secondo caso sarebbe meglio buttarsi sulle impostazioni del browser perché lo può essere sempre un italiano all'estero o vice-versa. Nell'altro caso potresti usare l'API di MaxMind http://www.maxmind.com/app/geolitecountry
www.sitemeer.com » Quando un sito pare irraggiungibile
Se ti piace ci puoi trovare anche su Facebook
se voi lavorare sulla lingua, usi user agent, se vuoi fare geo location nasce tutta una questione
http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM
Twitter http://twitter.com/#!/TrustWeb
LinkedIn http://it.linkedin.com/in/trustweb