Jedynym sposobem na geolokalizacji na serverside byłoby użyć tabela odnośników dla adresu IP. Istnieją usługi, które zapewniają to za Ciebie, więc możesz to zrobić:
$ip = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
$url = "http://freegeoip.net/json/$ip";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($ch);
curl_close($ch);
if ($data) {
$location = json_decode($data);
$lat = $location->latitude;
$lon = $location->longitude;
$sun_info = date_sun_info(time(), $lat, $lon);
print_r($sun_info);
}
Nie zawsze będzie to jednak bardzo dokładne. W javascriptu będziesz miał dostęp do API geolokalizacji HTML5 lub Google Maps, ale odwrotne geokodowanie z Google wymaga użycia mapy zgodnie z TOS.
Erm, szerokość geograficzna to północ/południe, sport. – pp19dd
@ pp19dd ah, czy mam włączoną długość i szerokość geograficzną? –
szerokość i długość geograficzna w znacznym stopniu przychodzi w danym formacie, jeśli chcesz czegoś innego, musisz to sobie wyobrazić. – adeneo