<RESOLVIDO> Localizacao de usuario

Ola pessoal !!!

mais uma vez preciso de uma ajuda de voces.

Estou precisando obter a localizacao do usuario, tipo a cidade onde ele esta teclando. Bem,
achei varios exemplos, mas minha falta de conhecimento esta empacando o meu projeto.

Entao,

descobri esta funcao em ajax, e a mesma funciona perfeito. O problema que nao estou conseguindo colocar ela em uma variavel PHP.

EX:

Country:
State:
City:
Latitude:
Longitude:
IP:

//----------

obs: preciso colocar em uma variavel PHP tipo: $input = '

City: ';

usei alguns comando PHP, o mais proximo foi: trim(strip_tags($input, ‘

’));

o objetivo, e’ pesquisar esta variavel no banco de dados.

obrigado.

grava um cookie com o javascript com os dados e recupera esse cookie pelo php.

Haroldo, mais uma vez obragado pela resposta.

Estou quebrando a cabeca, aqui.
Pelo que pesquisei, sera uma otima opcao!
O problema que nao sei fazer, estou tentando aqui…

com jquery:

$.cookie(“NomeDoCookie”,“ValorDoCookie”);

com php:

$cookie = $_COOKIE[‘NomeDoCookie’];

ficaria assim !?

?>

$.ajax({
url: “https://geoip-db.com/jsonp”,
jsonpCallback: “callback”,
dataType: “jsonp”,
success: function( location ) {
$(’#country’).html(location.country_name);
$(’#state’).html(location.state);
$(’#city’).html(location.city);
$(’#latitude’).html(location.latitude);
$(’#longitude’).html(location.longitude);
$(’#ip’).html(location.IPv4);

                                    <-- ficaria aqui ? -->
				$.cookie("cidade", [location.city] + ", "+ [location.state]);

				if(routes[location.city]){
				  alert('tem sua cidade no array! => link salvo no array para redirecionar: '+ routes[location.city]);
				  window.location.href = routes[location.city];
				}


			}          
		}); 		   
    </script>
<?php echo $_COOKIE['cidade']; ?>

$.cookie requer o plugin incluso no código.

Em aplicações do tipo blank necessita inclusão da biblioteca jquery.

Então vamos a um código que dispensa o plugin cookie jquery.

OnExecute de uma aplicação blank:

If (!isset($_COOKIE['cidade'])) {

?><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
       $.ajax({
            url: "https://geoip-db.com/jsonp",
            jsonpCallback: "callback",    
            dataType: "jsonp",
            success: function( location ) {
		document.cookie = "país=País: "+[location.country_name]+", "+[location.country_code];
	        document.cookie = "cidade=Cidasde,Estado: "+ [location.city]+", "+[location.state];
		document.cookie = "postal=CEP: "+[location.postal];
		document.cookie = "coordenadas=Coordenadas: "+[location.latitude]+", "+[location.longitude];
		document.cookie = "ipv4=IPV4: "+[location.IPv4];
            }          
         });          
</script><?php
   	sc_redir(blank_user_location);

}Else{
	echo  $_COOKIE['país']."<br>";
	echo  $_COOKIE['cidade']."<br>";
	echo  $_COOKIE['postal']."<br>";
	echo  $_COOKIE['coordenadas']."<br>";
	echo  $_COOKIE['ipv4']."<br>";;
}

Nota: No exemplo acima o cookie será excluso ao fechar o navegador. O navegador do usuário precisará de cookies ativos na página em questão.

O código pode ser melhorado usando mais Ajax.

A app de controle login use o código JS em Javascript/form/onload.
No menu o $_COOKIE estará disponível para você salvar no banco de dados.

Na prática:

https://v9.infinitusweb.com.br/forum_sc/blank_user_location/

TAGS: Haroldo, Cookie, Localização, Usuário, PHP, Javascript, Ajax, Jquery, Blank

Haoldo,
muito obrigado !!!

Eu estou usando em um formulario no onLoad, entao ficou assim:

?>

<?php ?>

// aqui, eu estou quebrando o resultado do COOKIE criado.
$cook = explode(’,’,$_COOKIE[‘cidade’]);
$cidade= $cook[0];
$estado= $cook[1];

** este e’ o resultado que eu gostaria…

$('#country').html(location.country_name); $('#state').html(location.state); $('#city').html(location.city); $('#latitude').html(location.latitude); $('#longitude').html(location.longitude); $('#ip').html(location.IPv4);

Esse código não precisa a não ser que queira apresentar esses valores na tela e esses seletores estejam criados.

Se os seletores não foram criados vai causar erro no console javascript.

ja fiz a correcao !!!

Fantastico, muito obrigado !

  • o mais gostoso desta profissao, e’ ver o resultado.
    Quebrando a cabeca, aqui e cada vez que percebo que sei alguma coisa, vejo que
    tenho muito que APRENDER.

Obrigado, obrigado… Deus abencoe voce!

Compartilhe aí como ficou o código e em qual evento colocou no formulário…

Joelton,
entao na minha situação, estou usando em um formulário. Precisava fazer a localização do usuário para
o cliente nao ter que digitar o nome da cidade corrente.

  1. no grid de consulta - onScript, coloquei chamei a localização.
  1. coloquei o cookie em uma variável global e transferi, para um formulario ligado ao grid.
<? // aqui, eu estou quebrando o resultado do COOKIE criado. $cook = explode(',',$_COOKIE['cidade']); $cidade= $cook[0]; $estado= $cook[1]; [glo_localizacao] = $cidade .','. $estado; ?>

Muito interessante…

Haroldo ou Pessanha, sabem a forma de melhorar a longitude e latitude…? Ele não bate correto…
Obrigado por compartilhar…

Eu estava pensando em usar esta localização para restringir o uso do sistema somente nesta localização… mas precisava ser mais preciso…

pelos testes que eu fiz as coordenadas são determinadas pela localização do ip da operadora.
Para localização “+precisa” necessita capturar GPS do dispositivo onde o browser é aberto (não é esse o caso).

exatamente isso Haroldo, mas
para mim, somente precisava da cidade e o estado do IP que o
usuário esta teclando.

É verdade Haroldo… estou no Espírito Santo, acessei pelo celular, mostrou a cidade do Rio de Janeiro…
Realmente é o ip da operadora…

Sou uma negação em javascript…
Como posso passar a longitude para um campo…
Veja o script…

?>

<body onLoad="getLocation()">



<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude;
}
</script>
</body>

<?php

{longitude} = ;
1 Curtida

Opa… graças a a ajuda de um colega do grupo, eu consegui… fica aí para futuras consultas…

?>

<body onLoad="getLocation()">



<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "<br>Longitude: " + position.coords.longitude
 $("#id_sc_field_longitude").val(position.coords.longitude);
}
	
</script>
</body>

<?php
2 Curtidas

muito otimo !!!

obrigado por compartilhar… ja estou usando o seu codigo!!!

Boa noite…
sou novo no SC e conheço nada de php/html e estou quebrando a cabeça com um pequeno detalhe parece simples mas esta tirando os meus poucos cabelos.
A ideia seria o usuario fazer login em uma aplicação web ou mobile e eu pego a latitude e longitude atual dele e guardo na base de dados.
Tentei usar o codigo do colega acima joelton mas não retorna nada.

será que vocês podem me ajudar em uma duvida.
criei uma aplicação blank e coloquei o codigo:
clico no botão mas não faz nada não traz lat/long atual.
O que eu preciso é pegar a latitude e longitude atual e salvar em uma base mysql.
Por favor, pode me ajudar.
Muito obrigado

Olá meu amigo,
Ando afastado do fórum por falta de tempo, mas esta função explora o html5, e para o seu funcionamento somente se o endereço estiver com https ativo, pois ele fará a pergunta ao usuário se permite a localização.