我创建了一个Android应用程序,它通过HTTP post发送两个纬度和经度值字符串,然后由PHP代码获取并存储在变量中。理论上,这些变量应该被一些JavaScript代码所采用。然而,虽然我知道PHP代码正在获取字符串,因为我可以将它们写入不同的html文件,每当我尝试提醒()我存储字符串的JavaScript变量的值时,我只是得到一个空白警报。这是我的PHP和JavaScript代码。任何帮助表示赞赏!
<?php
$latitude = $_POST["Latitude"];
$longitude = $_POST["Longitude"];
$dateTime = date('m/d/y h:i:s A');
file_put_contents("locationData.html", $latitude, FILE_APPEND);
?>
<html>
<title>Find My Location</title>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
#map-canvas { width: 100% }
</style>
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=(My api key removed for privacy)">
</script>
<script type="text/javascript">
var latitude = "<?php echo $latitude?>";
alert(latitude);
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(29.6520, -82.3250),
zoom:10
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<body>
<head><strong>Recent Locations</strong></head>
<div id="map-canvas"/>
</body>
答案 0 :(得分:0)
在上面的代码中,我没有看到为什么没有向用户发出警报的原因。但是我做了一些我认为你应该实现的更改来防止XSS和错误检查。在使用它们之前,您应该检查$_POST
变量是否存在。这可能就是为什么它只返回一个空字符串。
<?php
function latlong_xss_check($value) {
$value = strip_tags($value);
if(!is_numeric($value)) {
return 0;
}
return $value;
}
if(isset($_POST['Latitude'],$_POST['Longitude'])) {
$latitude = latlong_xss_check($_POST['Latitude']);
$longitude = latlong_xss_check($_POST['Longitude']);
}else{
$latitude = 0;
$longitude = 0;
}
?>
<script>
var latitude = "<?php echo $latitude; ?>";
var longitude = "<?php echo $longitude; ?>";
alert(latitude + ' : ' + longitude);
</script>