Автоматическое заполнение поля «город» в форме по IP адресу

В продолжении статьи о определении местоположения посетителя по 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'];
	}
}
PHP

Вывод формы:

<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>
HTML

Результат работы скрипта:

02.10.2020, обновлено 15.10.2020

Комментарии

, чтобы добавить комментарий.

Другие публикации

Сборник регулярных выражений с примерами на PHP для проверки данных из полей форм.
3719
+1
Применение масок ввода у полей форм значительно упрощает их использование, уменьшает количество ошибок и приводит...
36845
0
Пример подключения ReCaptcha на php сайт, регистрация в API, вставка кода в форму, проверка правильности введенной...
4423
+1
Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.
2258
+3
Функция для определения IP-адреса клиента...
2115
+2
В продолжении статьи о верстки рейтинга, рассмотрим PHP-скрипты системы отзывов и рейтинга в интернет-магазине.
4571
0