Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Zmienna nie pobiera danych z formularza
rafalek1001
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2013

Ostrzeżenie: (0%)
-----


Witam, około dwóch tygodni temu rozpocząłem naukę HTML i PHP, tak więc jestem jeszcze bardzo początkujący, a najczęstszy problem jaki napotykam to źle skonstruowany formularz. Od razu mówię że szukałem już troszkę na google i raczej mi tam nic nie pomogło :/ Tak więc mam taki kod w pliku "sklep.html":

  1. <!DOCTYPE html
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  6. <title>Sklep</title>
  7. </head>
  8. <body bgcolor="#8dbccb">
  9. <h1>Sklep</h1>
  10. <br />
  11. <br />
  12. <h3>Witamy w naszym internetowym sklepie!<br />
  13. Proszę złożyć zamówienie i potwierdzić zakup.<br /><br /></h3>
  14. <form method="post" action="zamowienie.php">
  15. <table border="0" rules="none">
  16. <tr>
  17. <td bgcolor="grey" width="70">Produkt</td> <td bgcolor="grey" width="70">Ilość</td>
  18. </tr>
  19. <tr>
  20. <td align="center" valign="middle">Jabłko</td>
  21. <td align="center" valign="middle"><input type="text" name="jablko" size="1" /></td>
  22. </tr>
  23. <tr>
  24. <td align="center" valign="middle">Kiwi</td>
  25. <td align="center" valign="middle"><input type="text" name="kiwi" size="1" /></td>
  26. </tr>
  27. <tr>
  28. <td align="center" valign="middle">Gruszka</td>
  29. <td align="center" valign="middle"><input type="text" name="gruszka" size="1" /></td>
  30. </tr>
  31. <tr>
  32. <td align="center" valign="middle" colspan="2">
  33. <input type="submit" value="Zamów" /></td>
  34. </tr>
  35. </form>
  36. </body>


I taki kod w pliku "zamowienie.php":

  1. <?php
  2.  
  3. define("jablko", 2);
  4. define("kiwi", 2.4);
  5. define("gruszka", 2.8);
  6. define("P_VAT", 0.22);
  7.  
  8. $ile_jablko = $_POST['jablko'];
  9. $ile_kiwi = $_POST['kiwi'];
  10. $ile_gruszka = $_POST['gruszka'];
  11. $towar = $ile_jablko + $ile_kiwi + $ile_gruszka;
  12.  
  13. $cena_jablko_netto = $ile_jablko * jablko;
  14. $cena_kiwi_netto = $ile_kiwi * kiwi;
  15. $cena_gruszka_netto = $ile_gruszka * gruszka;
  16. $cena_netto = $cena_jablko_netto + $cena_kiwi_netto + $cena_gruszka_netto;
  17.  
  18. $cena_jablko_brutto = $cena_jablko_netto + $cena_jablko_netto * P_VAT;
  19. $cena_kiwi_brutto = $cena_kiwi_netto + $cena_kiwi_netto * P_VAT;
  20. $cena_gruszka_brutto = $cena_gruszka_netto + $cena_gruszka_netto * P_VAT;
  21. $cena_brutto = $cena_jablko_brutto + $cena_kiwi_brutto + $cena_gruszka_brutto;
  22.  
  23. $sklep = fopen("sklep.txt", "a");
  24.  
  25. $zamowienie = "Zamówione towary:
  26. $ile_jablko jabłek
  27. $ile_kiwi kiwi
  28. $ile_gruszka gruszek
  29. Suma zamówionych towarów: <u>$towar</u>
  30. Za jabłka: $cena_jablko_netto zł
  31. Za kiwi: $cena_kiwi_netto zł
  32. Za gruszki: $cena_gruszka_netto zł
  33. Cena zamówionych towarów netto: <b>$cena_netto zł</b>
  34. Cena zamówionych towarów brutto: <b>$cena_brutto zł</b>
  35.  
  36. ";
  37.  
  38. if((is_integer($ile_jablko)) && (is_integer($ile_kiwi)) && (is_integer($ile_gruszka)) && (fwrite($sklep, $zamowienie, 999))) {
  39.  
  40. echo "Zamówione towary:<br />
  41. $ile_jablko jabłek<br />
  42. $ile_kiwi kiwi<br />
  43. $ile_gruszka gruszek<br />
  44. Suma zamówionych towarów: <u>$towar</u><br />
  45. Za jabłka: $cena_jablko_netto zł<br />
  46. Za kiwi: $cena_kiwi_netto zł<br />
  47. Za gruszki: $cena_gruszka_netto zł<br />
  48. Cena zamówionych towarów netto: <b>$cena_netto zł</b><br />
  49. Cena zamówionych towarów brutto: <b>$cena_brutto zł</b><br />";
  50. echo "<br /><br />";
  51. echo "Zamówienie zostało dodane do pliku!";
  52. }
  53. else
  54. {
  55. echo "Zamówienie zostało źle złożone!";
  56. echo "<br /><br />";
  57. echo "Zamówienie nie zostało zapisane!";
  58. }
  59.  
  60. fclose($sklep);
  61.  
  62. ?>
  63.  
  64. <form action="lista.php" method="post" />
  65. <input type="submit" value="Zobacz wszystkie zamówienia" />
  66.  
  67. </body>


Niestety, nie wiem czemu, ale dane wpisane do formularzy są źle przypisywane do zmiennych w "zamowienie.php", ponieważ kiedy chciałem sprawdzić jaką wartość przyjmują (usunąłem w if'ie warunek o tym, że zmienne muszą być liczbami) wszędzie wyświetliło się 0. Nie wiem jaki błąd popełniam, ponieważ zgodnie z instrukcjami jakimi kierowałem się z kursów html'a i php to jest prawidłowy(?) zapis. Proszę o poprawę kodu i wytłumaczenie co źle robię. Z góry dziękuję.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Każda dana z forma jest tekstem a nie liczbą. wiec is_integer nigdy nie będzie spelniony dla danej z forma. Mozesz zamiast tego uzyc is_numeric, by sprawdzic, czy tekst z forma przedstawia liczbę
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rafalek1001
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.02.2013

Ostrzeżenie: (0%)
-----


No tak... Rzeczywiście umknęło mi to, a od razu kiedy napisałeś o is_numeric przypomniała mi się ta formuła. Teraz już wszystko chodzi ok, bałem się że to coś z układaniem kodu, no ale już chodzi. Dzięki wielkie nospor. Widocznie muszę jeszcze raz powtórzyć niektóre lekcje bo często mi umykają takie rzeczy smile.gif Jeszcze raz wielkie dzięki biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:11