Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Upload plików
xxdrago
post 3.01.2013, 01:13:26
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Witam, w planach mam zrobić upload plików (zdjęć + plików). Problem polega na tym, że nie wiem jak najlepiej zabezpieczyć skrypt, myślałem nad sprawdzaniem mime type, ale wydaje mi się , że da się to ominąć.


  1. <?php
  2.  
  3. $uploaded = 0;
  4. $message = array();
  5. foreach ($_FILES['userfile']['name'] as $i => $name) {
  6.  
  7. if ($_FILES['userfile']['error'][$i] == 4) {
  8. continue;
  9. }
  10.  
  11. if ($_FILES['userfile']['error'][$i] == 0) {
  12.  
  13. if ($_FILES['userfile']['size'][$i] > 99439443) {
  14. $message[] = "$name exceeded file limit.";
  15. continue;
  16. }
  17.  
  18. echo $_FILES['userfile']['type'][$i];
  19.  
  20. $uploaded++;
  21. }
  22. }
  23.  
  24.  
  25. echo 'ok';
  26. foreach ($message as $error) {
  27. echo $error;
  28. }
  29.  
  30. ?>


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
mokry
post 3.01.2013, 14:20:53
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Zamiast odkrywać koło na nowo skorzystaj z czegoś sprawdzonego, gotowego i łatwego.

Np.: http://www.verot.net/php_class_upload.htm


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post
wNogachSpisz
post 3.01.2013, 14:46:56
Post #3





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


A kto tą biblitekę pisał? Jakiś garażowy chłoptaś? Upload plików przemieszany z manipulacją obrazkami? Nie dziękuję. W sieci jest dużo dobrego softu do obsługi uploadu plików, ale ww. bbiliteka nie zalicza się do tego grona.
Go to the top of the page
+Quote Post
mokry
post 3.01.2013, 14:58:13
Post #4





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Owszem, w sieci jest bardzo dużo dobrych bibliotek/klas, które pomagają podczas uploadu plików i zdjęć na serwer.
Czy przedstawiony przeze mnie przykład klasy jest dobry czy też nie jest tak na prawdę kwestią gustu i tego, co faktycznie jest akurat potrzebne danemu programiście. Nie zamierzam się tutaj wdawać w dyskusję, czy jest to dobry/lepszy/najlepszy kod, jednak na pewno jest sprawdzony, działa stabilnie i posiada sporo możlwiości, w szczególności jeśli chodzi o możliwość manipulacji na obrazach.


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post
wNogachSpisz
post 3.01.2013, 15:15:04
Post #5





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


To może zrób forka w którym dopiszesz do niej funkcje wynoszenia śmieci.
W twoim guście jest upychanie do jednej bibliteki zadań ze sobą niezwiązanych?

Dla nooba może i takie rozwiąznie jest wystarczające, ale gdy aplikacja zacyzna się powiększać i następuje chwila w której musisz przeprowadzić jakieś operacje na obrazku dawno po uploadzie, to co? kopiujesz ten sam kod do innej bibliteki? Gratulacje, jestes zwolniony.

Ten post edytował wNogachSpisz 3.01.2013, 15:21:06
Go to the top of the page
+Quote Post
mokry
post 3.01.2013, 15:37:34
Post #6





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Przede wszystkim proponuję nie zbaczać z tematu i nie robić off-topa.
tak, dla noob'a takie rozwiązanie jest w zupełności wystarczające. I jeżeli ktoś nim jest zadaje właśnie takie pytania o upload jakie tutaj padło. I takim osobom daje się łatwe rozwiązania, które mogą szybko zastosować w praktyce. Ot tyle. A jeżeli chesz zacząć jakąkolwiek dyskusje na temat dobrych praktyk i zasad w programowaniu oraz odpowiednim podejściu do modelowania i projektowania aplikacji to zapraszam do oddzielnego tematu.

Ten post edytował mokry 3.01.2013, 15:38:49


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post
xxdrago
post 3.01.2013, 16:22:00
Post #7





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Panowie, bez obrazy ale siedzę już w php pare lat. Podglądnę rozwiązanie z tamtej klasy, ale raczej wolałbym coś pod siebie napisaćsmile.gif więc jak najlepiej zabezpieczyć ten formularz?

Ten post edytował xxdrago 3.01.2013, 16:24:43


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
pyro
post 3.01.2013, 16:52:51
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(xxdrago @ 3.01.2013, 01:13:26 ) *
Witam, w planach mam zrobić upload plików (zdjęć + plików). Problem polega na tym, że nie wiem jak najlepiej zabezpieczyć skrypt, myślałem nad sprawdzaniem mime type, ale wydaje mi się , że da się to ominąć.


Cytat
Panowie, bez obrazy ale siedzę już w php pare lat.


No to chyba przez te wszystkie lata jedyne co robiłeś, to pisałeś proste kalkulatory w PHP.

Co do tematu - sprawdzanie rozszerzenia + rozmiarów obrazka to podstawa + is_uploaded_file(). W takim wypadku już nic się nie stanie, chyba, że nieumiejętnie nadasz możliwość wykonywania skryptów PHP np. w plikach graficznych w Apache / .htaccess.


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
xxdrago
post 3.01.2013, 17:16:59
Post #9





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


pyro, wiesz co wole się zapytać, niż potem płakać nad rozlanym mlekiem. I raczej pisało się różne rzeczy ale cały czas unikałem tego uploadu.
A da się jakość sprawdzić czy w obrazku jest zawarty kod php?



--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
pyro
post 3.01.2013, 18:39:05
Post #10





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(xxdrago @ 3.01.2013, 17:16:59 ) *
pyro, wiesz co wole się zapytać, niż potem płakać nad rozlanym mlekiem. I raczej pisało się różne rzeczy ale cały czas unikałem tego uploadu.
A da się jakość sprawdzić czy w obrazku jest zawarty kod php?


Zapytać jak najbardziej, wręcz wskazane, ale z tym "siedzeniem przez kilka lat w PHP" to zwykła ściema, co potwierdziłeś swoim następnym pytaniem czysto początkującego.

A odpowiadając na to pytanie: fread(), fgets(), file_get_contents(), stripos(), stristr(), preg_match(), ...


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
xxdrago
post 3.01.2013, 20:41:53
Post #11





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


W php siedzę od daty rejestracji: 27.07.2010, to co ty dałeś to sprawdziłbym czy w pliku np. *txt jest kod, a mi chodzi o taki kod typu komentarz. Każdy program dodaje komentarz do pliku np. gif. Ten komentarz można podrobić i plik gif będzie działał podobnie na zasadzie pliku php. Tak gdzieś przynajmniej wyczytałem.


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
pyro
post 4.01.2013, 00:23:55
Post #12





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Oczywiście tego, że w/w funkcjami da się otwierać inne pliki niż .txt też nie słyszałeś? Wszystkie pliki, które masz na swoim komputerze da się otworzyć notatnikiem, że tak to ujmę.

// EDIT

Zrób sobie plik .gif o rozmiarach np. 5x5 px, dodaj w komentarzu jakikolwiek kod PHP (np. za pomocą GIMP) i zobacz gdzie on wyląduje.

Ten post edytował pyro 4.01.2013, 00:27:05


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
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 Wersja Lo-Fi Aktualny czas: 23.06.2025 - 15:47