<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} = ;

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