Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]getimagesize zwraca false, Z obrazków w serwisie
Lirdoner
post
Post #1





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

Ostrzeżenie: (0%)
-----


Witam, mam taki problem, że funkcja getimagesize zwraca zawsze false z obrazków które znajdują się na moim serwerze.
Zastanawiam się czy to nie jest czasem zasługa htaccess i komendy
Kod
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]

Jeżeli to przez to to jak mogę zmienić tą linię aby nie dotyczyło plików graficznych?
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jaką ścieżkę do obrazka podajesz do getimagesize, serwerową czy po http?
Czy obrazki są na tym samym serwerze co skrypt?

Powinieneś używać ścieżki serwerowej (np.: [DOC_ROOT]/katalog/z/obrazkami/obrazek.jpg) a nie z url. Wówczas powinno to działać bez względu co masz w .htaccess. Ponadto jeśli obrazki się wyświetlają to to nie wina .htaccessa na bank - bo by się nie wyświetlały. Gdzieś masz jakiś "głupi" błąd pewnie - pokaż kod.
Go to the top of the page
+Quote Post
Lirdoner
post
Post #3





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

Ostrzeżenie: (0%)
-----


Ścieżkę podaję po http
Nie wiem o co może chodzić ponieważ w index.php (na serwerze z tymi obrazkami) na samym początku dodałem linijkę
if(getimagesize('link_do_obrazka')){die(1);}
I getimagesize zwrócił false, natomiast jak dodałem tą samą linijkę do pliku na innym serwerze to zostało zwrócone true
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




getimagesize jadąc po http, choć nie ma tego napisanego wprost w dokumentacji, zazwyczaj ma problem przy allow_url_fopen na false i dlatego całość klęka.
Go to the top of the page
+Quote Post
Lirdoner
post
Post #5





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

Ostrzeżenie: (0%)
-----


Ale z wszystkimi innymi obrazkami to działa, tylko nie z obrazkami które znajdują się na tym serwerze
Go to the top of the page
+Quote Post
thek
post
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A sprawdziłeś co Ci zwraca allow_url_fopen dla tego serwera? Może inne mają true a ten serwer wali false. Poza tym może istnieć ochrona przed hotlinkiem. Jeśli odwołanie jest z innej domeny to zwyczajnie reaguje na to i przykładowo strzela nagłówek z 404 lub innym http statusem a dodatkowo error idzie do logów, ale wyświetlanie błędów pewnie masz wywalone i nic nie widzisz przez to. Polecam w takich sytuacjach przy pobieraniu obrazków sprawdzać wyjście. Jeśli nie pobiera Ci obrazka, czyli masz false na getimagesize, to zaciągnij obrazek curlem, który w zasadzie niemal zawsze daje sobie radę w takich sytuacjach (no chyba, że ktoś go świadomie chce wyciąć). Zresztą użycie curla w przypadku allow_url_fopen = false jest powszechnie stosowanym obejściem.

Oczywiście szybszym rozwiązaniem jest zmiana allow_url_fopen na true, ale nie zawsze jest to możliwe (względy bezpieczeństwa przykładowo).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 23:38