通过Javascript获取地理位置,并通过php将其保存到文本文件中
我想得到客人的纬度和经度,并将它们保存到一个文本文件中 我用了这个:通过Javascript获取地理位置,并通过php将其保存到文本文件中,javascript,php,geolocation,Javascript,Php,Geolocation,我想得到客人的纬度和经度,并将它们保存到一个文本文件中 我用了这个: <html> <body> <?php $location = print ' <SCRIPT LANGUAGE="JavaScript"> window.onload=function(){ if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else
<html>
<body>
<?php
$location = print '
<SCRIPT LANGUAGE="JavaScript">
window.onload=function(){
if(navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else
{
alert("Geolocation is not supported by this browser.");
}
}
function showPosition(pos){
document.write("Location: "+pos.coords.latitude+","+pos.coords.longitude);
</script>
'
;
$Seb = "*******************" ;
$file = "save.txt";
$a = fopen($file, "a");
fwrite($a,$location."\r\n");
fwrite($a,$Seb."\r\n");
fclose($a);
?>
<form action="index.php">
<input type="submit" value="Refresh">
</form>
</body>
</html>
没有任何地理位置数据
有什么帮助吗?这完全不是它的工作原理。由于
javascript
是客户端,而PHP
是服务器端,所以您不能只按自己的方式来做。您需要将该信息从客户端浏览器发送到服务器。最常见的方法是使用ajax
发布javascript
生成内容
使用jQuery,它将非常简单:
在html文件中
<script>
window.onload=function(){
if(navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else
{
alert("Geolocation is not supported by this browser.");
}
}
function showPosition(pos){
$.post('saver.php',{'lat':pos.coords.latitude,'lng':pos.coords.longitude},function(res){
console.log(res);
});
}
</script>
window.onload=function(){
if(导航器.地理位置)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
其他的
{
警报(“此浏览器不支持地理位置”);
}
}
功能显示位置(pos){
$.post('saver.php',{'lat':pos.coords.latitude,'lng':pos.coords.longitude},函数(res){
控制台日志(res);
});
}
在saver.php中
<?php
print_r($_POST);
$a = fopen("save.txt", "a");
fwrite($a,"Location: $_POST[lat],$_POST[lng]\n*******************\n");
fclose($a);
?>
另外,如果您不能或不想使用jQuery,请查看有关如何在原始javascript中使用ajax的信息。我完全不懂这一点,但我只是运行了这段代码,它没有保存任何内容。要创建safe.txt,我必须做什么?首先,您应该检查您的浏览器是否支持地理定位。第二,如果它是开着的。第三,如果它向
saver.php
发送正确的请求。如果是这样的话,剩下的就只有PHP脚本的写权限了。
<?php
print_r($_POST);
$a = fopen("save.txt", "a");
fwrite($a,"Location: $_POST[lat],$_POST[lng]\n*******************\n");
fclose($a);
?>