Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Witam,
Mam download plików przez readfile, oto kod pliku php który pobiera pliki:
Owszem plik pobiera się, nazwa się zgadza, tylko zawartość pliku zawsze jest taka:
Dodam, że na localhost pobieranie działa, pliki są pobierane a ich zawartość jest taka jak powinna być, nie ma żadnych błędów. failed to open stream: Permission denied in - z błędu wynika że nie ma uprawnień do pobrania pliku, jednak każdy dodawany plik ma chmod 766. Co więc może być nie tak? Ten post edytował yarek12 7.07.2011, 19:23:10 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
jestem blady w tematyce po stronie serwera, więc jakbyś mógł jaśniej wytłumaczyć te 2 punkty, byłbym wdzięczny.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%)
|
Spróbuj wyświetlić ścieżkę '../files/'.$file.'' i zwerfikuj ręcznie, czy skrypt ma uprawnienia Daj w skrypcie tylko Pozostałe linie zakomentuj. Potem, jak już będziesz miał tą wyświetloną ścieżkę do pliku sprawdź w kliencie FTP czy się zgadza i czy masz odpowiednie uprawnienia. Sprawdź uprawnienia folderu nadrzędnego dla skryptu W kliencie FTP sprawdź, czy skrypt ma uprawnienia do katalogu zawierającego pliki. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Sprawdź co ta funkcja zwróci:
Kod var_dump(fileperms('../files/[136]_[test]_[300x300]_[b28b5c].txt')); BTW nie wystarczy że pliki mają uprawnienia, katalog z tymi plikami też musi ci zezwalać na odczyt. Umieszczaj operacje na plikach w warunkach is_readable | is_writable i tym podobne. Dzięki czemu wcześniej będziesz już wiedział w czym jest problem, zamiast doszukiwać się go gdzieś po plikach. Ten post edytował by_ikar 7.07.2011, 21:51:58 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Na serwerze zwraca int(33534)
Na localhost zwraca int(33206) Przypominam że na localhost wszystko śmiga jak trzeba |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Aj nie popatrzałem co zwraca funkcja, tylko na pałę ją podałem ;P zrób inaczej, sprawdź tak:
Kod var_dump(substr(sprintf('%o', fileperms('../files/[136]_[test]_[300x300]_[b28b5c].txt')), -4));
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
Pragnę dodać, że w ten sposób można pobierać dowolne pliki z serwera. Zabezpiecz się.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
string(4) "0666" - na local host
string(4) "1376" - na serwerze |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 8 Dołączył: 28.07.2009 Ostrzeżenie: (0%)
|
No ta trójka znaczy mniej więcej tyle że zwykły użytkownik, czyli nie właściciel i nie root nie ma właściwie żadnych praw do operacji na danym pliku, zmień sobie chmod, za pomocą funkcji chmod('0644',$sciezka); o ile tylko serwer daje Ci takie prawa.
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
chmod 0664 nic nie zmienił
dalej wyskakuje ten sam błąd co z chmodem 766 |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 21:46 |