Skip to content

Instantly share code, notes, and snippets.

@max-kk
Last active October 5, 2016 21:09
Show Gist options
  • Save max-kk/a63fb03e4522a6a90d87 to your computer and use it in GitHub Desktop.
Save max-kk/a63fb03e4522a6a90d87 to your computer and use it in GitHub Desktop.
How to get user city with PHP + AJAX
<!-- ФАЙЛ должен быть .php -->
<!-- // Для начала подключим бибилиотку jQuery и jQuery cookie для сохранения города в Cookie -->
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://yandex.st/jquery/cookie/1.0/jquery.cookie.min.js"></script>
<?php
// Тперь получим ip посетителя и создадим переменую,
// что-бы скрипт мог ее использовать
if (isset($_SERVER['HTTP_X_REAL_IP'])) {
$ip = $_SERVER['HTTP_X_REAL_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
?>
<script>
var user_ip = "<?php echo $ip ?>";
</script>
<!-- // Теперь нужно подключить сам скрипт, но мы этого не будет делать,
и для примера пропишем код прямо здесь -->
<!-- <script src="js/script.js"></script> -->
<script>
// Проверим куку
if (!$.cookie('city') && user_ip) {
// Если нет, делаем запрос
jQuery.get(
"http://api.sypexgeo.net/json/" + user_ip,
[],
function(data) {
//console.log(data);
// Запомним в куках город пользователя
$.cookie('city', data.city.name_ru, {
expires: 30,
path: '/'
});
// Передадим его в функцию, которая что-то сделает с ним
show_user_city(data.city.name_ru);
},
'json'
)
} else {
// Город есть в куках, передадим его в функцию, которая что-то сделает с ним
show_user_city ( $.cookie('city') );
}
function show_user_city (city_name) {
// Для примера выведем город в консоль
console.log(city_name);
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment