从JavaScript访问PHP中的$ _POST变量

时间:2014-06-20 12:33:05

标签: javascript php post

我创建了一个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>

1 个答案:

答案 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>
相关问题