logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Strona w PHP, brak zapisu i uploadu na serwerze.

R_Przemek 30 Lis 2005 01:03 1466 10
REKLAMA
  • #1 2039459
    R_Przemek
    Poziom 20  
    Posty: 526
    Pomógł: 32
    Ocena: 12
    Mam zainstalowanego krasnala, Strona którą napisałem u mnie na komputerze chodzi poprawnie. Dane z formularzy zapisują się do plików tekstowych i działa upload.
    Kiedy wrzuciłem stronke na serwer coś się psuje bo nie mogę zapisać żadnych danych do pliku tekstowego i upload też nie działa.

    Jaka może być tego przyczyna ??
  • REKLAMA
  • #2 2039466
    Paweł Szeredi
    Poziom 17  
    Posty: 197
    Pomógł: 12
    Ocena: 29
    Zmień atrybuty plików

    pozdr/
    paweł
  • REKLAMA
  • #3 2039708
    R_Przemek
    Poziom 20  
    Posty: 526
    Pomógł: 32
    Ocena: 12
    Szukałem w googlech, i się dowiedziałem tego samego. tyle że nie wiem jak to zmienić! Mogę prosić o jakiś opis dla kompletnie zielonych ??
  • Pomocny post
    #4 2039882
    dziqus
    Poziom 18  
    Posty: 208
    Pomógł: 17
    Ocena: 15
    uruchom total commandera, zaloguj sie na swoje konto ftp i teraz zeby zmienic atrybuty danego pliku/katalogu musisz go zaznaczyc, nastepnie z menu FILES wybierasz CHANGE ATTRIBUTES i ustawiasz chmod na 777, w polskiej wersji TC bedzie pewnie PLIKI i ZMIEN ATRYBUTY ale to juz chyba wiadomo ;)

    pozdro
  • #5 2040662
    R_Przemek
    Poziom 20  
    Posty: 526
    Pomógł: 32
    Ocena: 12
    Dzięki dziqus :D:D:D o to chodziło !!

    temat zamknięty...
  • #6 3217773
    malum
    Poziom 23  
    Posty: 883
    Pomógł: 1
    Ocena: 141
    R_Przemek napisał:
    Mam zainstalowanego krasnala, Strona którą napisałem u mnie na komputerze chodzi poprawnie. Dane z formularzy zapisują się do plików tekstowych i działa upload.
    Kiedy wrzuciłem stronke na serwer coś się psuje bo nie mogę zapisać żadnych danych do pliku tekstowego i upload też nie działa.

    Jaka może być tego przyczyna ??



    Mam identyczny problem, a jednak znacznie poważniejszy.
    Podobnie jak u mojego "przedmówcy" na krasnalu wszystko chodziło idealnie, a na serwerze przestało.
    Nie działa uploader plików i nie dopisuje danych do plików tekstowych (dla zainteresowanych www.malum.box.net.pl login: gosia hasło: gosia wszystkie pliki i foldery z atrybutami 777).
    Zmiana atrybutów na 777 niczego nie zmienia, a to dlatego, że strona działa w bardzo specyficzny sposób.
    Dla każdej nowo rejestrującej się osoby tworzony jest nowy folder a w nim 2 pliki, w których zapisywane są prawie wszystkie dane o tej osobie.
    Dodatkowo najważniejsze dane zapisywane sa w trzecim wspólnym dla wszystkich pliku.
    No i problem polega na tym, że upload teoretycznie działa, zdjęcie pokazuje się w odpowiednim folderze, ale nie zostaje zapisane w plikach tekstowych.
    A tu plik dodany już na serwerze, jest na dysku serwera, ale nie został dodany do programu http://www.malum.box.net.pl/www_usr/gosia/gosia_0611122143_biedronka%2002.jpg .
    Dodatkowo ma ono atrybut inny niż 777 i za nic nie daje się tego zmienić, nawet przez Commandera. Po prostu nie ma możliwości zmienić czegokolwiek w tym pliku. Więcej, nie daje się go ani skopiować na inny dysk, np. hdd, albo poprawić jakiekolwiek ustawienia. Wszystko kończy się niepowodzeniem. Gdy jednak poda się w przeglądarce adres tego pliku, to zdjęcie zostaje otwarte, choć w żaden sposób nie daje się tego zrobić w Commanderze i z poziomu strony.
    Nową osobą dodaną na serwerze jest magda, nic u niej nie działa, nawet nie wyświetla strony powitalnej magdy.

    P O M O C Y

    No i jeszcze jedno pytanie, w jaki sposób podczas tworzenia PLIKU nadawać mu automatycznie atrybut 777?

    Z góry dziękuję za szybką odpowiedź.
  • REKLAMA
  • #7 3217955
    kmg
    Poziom 13  
    Posty: 26
    Pomógł: 4
    Ocena: 1
    Cytat:
    No i jeszcze jedno pytanie, w jaki sposób podczas tworzenia PLIKU nadawać mu automatycznie atrybut 777?


    Po utworzeniu pliku zmien uprawnienia - funkcja chmod() w PHP.

    Nie mozesz zmienic ani usunac pliku poniewaz plik został utworzony przez apache (lub inny serwer www). Jego właścicielem jest nobody lub www-data. Pomoże zmiana uprawnien do pliku ( chmod() po jego utworzeniu) lub właściciela - do tego słuzy funkcja chown(). Obie funkcje ładnie udokumentowane w manualu (php.net).

    Odnosnie pozostałych problemow - postaram sie zorientowac i uzupełnić post.

    Dodano:
    Przy dodawaniu pliku uzyskuje:
    Cytat:
    Wybrano nieprawidłowy format pliku. Jedyny dopuszczalny format to JPG!
    Pomimo, ze to jpg.


    Przetrzymujesz też hasła do kont w formie jawnej w pliku tekstowym. Bardzo niebezpieczne. Zahashuj je , wystarczy np. zwykłe md5().
  • #8 3218047
    malum
    Poziom 23  
    Posty: 883
    Pomógł: 1
    Ocena: 141
    kmg napisał:


    Przetrzymujesz też hasła do kont w formie jawnej w pliku tekstowym. Bardzo niebezpieczne. Zahashuj je , wystarczy np. zwykłe md5().



    Zastosowałem md5()

    Cy jeśli właściciel pliku jest błędnie określony to w commanderze też go nie ruszę?
  • REKLAMA
  • #9 3218377
    kmg
    Poziom 13  
    Posty: 26
    Pomógł: 4
    Ocena: 1
    Commanderem ruszysz tylko pliki do ktorych uzytkownik na ktorego jestes zalogowany (przez FTP) ma uprawnienia, lub jest ich włascicielem.
  • #10 3218440
    malum
    Poziom 23  
    Posty: 883
    Pomógł: 1
    Ocena: 141
    Ale jak zastosować chown(), wszędzie są opisy, a nigdzie nie ma przykładów :-(
  • #11 3220308
    Svisstack
    Poziom 14  
    Posty: 60
    Pomógł: 8
    malum napisał:
    Ale jak zastosować chown(), wszędzie są opisy, a nigdzie nie ma przykładów :-(


    Na http://www.php.net/ jest wszystko.

    
    
    <?php
    
    $file_name= "test";
    $path = "/var/www/html/test/" . $file_name ;
    
    $user_name = "root";
    
    chown($path, $user_name);
    
    ?>
    

Podsumowanie tematu

✨ Problem dotyczy braku możliwości zapisu danych do plików tekstowych oraz nieprawidłowego działania uploadu plików na serwerze po przeniesieniu strony PHP z lokalnego komputera. Przyczyną jest najczęściej niewłaściwe ustawienie uprawnień plików i katalogów na serwerze. Rozwiązaniem jest zmiana atrybutów plików na 777 (pełne uprawnienia) za pomocą klienta FTP, np. Total Commander, lub funkcji chmod() w PHP. W przypadku gdy pliki są tworzone przez serwer WWW (np. Apache) i mają właściciela nobody lub www-data, konieczne może być użycie funkcji chown() do zmiany właściciela pliku. Dodatkowo zaleca się zabezpieczenie danych, np. hasła, poprzez ich haszowanie (np. md5). Wskazano, że zmiana uprawnień powinna być wykonana po utworzeniu pliku, a dostęp do plików przez FTP jest możliwy tylko jeśli użytkownik ma odpowiednie prawa lub jest właścicielem pliku. Przykład użycia chown() w PHP został podany z odwołaniem do dokumentacji na php.net.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA