PHP:$ _GET返回未定义的索引

时间:2017-09-10 19:36:42

标签: php

自从我开始学习PHP以来已经有几个月了,到目前为止,我已经遇到了几十个问题,幸运的是我能够修复它们,但是今天和问题,不是重复的问题,可能不同,我已经阅读了有关此问题的所有Stack Overflow问题,但它们没有任何帮助。

我收到以下错误:

  

注意:第99行的/Applications/XAMPP/xamppfiles/htdocs/index.php中的未定义索引:city

这是我的代码:

<?php

    $weather = "";
    $error = "";

    if ($_GET['city']) {

     $urlContents = file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".urlencode($_GET['city']).",uk&appid=Hidden");

        $weatherArray = json_decode($urlContents, true);

        if ($weatherArray['cod'] == 200) {

            $weather = "The weather in ".$_GET['city']." is currently '".$weatherArray['weather'][0]['description']."'. ";

            $tempInCelcius = intval($weatherArray['main']['temp'] - 273);

            $weather .= " The temperature is ".$tempInCelcius."&deg;C and the wind speed is ".$weatherArray['wind']['speed']."m/s.";

        } else {

            $error = "Could not find city - please try again.";

        }

    }
?>

我也在使用xampp,php.ini也在那里。

1 个答案:

答案 0 :(得分:2)

从您的代码语法中我认为您的问题在于您获取temp的方式。您的错误表明它无法在city中找到city的索引;所以基本上没有设定。在运行代码之前添加$_GET检查,以防止出现任何错误:

isset

这将阻止代码运行并避免任何错误;现在检查您的网址,确保其中包含:if ( isset($_GET['city']) ) { $urlContents = file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".urlencode($_GET['city']).",uk&appid=Hidden"); //... } 。这应该可以解决错误。