Как собрать данные посетителя сайта?

Здравствуйте!
Есть форма заявки с полями "номер телефона" и кнопки отправить. Как сделать чтобы при нажатии на кнопку запрос был добавлен на базу mysql с данныйми посетителя :
- Номер телефона
- Адрес (город проживание клиента который нажал на кнопку) и эти данные записать на БД
  • Вопрос задан
  • 1506 просмотров
Пригласить эксперта
Ответы на вопрос 1
copist
@copist
Empower people to give
Я нашёл в этом вопросе три технологических вопроса:

1. Про вычисление города
Есть форма заявки с полями "номер телефона" ... добавлен на базу mysql ... адрес (город проживание клиента который нажал на кнопку)

Если в форме нет поля для выбора страны и города, то можно вычислить приблизительное местоположение по IP адресу. Это неточная информация, ей нельзя доверять на 100%, потому что пользователь мог зайти на сайт через анонимные прокси. Желательно уточнить у него - "Вы точно из города X?".

Для автоматического вычисления гео-данных можно воспользоваться платной базой GEO данных сервиса MaxMind или платными открытыми веб-сервисами
Или бесплатными сервисами, которые возвращают данные с очень большой погрешностью, например вместо города возвращают страну :(
Пример получения информации через API MaxMind для языка PHP
<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;

// This creates the Reader object, which should be reused across lookups.
$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');

// Replace "city" with the appropriate method for your database, e.g., "country".
$record = $reader->city('128.101.101.101');

print($record->country->isoCode . "\n"); // 'US'
print($record->country->name . "\n"); // 'United States'
print($record->country->names['zh-CN'] . "\n"); // '美国'

print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'

print($record->city->name . "\n"); // 'Minneapolis'

print($record->postal->code . "\n"); // '55455'

print($record->location->latitude . "\n"); // 44.9733
print($record->location->longitude . "\n"); // -93.2323


Пример получения информации об IP адресе на языке PHP через открытый сервис ipinfo.io
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
echo $details->city; // -> "Mountain View"


Пример запроса:
$ curl ipinfo.io/8.8.8.8

Пример ответа:
{
  "ip": "8.8.8.8",
  "hostname": "google-public-dns-a.google.com",
  "loc": "37.385999999999996,-122.0838",
  "org": "AS15169 Google Inc.",
  "city": "Mountain View",
  "region": "CA",
  "country": "US",
  "phone": 650
}


2. Про передачу данных с веб-страницы
Как сделать чтобы при нажатии на кнопку запрос был добавлен на базу

Можно отправить форму на сервер методом POST, а можно передать по технологии AJAX.
learn.javascript.ru/ajax-intro

3. Про сохранение в базу данных
Как сделать чтобы ... эти данные записать на БД

Язык программирования не указан.Уточните, что именно эта информация нужна - я напишу больше.
Общий алгоритм: извлечь номер телефона и IP адрес из запроса, вычислить город по IP адресу, записать результаты в базу данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы