![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dopiero co zacząłem uczyć się php i kupiłem sobie książkę "php i MySQL vademecum..." wyd. Helion. Pierwszym zadaniem w nim jest stworzenie sklepu z częściami samochodowymi. Gdy już mamy takie coś to trzeba zamówienia zapisywać (w pliku txt). W książce jest taki kod:
Kod <?php // utworzenie krótkich nazw zmiennych $iloscopon = $_POST['iloscopon']; $iloscoleju = $_POST['iloscoleju']; $iloscswiec = $_POST['iloscswiec']; $adres = $_POST['adres']; $adres = $_POST['adres']; $DOCUMENT_ROOT = $_POST['DOCUMENT_ROOT']; ?> <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 $data=date('H:i, jS F'); echo '<p>Zamówienie przyjęte o '; echo $data; echo '</p>'; echo '<p>Zamówienie Państwa wygląda następująco: </p>'; $ilosc=0; $ilosc=$iloscopon+$iloscoleju+$iloscswiec; 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'); 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)); fclose($wp); echo '<p>Zamówienie zapisane.</p>'; ?> </body> </html> Niestety gdy wrzucam to na serwer i próbuję zapisać to do pliku zamowienia.txt to za każdym razem mam komunikat niepowodzenia. Nie wiem co jest nie tak. Proszę o pomoc! Z góry wielkie dzięki i sorry za tak debilne pytania. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jaki błąd wywala.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
nie wywala błędu bo dałem przecież instrukcję:
Kod @ $wp = fopen("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt", 'ab'); 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; } i wyswietla sie tylko ta notka. a jesli jej nie ma to ma problem z odczytem (2 razy) raz zapisem i raz z zamknieciem |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Sprawdź, czy masz prawo zapisu do katalogu zamowienia.
Możesz tez sprawdzić, czy $DOCUMENT_ROOT jest utworzona, bo byc może jej nie ma, a to oznaczm że ściezka do pliku zamowienia.txt jest niepoprawna. Pozdrawiam -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
wszystko jest na miejscu. i nie wiem co zrobic
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Pokaż komunikat błędu w takim razie.
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kod Warning: fopen() [function.fopen]: open_basedir restriction in effect. File(/../zamowienia/zamowienia.txt) is not within the allowed path(s): (/home) in /home/l/i/v/livesgood/www/szukaj/rozdzial_02/przetworzzamowienie.php on line 65
Warning: fopen(/../zamowienia/zamowienia.txt) [function.fopen]: failed to open stream: Operation not permitted in /home/l/i/v/livesgood/www/szukaj/rozdzial_02/przetworzzamowienie.php on line 65 Warning: fwrite(): supplied argument is not a valid stream resource in /home/l/i/v/livesgood/www/szukaj/rozdzial_02/przetworzzamowienie.php on line 67 Warning: fclose(): supplied argument is not a valid stream resource in /home/l/i/v/livesgood/www/szukaj/rozdzial_02/przetworzzamowienie.php on line 68 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie znajduje pliku. Sprawdz ścieżke. Prawa do zapisu.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
/../zamowienia/zamowienia.txt
tak wygląda twoja ścieżka zapisu - pisałem, żebyś sprawdził, czy masz $DOCUMENT_ROOT - ne srawdziłeś, i widać, że nie masz jej. Zresztą. Nawet, gdyby była, to i tak skrypt sie nie wykona, bo nie masz uprawnień do wychodzenia poza swój katalog domowy. Zrób tak:
Zadziała. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
sprawdziłem i chyba wszystko się zgadza. Ale wyjaśnię Wam wszystko:
strona, na której to mam: http://livesgood.ovh.org/naukaphp/formularz.html formularz wyglada nastepujaco: 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> plik php już podałem. w katalogu mam formularz.html i przetworzzamowienie.php. w katalogu zamowienia (jest on o folder wyżej niż formularz) mam plik zamowienia.txt. nie wiem co dalej. ustawiłem chmody zamowienia.txt na 777 i przetworzzamowienie.php na 755 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
A prawa do katalogu zamowienia? To właśnie prawa dostępu do tego katalogu musisz ustawić.
Ten post edytował Cysiaczek 4.08.2006, 22:24:44 -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
w jaki sposób?
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nie rozbrajaj mnie
![]() -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
sorry w takim razie ze cie rozbroilem ale jak napisalem USTAWILEM CHMOD NA 777 I TO NIC NIE DALO!
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Nie masz w swoim pliku zawierającym formularz pola, które nazywa się DOCUMENT_ROOT Jako, że istenieje tablica zmiennych serwera, to spóbuj:
Jednak używasz w ścieżce ../, co oznacza cofanie się w górę, Nie bardzo możesz przez to otrzymać poprawny katalog - takiego po prostu nie ma. Sprawdziłem - u mnie pokazuje coś takiego /usr/local/apache2/htdocs/../zamowienia/zamowienia.txt Czy to wygląda na poprawną ścieżkę? Raczej nie. Dlatego mówię - odnieś się do katalogu <zamowienia> w taki sposób
Powyższy zapis mówi o tym, ze chcsz zapisac plik <zamowiania.txt> w katalogu <zamowienia> znajdującym sie w jakimś innym katalogu (np w twoim katalogu głównym). Teraz ustaw chmod na 777 dla katalogu, a nie dla pliku zamowienia. Napisałeś, że ustawiłeś dla plikuów zamowienia,txt i dla przetworzzamowienie.php. To za mało. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:11 |