rootovich1
@rootovich1

JS не отправляет данные. Почему?

Всем привет. У меня не работает код , предположительно JS. Буду благодарен , если поможете.
Я хочу получить геолокацию пользователя, а точнее его latitude и longitude , передать эти значения на сервер и сохранить в файл.

На стороне клиента.
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>test</title>
  <script type="text/javascript">
  	navigator.geolocation.getCurrentPosition(
   function(position) 
   {
      location.replace('".$_SERVER['PHP_SELF']."?loged=1&w='+position.coords.latitude+'&h='+position.coords.longitude);
   }
);
</script>
 </head>
 <body>
 </body>
</html>

Тут я сделал редирект на текущую страницу , затем передал GET запросом параметры position.coords.latitude и position.coords.longitude

На сервере.
<?
$fopen = fopen ("logs.txt", "a+");
foreach ($_GET as $key => $value)
{
fputs ($fopen, "$key $value");
}

fclose ($fopen);
?>

На сервере происходит получение значения каждой переменной. Осуществляется задумка циклом foreach. Затем все записывается в файл.
Итог: Тестировал на локальном сервере. Данные не записываются. Затем пробовал на хостинге , там даже нет запроса польльзователю на обработку геолокации, т.е JS не отрабатывает.
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
rootovich1
@rootovich1 Автор вопроса
Сам ответил на свой вопрос.
Как оказалось , navigator.geolocation.getCurrentPosition работает в большинстве браузеров только с https.
В index.html:
navigator.geolocation.getCurrentPosition(
   function(position) {
   	var latitude = position.coords.latitude;
   	var longitude = position.coords.longitude;
   	
    location.href = "https://link/index.php?latitude="+latitude+"longitude"+longitude;      
    });

В index.php ничего не менял. Все работает.
Всем спасибо за помощь.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы