Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sprawdzenie czy dany link prowadzi do obrazka
michal_s
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Witam mam mały problem. Z formularza ma być podawany link do obrazka. Jak najłatwiej sprawdzić czy użytkownik faktycznie podał link do pliku graficznego a nie np. http://forum.php.pl ?

Może przez jakąś wbudowaną funkcję która szuka wystąpień np .jpg , .jpeg i jeśli chociaż jedno zajdzie zwraca 1. Jest coś takiego? Szukałem ale coś nie mogę znaleźć.
Go to the top of the page
+Quote Post
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


takie rozwiązanie Ci nic nie da, bo przecież można użyć mod_rewrite i podać link domena.pl/obrazek.jpg, który będzie innym plikiem

użyj funkcji getimagesize();

przykład:

  1. if($img = getimagesize("http://www.joemonster.org/images/logo.gif"))
  2. {
  3. print_r($img);
  4. }
  5. else echo "to nie jest obrazek";
  6.  
  7.  
  8. if($img2 = getimagesize('http://forum.php.pl/index.php?act=post&do=reply_post&f=27&t=166466'))
  9. {
  10. print_r($img2);
  11. }
  12. else echo "to nie jest obrazek";
Go to the top of the page
+Quote Post
michal_s
post
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Hmm. Starałem się zrobić tak:

  1. $info = getimagesize($adres);
  2.  
  3. if ( $info[2]>=1) {
  4.  
  5. instrukcje;
  6. }
  7.  
  8. else {
  9. echo 'to nie jest obrazek!';
  10. }
  11.  
  12.  


Tyle że przy tym korzystaniu z getimagesize ciągle mi się wyświetla błąd że "[function.getimagesize]: failed to open stream: no suitable wrapper could be found"... W zmiennej $adres na 100% jest poprawny link do .jpeg

Ten post edytował michal_s 29.12.2010, 19:37:30
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Widocznie podajesz zły adres do pliku..

Ten post edytował CuteOne 29.12.2010, 19:39:47
Go to the top of the page
+Quote Post
michal_s
post
Post #5





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Pliku w sensie zdjęcia tak?
testowo napisałem takie coś:
  1. <?php
  2.  
  3. $adres = $_GET['adres'];
  4. $info = getimagesize($adres);
  5.  
  6. echo $adres;
  7.  
  8. if ( $info[2]>=1) {
  9.  
  10. echo 'pierwsze';
  11. }
  12.  
  13. else {
  14. echo 'kolejne';
  15. }
  16. ?>


adres zrobilem taki : (domena)/cos.php?adres=http://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg

wynikiem jest:


Warning: getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration in /homepages/28/d344883396/htdocs/cos.php on line 4

Warning: getimagesize(http://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg) [function.getimagesize]: failed to open stream: no suitable wrapper could be found in /homepages/28/d344883396/htdocs/cos.php on line 4
http://upload.wikimedia.org/wikipedia/comm...enge.jpgkolejne


linia 4 to: $info = getimagesize($adres);

Co tu jest źle, z tego co pisaliście powinno działać i z tego co doczytałem
Go to the top of the page
+Quote Post
tehaha
post
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


odpowiedź jest tutaj: URL file-access is disabled in the server configuration, w konfiguracji wyłączone jest obsługiwanie dostępu do pliku z URL dla tej funkcji, u mnie to co wkleiłeś działa bez problemu

a dokładniej chodzi o "allow_url_fopen", możesz zobaczyć przez phpinfo(), zapewne masz na off

Ten post edytował tehaha 29.12.2010, 20:24:23
Go to the top of the page
+Quote Post
michal_s
post
Post #7





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


A no oczywiście masz rację ;/ Idzie to jakoś zmienić? (Pewnie głupie pytanie, ale średnio ogarniam temat więc wybaczcie). A jak nie to ma ktoś pomysł jak inaczej rozwiązać mój problem, bo serwera raczej nie zmienie...
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(michal_s @ 29.12.2010, 20:29:40 ) *
A no oczywiście masz rację ;/ Idzie to jakoś zmienić? (Pewnie głupie pytanie, ale średnio ogarniam temat więc wybaczcie). A jak nie to ma ktoś pomysł jak inaczej rozwiązać mój problem, bo serwera raczej nie zmienie...


Najprościej w php.ini o ile masz do niego dostęp. Jeśli nie to pozostaje Ci ini_set bądź php_value/php_flag w pliku .htaccess - te sposoby również mogą być zablokowane.
Go to the top of the page
+Quote Post
michal_s
post
Post #9





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Pewnie dobrze mi doradziłeś tylko średnio wiem jak z tego skorzystać? Serwer mam na 1and1. Opisałbyś może trochę jaśniej jak to wszystko znaleźć? Albo w ogóle jak od innej strony podejść do problemu z początku. Może jeszcze dodam, że wcześniej skrypt sprawdza poprzez curla czy dany odnośnik w ogóle dokądś prowadzi, czy w ogóle istnieje. Więc może wystarczyłoby to sprawdzanie najczęstszych rozszerzeń plików graficznych na końcu...

Ten post edytował michal_s 29.12.2010, 20:51:13
Go to the top of the page
+Quote Post
thek
post
Post #10





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




W takim razie wynika z tego co piszesz, że użycie fopen, socketów, file_get_contents i innych zostało zablokowane odgórnie. Dodałeś jednak, że curl jest dostępny, więc spróbuj go użyć do pobrania obrazka i sprawdź jego wyjście smile.gif Trochę naokoło, ale skoro tamte masz poblokowane (i znając życie nie ma możliwości ich odblokowania) to pozostaje tylko to lub to co wspomniał webdice. Spróbuj dopytać w 1&1 czy jest możliwość zmiany ustawień dyrektyw php i jeśli tak to w jaki sposób (podał Ci je webdice) i których.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
michal_s
post
Post #11





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

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


Jednak jest możliwość ich odblokowania smile.gif Dzięki za pomoc już wszystko działa.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 07:59