to jest plik do formularza który jest przekazywany metodą get, dlaczego wyskakuje błąd w 41 linii?
<?php
$iloscopon = $_POST['iloscopon'];
$iloscoleju = $_POST['iloscoleju'];
$iloscswiec = $_POST['iloscswiec'];
?>
Części samochodowe Janka
Wyniki zamówienia
<?php echo ’ Zamówienie przyjęte o: '; //początek wydruku echo date (‘H:i. jS F’); echo ‘’; ?> <?php echo ’ Państwa zamówienie wygląda następująco: '; echo $iloscopon. ’ opon '; echo $iloscoleju. ’ butelek oleju '; echo $iloscswiec. ’ świec zapłonowych '; ?> <?php $ilosc = 0; $ilosc = $iloscopon + $iloscoleju + $iloscswiec; echo 'Zamówionych części: ‘.$ilosc.’ ; $wartosc = 0.00; define(“CENAOPON”, 400); define(“CENAOLEJU”, 100); define(“CENASWIEC”, 20); $wartosc = $iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC; echo 'Cena netto: ‘.number_format($wartosc, 2).’ PLN '; $stawkavat = 0.22; //stawka vat wynosi 22% $wartosc = $wartosc * (1 + $stawkavat); echo 'Cena brutto: ‘.number_format($wartosc, 2).’ PLN ; ?>[/code]
adpawl
(adpawl)
11 Sierpień 2007 19:10
#2
<?php $iloscopon = $_POST[‘iloscopon’]; $iloscoleju = $_POST[‘iloscoleju’]; $iloscswiec = $_POST[‘iloscswiec’]; ?> Części samochodowe Janka Wyniki zamówienia <?php echo 'Zamówienie przyjęte o: ‘; //początek wydruku echo date (‘H:i. jS F’); echo ‘’; echo ‘Państwa zamówienie wygląda następująco: ‘; echo $iloscopon. ’ opon’; echo $iloscoleju. ’ butelek oleju’; echo $iloscswiec. ’ świec zapłonowych’; $ilosc = 0; $ilosc = $iloscopon + $iloscoleju + $iloscswiec; echo ‘Zamówionych części: ‘.$ilosc.’’; $wartosc = 0.00; define(“CENAOPON”, 400); define(“CENAOLEJU”, 100); define(“CENASWIEC”, 20); $wartosc = $iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC; echo ‘Cena netto: ‘.number_format($wartosc, 2).’ PLN’; $stawkavat = 0.22; //stawka vat wynosi 22% $wartosc = $wartosc * (1 + $stawkavat); echo ‘Cena brutto: ‘.number_format($wartosc, 2).’ PLN’; ?>
brak było apostrofu zamykającego w liniach:
btw
filtruj dane otrzymywane przez _POST
dzięki
chodzi o sprawdzanie poprawności wprowadzonych danych?
narazie jestem jeszcze na dosyć wczesnym poziomie programowania w php mam nadzieję, że dojdę do tego.
crew1
(L337 Crew)
11 Sierpień 2007 20:42
#4
można to tak nazwać …
Przykładowo jak masz
$iloscopon = $_POST['iloscopon'];
to zapewne oczekujesz wartości liczbowej … W Twoim kodzie można tutaj wprowadzić dowolną wartość, dzięki czemu można włamać się na stronę Ponieważ jak wspomniałem - wartość liczbowa -
$iloscopon = intval($_POST['iloscopon']);
funkcja intval sprawdza czy ciąg jest liczbą, jeśli nie - jako wartość przyjmuje 0.
Jeżeli chciałbyś np. napisać księgę gości czy coś tego typu -
oczekiwałbyś ciągu znaków.
W takim wypadku po nieprzefiltrowaniu danych wejściowych - można dopisać złośliwy kod javascript itd.
Np. przekierowanie na moją stronę
By temu zapobiec - stosuje się np. strip_tags() .
btw. czyżbyś się uczył z tej książki?
dzięki L337 Crew
uczę się z tej: http://helion.pl/ksiazki/phmsv3.htm
Pozdrawiam.