![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 0 Dołączył: 18.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z funkcja DOCUMENT_ROOT. Mam ksiażę Vademecum wydanie 4 z dołączoną płytką. Mam problem z kodem który nie może być zle napisany(z mojego blędu) poniewaz jest skopiowany z plytki ale nie dziala. Nie zapisuje zamowienia w pliku txt. Moglby ktos mi powiedziec dlaczego (IMG:style_emoticons/default/questionmark.gif)
KODY formularz.html Kod <html> <head> <title>Części samochodowe Janka</title> </head> <body> <h1>Części samochodowe Janka</h1> <h2>Formularz zamówienia</h2> <form action="przetworzzamowienie.php" method=post> <table border=0> <tr bgcolor=#cccccc> <td width="150">Produkt</td> <td width="15">Ilość</td> </tr> <tr> <td>Opony</td> <td align="left"><input type="text" name="iloscopon" size="3" maxlength="3" /></td> </tr> <tr> <td>Olej</td> <td align="left"><input type="text" name="iloscoleju" size="3" maxlength="3" /></td> </tr> <tr> <td>Świece Zapłonowe</td> <td align="left"><input type="text" name="iloscswiec" size="3" maxlength="3" /></td> </tr> <tr> <td>Adres</td> <td align="left"><input type="text" name="adres" size="40" maxlength="40" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Złóż zamówienie"></td> </tr> </table> </form> </body> </html> przetworzzamowienie.php Kod <?php
// utworzenie krótkich nazw zmiennych $iloscopon = $_POST['iloscopon']; $iloscoleju = $_POST['iloscoleju']; $iloscswiec = $_POST['iloscswiec']; $adres = $_POST['adres']; $adres = $_POST['adres']; $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; $data=date('H:i, jS F Y'); ?> <html> <head> <title>Części samochodowe Janka — wyniki zamówienia</title> </head> <body> <h1>Części samochodowe Janka</h1> <h2>Wyniki zamówienia</h2> <?php echo "<p>Zamówienie przyjęte o ".$data."</p>"; echo "<p>Zamówienie Państwa wygląda następująco: </p>"; $ilosc = 0; $ilosc = $iloscopon + $iloscoleju + $iloscswiec; echo "Zamówionych części: ".$ilosc."<br />"; if($ilosc == 0) { echo "Na poprzedniej stronie nie zostało złożone żadne zamówienie!<br />"; } else { if ($iloscopon > 0) { echo $iloscopon." opon<br />"; } if ($iloscoleju > 0) { echo $iloscoleju." butelek oleju<br />"; } if ($iloscswiec > 0) { echo $iloscswiec." świec zapłonowych<br />"; } } $wartosc=0.00; define('CENAOPON', 100); define('CENAOLEJU', 10); define('CENASWIEC', 4); $wartosc =$iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC; $wartosc=number_format($wartosc, 2, '.', ' '); echo "<p>Wartość zamówienia wynosi ".$wartosc."</p>"; echo "<p>Adres wysyłki to ".$adres. "</p>"; $ciagwyjsciowy = $data."\t".$iloscopon." opon \t".$iloscoleju." butelek oleju\t" .$iloscswiec." swiec zapłonowych\t".$wartosc ."PLN\t". $adres."\n"; // otwarcie pliku w celu dopisywania @ $wp = fopen("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt", 'ab'); flock($wp, LOCK_EX); if (!$wp) { echo "<p><strong> Zamówienie Państwa nie może zostać przyjęte w tej chwili. Proszę spróbować później.</strong></p></body></html>"; exit; } fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy)); flock($wp, LOCK_UN); fclose($wp); echo "<p>Zamówienie zapisane.</p>"; ?> </body> </html> Ten post edytował bigos1995-95 18.05.2012, 16:02:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja też nie mam zamiaru się kłócić tylko nie widzę sensu czytania książki która od samego początku przedstawia złe nawyki, wygląda jak napisana dla PHP 4 (mocno nieaktualna) i pewnie nie wspomina o bezpieczeństwie. Bo więcej dowiesz się z lektury manuala PHP. Dobra książka nie opisuje (i to w dodatku źle) jak krok po kroku coś napisać tylko uczy myślenia. Prawda jest taka że większość książek dla PHP to przedruki dokumentacji które zupełnie nic nie wnoszą. Dlatego poleciłem Ci coś do Javy bo uwierz mi że nauczysz się 100x więcej a mimo wszystko oba języki są dość podobne i płynnie można między nimi przechodzić (czy też płynnie przejść do PHP jeśli poznasz Javę).
Przykładowo. Przepisywanie zmiennych dla samego podstawienia (kilka pierwszych linijek) nie ma zupełnie sensu bo tylko zapychasz pamięć. Gdyby chociaż tam było filtrowanie albo walidacja jeszcze można by zrozumieć. Tworzona jest data bez sprawdzania ustawień strefy czasowej serwera. Co to za dokument bez deklaracji DOCTYPE? Po co: Chyba bo to jest składnia z "" żeby nie łączyć bezsensownie ciągów. A jak już to ''. Co się stanie jak wpiszesz np w inpucie $iloscopon = 'aaa'; Po co $wartosc=0.00;? Rzutowanie typów do poczytania z dokumentacji. Deklaracja stałych w takiej samej ilości jak zmiennych. Tak się nie pisze. A z tego przykładu można wnioskować że to normalka. Ukrywanie błędów - błędów się nie ukrywa tylko poprawia. No i wspomnianych kilka funkcji do zapisu zamiast jednej. Jak widzisz prawie w każdej linii jest błąd dlatego uważam że to jest książka do kosza. Jeśli uczyć to porządnie tym bardziej że świeże umysły się za to zabierają. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 16:12 |