$ _SERVER中的未定义索引[“REQUEST_METHOD”] ==“POST”

时间:2016-09-28 08:19:09

标签: php html

我有php的代码,当我运行然后显示错误消息

PHP注意:未定义的索引:esn / var / www / html / sat line 10

PHP注意:未定义的索引:lat / var / www / html / sat line 11

PHP注意:未定义的索引:lon / var / www / html / sat line 12

PHP注意:未定义的索引:status / var / www / html / sat line 13

每个人都进行了调用http://domains.com/sat/index.php?esn=value1&lat=value2&lon=value3&status=value4,调用这些参数的结果总是“NULL”。

我们可能会给这个案子一个解决方案。感谢

以下源代码错误:

if ($_SERVER["REQUEST_METHOD"] == "POST") 
    {
      $postText=file_get_contents('php://input');
      //collect value of input field
      $esn = $_POST['esn'];
      $lat = $_POST['lat'];
      $lon = $_POST['lon'];
      $status = $_POST['status'];
      fwrite($postText);
      fclose($FileHandle);

      if ($postText) 
      {
         echo "Nomor ESN: ".$esn."<br>";
         echo "Latitude: ".$lat."<br>";
         echo "Longitude: ".$lon."<br>";
         echo "status: ".$status."<br>";
      }else{
         echo "NULL";
      }    
    }

2 个答案:

答案 0 :(得分:1)

您的数据,即使您是通过表单发送的,现在也在URL中,因此它们位于$ _GET而不是$ _POST数组

答案 1 :(得分:0)

使用Post方法访问数据时使用GET方法。所以你得到的变量是null。 使用下面的代码来获取GET方法

if ($_SERVER["REQUEST_METHOD"] == "GET") 
    {
      $postText=file_get_contents('php://input');
      //collect value of input field
      $esn = $_GET['esn'];
      $lat = $_GET['lat'];
      $lon = $_GET['lon'];
      $status = $_GET['status'];
      fwrite($postText);
      fclose($FileHandle);

      if ($postText) 
      {
         echo "Nomor ESN: ".$esn."<br>";
         echo "Latitude: ".$lat."<br>";
         echo "Longitude: ".$lon."<br>";
         echo "status: ".$status."<br>";
      }else{
         echo "NULL";
      }    
    }