![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem z napisaniem strony - mam 3 pola do wpisania danych, i docelowo te dane mają zapisać sie na pliku txt. Problem w tym, że napisałem w/w formularz i skrypt php zapożyczyłem z tej strony... Mimo to po wpisaniu danych do formularza nic się nie dzieje (nic nie pojawia się w pliku tekstowym)
Oto dwie części strony HTML, moim zdaniem odpowiedzialne za cały proces, no i skrypt php.
Jeśli ktoś może mnie naprowadzić na dobry trop, byłbym wdzięczny! (IMG:style_emoticons/default/smile.gif) Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 24 Dołączył: 29.07.2007 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
Wyskakują ci błędy...
Tylko je wyciszasz "@". Usuń je i dodaj na początek error_reporting(E_ALL); i pokaż jakie masz błędy... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, niezbyt znam się na php ogólnie, i przyznam że tą stronę tworzyłem w wielkich bólach (IMG:style_emoticons/default/tongue.gif)
Wystarczy że na początek skryptu dodam error_reporting(E_ALL); ? Bo jeśli tak - to nic się nie pojawia (IMG:style_emoticons/default/smile.gif) Przepraszam za brak ogłady ale niezbyt na tym się znam (IMG:style_emoticons/default/tongue.gif) pozdrawiam! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 24 Dołączył: 29.07.2007 Skąd: Tarnowskie Góry Ostrzeżenie: (0%) ![]() ![]() |
A usunąłeś "@" sprzed nazw funkcji?
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ja jestem ciekaw skąd wytrzasnąłeś $DOCUMENT_ROOT... Ja znam jedynie $_SERVER['DOCUMENT_ROOT'] (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze. Wygodniej Ci będzie, jak plik będziesz miał w tym samym katalogu, co skrypt. Zamień
Kod $filename = "$DOCUMENT_ROOT/maple.txt"; na Kod $filename = './maple.txt'; Po drugie. Plik maple.txt musi istnieć na serwerze z chmodem 0777. Ewentualnie katalog macierzysty ma mieć chmod 0777 a właścicielem pliku powinien być skrypt. |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A na co mu 777? Jeśli to ma być tylko dla skryptu do odczytu i zapisu to nawet 600 może być (IMG:style_emoticons/default/winksmiley.jpg) Niech zajrzy sobie do chmod i zdecyduje jakie uprawnienia nadać. Ja nadal sądzę, że pewnie ma php5 i zamiast $_SERVER['DOCUMENT_ROOT'] walnął $DOCUMENT_ROOT bo gdzieś tak w jakimś starym tutorialu przeczytał. A dlaczego? Popatrzcie na kod. Raz używa odwołanie (prawidłowe) przez tablice $_POST, innym razem używa getenv a potem $DOCUMENT_ROOT. Przecież to wydaje się logiczne, że gdyby wiedział co kopiuje z netu, to takiego zamieszania by nie robił (IMG:style_emoticons/default/winksmiley.jpg) Użyłby po prostu odwołań poprzez właściwe odwołanie do $_SERVER lub $_POST a nie mieszał wszystkie metody odwołań ze sobą. Dlatego nie wie czy ma włączone php4 czy php5, a jeśli tego nie wie to także świadomie nie może powiedzieć czy tablice superglobalne ma włączone czy nie w php.ini
EDIT: Zapomniałbym dodać, że plik nie musi istnieć. a+ w fopen i tak stworzy go jeśli on nie istnieje Ten post edytował thek 6.09.2009, 08:03:45 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
A na co mu 777? Jeśli to ma być tylko dla skryptu do odczytu i zapisu to nawet 600 może być (IMG:style_emoticons/default/winksmiley.jpg) Jeżeli właścicielem pliku albo katalogu, w którym ma się docelowo znajdować, nie jest skrypt, to nie będzie uprawnień do stworzenia, nadpisywania i odczytywania tego pliku bez chmodu 0777. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Skoro tak piszesz to zapewne wiesz czym się różni 6 od 7. Na co mi w pliku do zapisu i odczytu tylko parametr eXecute? (IMG:style_emoticons/default/winksmiley.jpg) Poza tym plik ma a+, czyli w domyśle już mamy, że skrypt sam ten plik zakłada i aktualizuje. Po co więc ktokolwiek ma mieć prawa do odczytu i zapisu poza skryptem? Tu już się kłaniają podstawy bezpieczeństwa i stąd prawa do zapisu i odczytu nadane tylko skryptowi czynią plik przez niego założony o wiele bezpieczniejszym. A ustawieniem 777 pozwoliłeś każdemu na grzebanie wewnątrz tego pliku. To nie jest bezpieczne. Wyobraź sobie teraz, że ktoś w środek wrzuci skrypt i masz na serwerze jazdę bo mu nawet atrybut wykonywalności (X) ustawiłeś poza odczytem i zapisem. Wszystko się powinno robić z głową. A tak masz bardzo poważną lukę bezpieczeństwa. Fajnie? Pza tym nie myl prawa do nadpisywania z prawem do wykonywania. Nie na darmo pewne pliki ustawia się na 755, inne na 644, a jeszcze inne inaczej. Po to te uprawnienia istnieją by nikt niepowołany nie robił co chce z nimi. Jeśli tylko ktoś by zauważył, że masz pliki na 777 to albo za chwilę nie miałbyś już portalu albo zrobili by Ci z niego jesień średniowiecza (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 508 Pomógł: 75 Dołączył: 2.11.2005 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Niech będzie te 6. Z prawami do uruchomienia, też nie można zrobić wszystkiego, bez przesady. Prawda, że jest to nieciekawe, ale co da nam 0777 dla pliku .txt? Nic. Co do fopen z a+, to oczywiście, że najlepsze rozwiązanie. Jednak wtedy katalog musi mieć chmod z wyższymi prawami na czas zakładania pliku, bo wątpię, żeby w tym przypadku założył go skrypt. Wiem, co masz na myśli, ale zaczyna się robić offtopic. Czekamy na autora tematu.
Pozdrawiam. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za takie dokładne przedstawienie sprawy!
Wszystko się udało, pacjent żyje stan stabilny (IMG:style_emoticons/default/tongue.gif) Innymi słowy wszystko działa. Do wszystkich którzy pomogli leci stosowna pochwała =) Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 16:05 |