![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 16.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Uczę się php i napotkałem na problem. mam formularz i plik php który go przetwarza. Na localhost w momencie kliknięcia złóż zamówienie, wszystkie dane wpisane w formularzu zostały zapisane w pliku tekstowym. Po wrzuceniu plików na darmowy serwer nie da się w ogóle zapisać zamówień w dokumencie tekstowym.
formularz CODE <form action="przetworz.php" method="post"> <table> <tr class="form"> <td class="main1">Produkt</td> <td class="main">Ilość</td> </tr> <tr> <td>Opony</td> <td class="td_align"><input type="text" name="iloscopon" size="4" maxlength="4" /></td> </tr> <tr> <td>Olej</td> <td class="td_align"><input type="text" name="iloscoleju" size="4" maxlength="4" /></td> </tr> <tr> <td>Świece</td> <td class="td_align"><input type="text" name="iloscswiec" size="4" maxlength="4" /></td> </tr> <tr> <td >Skąd dowiedzili się Państwo o sklepie? </td> <td class="td_align"><select name="jak"> <option></option> <option value="a">Jestem stałym klijentem</option> <option value="b">Reklama tv</option> <option value="c">Książka telefoniczna</option> <option value="d">Znajomy</option> </select> </td> </tr> <tr> <td>Adres do wysyłki</td> <td><input type="text" name="adress" size="50" maxlength="50" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Złóż zamówienie"/></td> </tr> </table> </form> plik który przetwarza formularz CODE <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta http-equiv="content-language" content="pl" /> <title>Wyniki zamówienia</title> </head> <body> <h1>Części samochodowe</h1> <h2>Wyniki zamówienia:</h2> <?php // tworzenie którkich nazw zmiennych $iloscopon = $_POST['iloscopon']; $iloscoleju = $_POST['iloscoleju']; $iloscswiec = $_POST['iloscswiec']; $jak = $_POST['jak']; $adress = $_POST['adress']; $date=date('H:i, jS F'); $ilosc =0; $ilosc = $iloscopon + $iloscoleju + $iloscswiec; //sprawdzenie czy wypełniono formularz if ($ilosc==0) { echo '<font color=red><b> formularz został wypełniony nieprawidłowo</b> </font><br/>'; } else{ echo '<p>Zamówienie przyjęte o '; echo date('H:i, jS F'); echo '</p>'; if($iloscopon >0) echo $iloscopon. ' Opon<br/>'; if($iloscoleju >0) echo $iloscoleju. ' Oleju <br/>'; if ($iloscswiec >0) echo $iloscswiec. ' Świec zapłonowych<br/>'; echo '<br/>Łącznie sztuk: '.$ilosc.'<br/>' ; $wartosc = 0.00; define ('CENAOPON' , 100); define('CENAOLEJU' , 10); define('CENASWIEC' , 4); $wartosc = $iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC; echo 'Cena netto: ' .number_format($wartosc, 2). ' PLN<br/>'; $stawkavat = 1.22; // stawka VAT wynosi 22 % czyli 122% ceny netto $wartosc = $wartosc * ( $stawkavat ); echo 'Cena brutto: ' .number_format($wartosc, 2). ' PLN<br/>'; if ($iloscopon <10) $znizka = 0; elseif($iloscopon >= 10 && $iloscopon <=49) $znizka= 0.05; elseif($iloscopon >=50 && $iloscopon <=99) $znizka= 0.10; elseif($iloscopon >=100) $znizka=0.20; $wartosc= $wartosc * (1 - $znizka ); echo '<br/><font color=red><b> RABAT </b></font><br/>'; echo 'Zniżka wynosi: ' .($znizka * 100). ' %<br/>'; echo 'Cena po znizce(brutto): '. number_format($wartosc, 2). ' PLN'; switch($jak) { case 'a'; echo '<p>Stały klijent</p>'; break; case 'b'; echo '<p>Reklama</p>'; break; case 'c'; echo '<p>Książka</p>'; break; case 'd'; echo '<p>Znajomy</p>'; break; default; echo '<br/>Nie wybrano żadnej opcji'; break; } echo '<br/>' .$adress. '<br/>'; $ciagwyjsciowy = $date."\t".$iloscopon." Opon \t".$iloscoleju." Butelek oleju\t".$iloscswiec." Świec zapłonowych\t".$wartosc ." PLN\t". $adress. " \r\n"; // otwarcie pliku w celu zapisania @ $wp = fopen('../zamowienia.txt', 'ab');; if (!$wp) { echo '<p><strong> Zamówienie nie może zostać przyjęte w tej chwili.' . 'Proszę spróbować później.</strong></p></body></html>'; exit; } fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy)); fclose($wp); echo '<br/><p>zamówienie przyjęte</p>'; } ?> </body> </html> coś chyba jest nie tak w tym momencie: CODE @ $wp = fopen('../zamowienia.txt', 'ab');; if (!$wp) { echo '<p><strong> Zamówienie nie może zostać przyjęte w tej chwili.' . 'Proszę spróbować później.</strong></p></body></html>'; exit; } fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy)); fclose($wp); jak to rozwiązać ? pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Wyłącz tłumienie błędów (@) i pokaż jaki błąd zwraca php.
Sprawdź czy ustawiłeś dla pliku '../zamowienia.txt' odpowiednie atrybuty (chmod). Spróbuj otworzyć plik w taki sposób: $wp = fopen('../zamowienia.txt', 'w'); -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 16.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
usunąłem @
kod teraz wygląda w ten sposób CODE $wp = fopen('../zamowienia.txt', 'w'); if (!$wp) { echo '<p><strong> Zamówienie nie może zostać przyjęte w tej chwili.' . 'Proszę spróbować później.</strong></p></body></html>'; exit; } fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy)); fclose($wp); echo '<br/><p>zamówienie przyjęte</p>'; i nadal wyświetla się komunikat "Zamówienie nie może zostać przyjęte w tej chwili..." po usunięci at nic się nie zmieniło co do komunikatu.. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
trochę Cię nie rozumiem, po co się męczysz z czymś takim:
jak i tak masz pusty plik, więc wystarczy
i sprawdź jak te chmody ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 18 Dołączył: 7.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dla uściślenia powinny wynosić 777.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 16.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
okej, doszedłem już do tego.
ma być tak w fopen: CODE $wp = fopen('./zamowienia.txt', 'ab'); chmod miałem 644 a co do fwrite, to po zmienieniu na file_put_contents wyrzuca taki błąd " Fatal error: Call to undefined function: file_put_contents() in /var/www/sites/yoyo.pl/t/e/test4163/przetworz.php on line 118 ". z fwrite działa normalnie. Wpisałem tak, bo na razie uczę się z książki i ćwiczę na tych przykładach które tam są. ![]() pozdrawiam |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
file_put_contents nie potrzebuje wskaźniku pliku (otwarcia przez fopen()), ale nie jest obsługiwane przez wszystkie serwery ;(
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 16.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
bo testowałem właśnie file_put_contents i na jednym działo, a na drugim już nie. teraz już wiem
![]() a co do chmod to tak, ma być 777 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:01 |