В продолжении статьи о определении местоположения посетителя по IP-адресу сделаем автозаполнение поля для ввода города.
Для определения города можно использовать библиотеку Sypex Geo, для того, чтобы закешировать результ ее работы будем использовать PHP сессии.
<?php
session_start();
if (!isset($_SESSION['city_name'])) {
$user_ip = @$_SERVER['REMOTE_ADDR'];
include_once __DIR__ . '/SxGeo/SxGeo.php';
$SxGeo = new SxGeo(__DIR__ . '/SxGeo/SxGeoCity.dat', SXGEO_BATCH | SXGEO_MEMORY);
$res = $SxGeo->getCityFull($user_ip);
if (!empty($res['city']['name_ru'])) {
$_SESSION['city_id'] = $res['city']['name_ru'];
}
}
Вывод формы
<form method="post" action="">
<label>Ваше имя:</label>
<input type="text" name="name" value="">
<label>Введите город:</label>
<input type="text" name="city" value="<?php echo $_SESSION['user_city_name']; ?>">
<button type="submit">Отправить</button>
</form>