Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt na dodawanie liczb a błędy, których nie rozumien
Forum PHP.pl > Forum > Przedszkole
aniadp
Skrpt jest poniżej i działa. Nie wiem tylko dlaczego mam takie błędy:
Notice: Undefined index: l1 in C:\xampp\htdocs\form2.php on line 22
pierwsza liczba:

Notice: Undefined index: l2 in C:\xampp\htdocs\form2.php on line 23
druga liczba:

Notice: Undefined index: l1 in C:\xampp\htdocs\form2.php on line 27

Notice: Undefined index: l2 in C:\xampp\htdocs\form2.php on line 27
Wynik działania= 0



Proszę o wyjaśnienie.

<!DOCTYPE html>
<html>
<body>
<form method="post" action="form2.php">
<table>
<tr>
<td>Wpisz pierwszą liczbę </td>
<td><input type="number" name='l1' /></td>
</tr>
<tr>
<td>Wpisz drugą liczbę </td>
<td><input type="number" name="l2" /></td>
</tr>
<tr>
<td><input type="hidden" name="wylicz" value="tak" /></td>
<td><input type="submit" name="wyslij" /></td>
</tr>
</table>
</form>

  1. <?php
  2. echo 'pierwsza liczba: '.$_POST['l1']."<br />";
  3. echo 'druga liczba: '.$_POST['l2']."<br />";
  4.  
  5.  
  6.  
  7. $wy=$_POST['l1']+$_POST['l2'];
  8. echo "Wynik działania= ". $wy;
  9.  
  10.  
  11.  
  12.  
  13. ?>

</body>
</html>
nospor
Komunikat bledu jest dosc wyraźny: odwolujesz sie do indeksow, ktore nie istnieją...
O to: $_POST['l1'] pojawia sie dopiero po wysłaniu forma. A ty sie dobierasz do tego przed wyslaniem forma stad bledy
Turson
Masz błędy (to raczej ostrzeżenia), bo kod się wykonuje jak wejdziesz tylko na stronę i nawet nie prześlesz jeszcze formularza. Zapoznaj się z isset
nospor
Cytat
(to raczej ostrzeżenia)
Nie, nazywajmy rzeczy po imieniu. To są Błędy. Odwoływanie sie do czegoś czego nie ma, jest błędem.
aniadp
Dziękuję! Ostatecznie, wysyłam zawartość formularza to innego skyptu i tam dokonuję obliczeń i wyświetlenia wyniku.
Turson
Cytat(nospor @ 13.04.2015, 10:57:52 ) *
Nie, nazywajmy rzeczy po imieniu. To są Błędy. Odwoływanie sie do czegoś czego nie ma, jest błędem.

I tak i nie. Nie przerywa wykonywania dalszego kodu i tłumacząc komunikat nie ma słowa o stricte błędzie. Z drugiej strony dobre praktyki do czegoś zobowiązują, żeby pisać dobry kod, a PHP po prostu sporo wybacza.
nospor
To, ze nie przerywa wykonywania kodu, nie znaczy ze nie dana rzecz nie jest błędem. Idąc Twoim tokiem rozumowania to tylko FATAL ERRORY są błędami...
W normalnym jezykach, jak sie dobierasz do czegos, czego nie ma, jest błędem. I to, że developerzy php takim rzeczom nadali najnizszy priorytet, i chcieli "sporo wybaczać" nadal nie zmenia sytuacji, że to jest błąd. Czasami mniejszy, czasami wiekszy, zależy od sytuacji.
Turson
Nie mówię, że tylko fatal errory są błędami, ale PHP nie traktuje błędów typu notice jako okropieństwo. Właśnie w tych normalnych językach takie coś jest niedopuszczalne. Więc mówię, że dla PHP to nic pozornie nieszkodliwego. Suma sumarum nie polecam tego ignorować w żadnej sytuacji.
aniadp
A jest inny sposób (niż wykorzystanie formularzy) na wprowadzenie liczb przez użytkownika i wykonanie na nich działań?
johny_s
javascript i prompt
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.