Para armazenar os dados de geolocalização em uma variável PHP, você precisará enviar os dados do JavaScript para o servidor usando uma requisição AJAX. A seguir, vou demonstrar como fazer isso:
- Crie uma página HTML com JavaScript para obter a localização e enviá-la para o servidor.
- Crie um script PHP para receber os dados e armazená-los em uma variável PHP.
Passo 1: Página HTML com JavaScript
<!DOCTYPE html>
<html>
<head>
<title>Georreferenciamento</title>
</head>
<body>
<h1>Georreferenciamento no Navegador</h1>
<p id="status">Aguardando permissão...</p>
<script>
// Verifique se a API de Geolocalização é suportada
if ("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(success, error);
} else {
document.getElementById("status").textContent = "Geolocalização não é suportada por este navegador.";
}
// Função de sucesso
function success(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
// Atualize a interface com os dados de localização
document.getElementById("status").textContent = `Latitude: ${latitude}, Longitude: ${longitude}`;
// Envie os dados para o servidor via AJAX
var xhr = new XMLHttpRequest();
xhr.open("POST", "save_location.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
xhr.send("latitude=" + latitude + "&longitude=" + longitude);
}
// Função de erro
function error() {
document.getElementById("status").textContent = "Não foi possível obter a localização.";
}
</script>
</body>
</html>
Passo 2: Script PHP para receber os dados
<?php
// save_location.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['latitude']) && isset($_POST['longitude'])) {
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];
// Crie a variável $geo como um array associativo
$geo = array("latitude" => $latitude, "longitude" => $longitude);
// Para fins de demonstração, vamos apenas exibir os dados
// Em um cenário real, você pode armazenar isso em uma sessão, banco de dados, etc.
echo "Dados de localização recebidos: ";
echo "Latitude: " . $geo["latitude"] . ", Longitude: " . $geo["longitude"];
// Se precisar usar a variável $geo em outro lugar, você pode fazer o seguinte:
// session_start();
// $_SESSION['geo'] = $geo;
} else {
echo "Dados de localização não recebidos corretamente.";
}
} else {
echo "Método de requisição inválido.";
}
Explicação do Código
- Página HTML:
- O JavaScript obtém a localização do usuário.
- Envia os dados de latitude e longitude para
save_location.php
usando AJAX.
- Script PHP (
save_location.php
):- Recebe os dados enviados via POST.
- Armazena os dados de latitude e longitude na variável PHP
$geo
. - Exibe os dados para fins de demonstração. Em um cenário real, você pode armazená-los em uma sessão, banco de dados, etc.
Com esses dois passos, você pode obter a geolocalização do usuário no navegador e armazená-la em uma variável PHP no servidor.