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

Автоматическое заполнение поля «город» в форме по 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, обновлено 04.12.2021
4984

Комментарии 1

dam bosin dam bosin
3 марта 2021 в 20:58
Sypex Geo ошибает города!

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

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

Проверка данных регулярными выражениями
Сборник регулярных выражений с примерами на PHP для проверки данных из полей форм.
20083
+8
Маски ввода для текстовых полей
Применение масок ввода у полей форм значительно упрощает их использование, уменьшает количество ошибок и приводит...
109560
+8
Установака recaptcha v2 на сайт
Пример подключения ReCaptcha на php сайт, регистрация в API, вставка кода в форму, проверка правильности введенной...
34466
+3
Очистка данных из форм в PHP
Для предотвращения XSS, SQL-инъекций и других атак, данные полученные из форм нужно чистить. Простое экранирования кавычек не достаточно, нужен комплексный подход по типу данных.
12577
+8
Как получить IP посетителя в PHP
Функция для определения IP-адреса клиента...
21468
+2
Обработка и вывод рейтинга в PHP
В продолжении статьи о верстки рейтинга, рассмотрим PHP-скрипты системы отзывов и рейтинга в интернет-магазине.
21054
+9