• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Aplikacja internetowa - problem z PHP

Object Storage Arubacloud
0 głosów
135 wizyt
pytanie zadane 27 czerwca 2017 w PHP przez vasquez Początkujący (480 p.)

Hej

Piszę aplikację, która polega na wpisaniu jakiegoś miasta, a ona wypiszę pogodę.

Mam problem z PHP wypisuje mi takie dwa błędy: 

Notice: Undefined index: city in C:\xampp\htdocs\myPHP\projectPHP\index.php on line 3

Notice: Undefined variable: weather in C:\xampp\htdocs\myPHP\projectPHP\index.php on line 101

Nie wiem czy to jest wina kodu czy czegoś innego. Robię ta aplikacje na lokalnym serwerze (XAMPP) może to jest przyczyną. 

<?php
    
   if($_GET['city'])
   {
       $forecastPage = file_get_contents("http://www.weather-forecast.com/locations/London/forecasts/latest");
       $PageArray = explode ('3 Day Weather Forecast Summary:</b><span class="read-more-small"><span class="read-more-content"> <span class="phrase">', $forecastPage);
       $SecondPageArray = explode ('</span></span></span>', $PageArray [1]);
       $weather = $SecondPageArray[0];
   }

?>


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">

      <title>Weather Scraper</title>
    <style type="text/css">
          
        html 
        { 
          background: url(background.jpg) no-repeat center center fixed; 
          -webkit-background-size: cover;
          -moz-background-size: cover;
          -o-background-size: cover;
          background-size: cover;
        }

        body
        {
            background: none;
        }

        #container
        {
            text-align: center;
            margin-top: 300px;
        }

        h1
        {
            font-size: 50px;
            margin: 0;
        }

        h2
        {
            margin: 0;
        }

        #city
        {
            border:none;
            padding: 10px;
            width: 450px;
            border-radius: 5px;
            margin-top: 30px;
        }

        #button
        {
            border:none;
            border-radius: 5px;
            margin-top: 20px;
            font-size: 25px;
            padding: 5px 10px;
            background-color:#138cc4;
        }

        #button:hover
        {
            background-color:#36a1d2;
        }

        #weather
        {
            background-color: #36d162;
            border-radius: 5px;
            width: 450px;
            margin: 0 auto;
            color: #1e7235;
        }
    </style>
      
  </head>
  <body>
    
       <div id="container">
        <h1>What's The Weather?</h1>
        <h2>Enter the name of a city.</h2>
        <form method="get">
        <input type="text" id="city" name="city" placeholder="Eg. London, Tokyo">
        <p><button type="button" id="button">Submit</button></p>
        </form>
        <div><?php
            if ($weather)
            {
                echo '<div id="weather">'.$weather.'</div>';
            }
        ?></div>
      </div>


    
  </body>
</html>

 

1 odpowiedź

–1 głos
odpowiedź 27 czerwca 2017 przez koder12345 Obywatel (1,570 p.)
wybrane 27 czerwca 2017 przez vasquez
 
Najlepsza

Kod  działa tak, Jak go napisałeś. Po prostu w momencie pierwszego uruchomienia skryptu nie istnieje jeszcze zmienna typu get o nazwie(indexie) 'city'. aby uniknąć takiego zdarzenia należy wyciszyć błędy zmiennej $city a wtedy wszystko powinno działać.

np.

<?php
if(@$_get['city']
{
//tu reszta kodu
}

...
?>

 

komentarz 27 czerwca 2017 przez vasquez Początkujący (480 p.)

Dziękuję bardzo za wyjaśnienie. Taka prosta sprawa laugh

1
komentarz 27 czerwca 2017 przez damenox Obywatel (1,400 p.)

Witam,

Jeszcze lepszym rozwiązaniem byłoby użycie funkcji isset()

http://php.net/manual/pl/function.isset.php

W tym wypadku

<?php
if(isset($_GET['city'])){
// kod
}

 

Pozdrawiam

Podobne pytania

0 głosów
1 odpowiedź 162 wizyt
0 głosów
1 odpowiedź 245 wizyt
0 głosów
1 odpowiedź 285 wizyt

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...