Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Javascript获取地理位置,并通过php将其保存到文本文件中_Javascript_Php_Geolocation - Fatal编程技术网

通过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);
?>