X
ďťż

[PHP] Parser zawsze sypie przy ostatniej linijce (</html>)

       

Podstrony


telcocafe

Witam,
Dopiero uczę się PHP, więc proszę o odrobinę wyrozumiałości jeśli mój błąd jest prosty i oczywisty.

Otóż parser zawsze odmawia posłuszeństwa przy ostatniej linijce (</html>).
Sprawdziłem czy nawiasy i średniki się zgadzają i (o ile się nie pomyliłem) wszystko OK.

Z góry dziękuję za pomoc :)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css" title="text/css" media="all"> .error { font-weight: bold; color: #C00 } </style> <title>Kurs PHP</title> </head> <body> <?php if (!empty($_REQUEST['name'])) { $name = $_REQUEST['name']; } else { $name = NULL; echo '<p class="error">You forgot to enter your name!</p>'; } if (!empty($_REQUEST['email'])) { $email = $_REQUEST['email']; } else { $email = NULL; echo '<p class="error">You forgot to enter your e-mail!</p>'; } if (!empty($_REQUEST['comments'])) { $comments = $_REQUEST['comments']; } else { $comments = NULL; echo '<p class="error">You forgot to enter you comments!</p>'; if (isset($_REQUEST['gender'])) { $gender = $_REQUEST['gender']; if ($gender == "M") { echo 'Good Day, Sir!'; } elseif ($gender == "F") { echo 'Good Day, Madam!'; } else { $gender = NULL; } echo '<p class="error">Gender should be either "M" or "F"!</p>'; } else { $gender = NULL; echo '<p class="error">You forgot to enter your gender!</p>'; } if ($name && $email && $gender && $comments) { echo "<p>Thank you, $name for the following comments:<br /> <tt>$comments</tt></p> <p>We will reply to you at <i>$email</i>.</p>"; } else { echo '<p class="error">Please fill out the form again!</p>'; } ?> </body> </html>



Dodaj jeden } na końcu :)


Dodaj jeden } na końcu :)
Najprawdopodobniej nie na końcu tylko po tymecho '<p class="error">You forgot to enter you comments!</p>';


Najprawdopodobniej nie na końcu tylko po tymecho '<p class="error">You forgot to enter you comments!</p>';
A co to za różnica? Wychodzi na to samo... :>



Rób wcięcia i używaj dobrego edytora z kolorowaniem składni. To jedyna recepta na przejrzysty kod, w którym łatwo znaleźć niedomknięty nawias lub blok. Przykład:if (!empty($_REQUEST['name'])) { $name = $_REQUEST['name']; } else { $name = NULL; echo '<p class="error">You forgot to enter your name!</p>'; }Prawda, że lepiej? Szukam błędu. Wcięcie stawiasz klawiszem TAB.

Brakuje gdzieś domknięcia bloku }. Nie chcę zmieniać algorytmu, więc uporządkuj kod i sam dojdziesz, gdzie jest błąd.
Użytkownik Ferrari edytował ten post 02 lipiec 2009, 20:27
Dziękuję wszystkim za pomoc, a największe brawa dla Ferrari za wędkę zamiast ryby.
Nawet dla klarowności dopisałem sobie komentarze, w każdym miejscu, gdzie jest "tłoczno" ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.

    Drogi uzytkowniku!

    W trosce o komfort korzystania z naszego serwisu chcemy dostarczac Ci coraz lepsze uslugi. By moc to robic prosimy, abys wyrazil zgode na dopasowanie tresci marketingowych do Twoich zachowan w serwisie. Zgoda ta pozwoli nam czesciowo finansowac rozwoj swiadczonych uslug.

    Pamietaj, ze dbamy o Twoja prywatnosc. Nie zwiekszamy zakresu naszych uprawnien bez Twojej zgody. Zadbamy rowniez o bezpieczenstwo Twoich danych. Wyrazona zgode mozesz cofnac w kazdej chwili.

     Tak, zgadzam sie na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerow w celu dopasowania tresci do moich potrzeb. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

     Tak, zgadzam sie na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerow w celu personalizowania wyswietlanych mi reklam i dostosowania do mnie prezentowanych tresci marketingowych. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

    Wyrazenie powyzszych zgod jest dobrowolne i mozesz je w dowolnym momencie wycofac poprzez opcje: "Twoje zgody", dostepnej w prawym, dolnym rogu strony lub poprzez usuniecie "cookies" w swojej przegladarce dla powyzej strony, z tym, ze wycofanie zgody nie bedzie mialo wplywu na zgodnosc z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.