Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z funkcją move_upload_files
Solaris2001
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 24.07.2012

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


Witam. Napisałem sobie skrypt, który wgrywa zdjęcia na serwer, zmienia nazwę, przenosi do katalogu i wykonuje na pliku przekształcenia.
O ile dobrze działał na hoście cba.pl to na ugu.pl jest problem z przeniesieniem pliku z tmp do katalogu. Plik jest wgrywany bo normalnie działają funkcję porówniania rozmiaru, rozszerzenia. Niestety parser nie wywala żadnego błędu, tylko idzie dalej. Czy możecie mi powiedzieć o co chodzi? Poniżej wklejam fragment kodu odpowiedzialny za tą funkcję:
  1. $max_rozmiar = 3072*1024;
  2. if (isset ($_POST['submit'])){
  3. if (!empty($_POST['tytul'])){
  4. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  5. if ($_FILES['plik']['size'] > $max_rozmiar) {
  6. $info = 'Błąd! Plik jest za duży!';
  7. $przerwij = true;
  8. }
  9. else if ($_FILES['plik']['type']!='image/jpeg'){
  10. $info = '<span style="color: red;">Niepoprawny format pliku. Akceptowane są pliki tylko z rozszerzeniem <b>.jpg</b>!</span>';
  11. $przerwij = true;
  12. }
  13. else {
  14. $info = 'Zdjęcie zostało dodane! Skopiuj kod poniżej i wklej go do tematu.';
  15. $plik_nazwa = nazwa_pliku();
  16. move_uploaded_file($_FILES['plik']['tmp_name'],$_SERVER['DOCUMENT_ROOT'].'/img/'.$plik_nazwa.'.jpg');
  17. mysql_query("INSERT INTO `galeria` (`tytul`,`opis`,`autor`,`adres`) VALUES ('".$_POST['tytul']."','".$_POST['opis']."','".$uzytkownik."','http://mpkoc.ugu.pl/img/".$plik_nazwa.".jpg')");
  18. }
  19. }
  20. ...


$_SERVER['DOCUMENT_ROOT'] - "/virtual/m/p/mpkoc.ugu.pl"
$_FILES['plik']['tmp_name'] - "/virtual/tmp/phpSmiPg6"

Ten post edytował Solaris2001 14.10.2012, 21:04:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Cytat(cudny @ 16.10.2012, 14:45:14 ) *
To było nie miłe, a co katalogów z fotkami to ja nigdy tam nie daje 777 (IMG:style_emoticons/default/exclamation.gif) ! - wystarczy is_dir( .. ) i utworzyć w razie potrzeby.

To nie miało być niemiłe (potrafię być bardziej niemiły) - miało "tylko" spowodować, byś czasem pomyślał o tym, że ktoś inny wypowiadający się na forum TAKŻE może mieć wiedzę - takiej postawy w Twoich wypowiedziach jakoś nie odczułem. Choć z drugiej strony, jeśli poczułeś się urażony, to przepraszam.

Oczywiście, można i tak - choć nie zawsze się da (vhost w katalogu usera i konto z dostępem FTP czy nawet ssh) - Apache działa z innymi prawami dostępu niż ma user poprzez połączenia via ftp/ssh - tu z reguły daje się prawa 777 (lub nawet 1777), choć czasami da się pogłówkować, i zrobić tak, żeby nie dawać 777

Cytat(cudny @ 16.10.2012, 14:45:14 ) *
Nadawanie uprawnień 777 to dostęp nie tylko dla apache ! Poza tym po co ci prawo do wykonywania plików dla obrazków, co ?

Autor wątku (Solaris2001) napisał w trzecim poście: "Już działa. Chodziło o to, że folder img nie miał ustawionych CHMODów na 777." Musisz dać prawo "x" na katalog, by go odczytać (wylistować czy "wejść" do niego). Najważniejszą rzecz wytłuściłem. Poza tym, o zapobieganiu wykonywania plików (to się robi globalnie dla filesystemu podając flagi dla polecenia 'mount') już w wątku pisałem.

Cytat(cudny @ 16.10.2012, 14:45:14 ) *
Linux jest bezpieczny właśnie dzięki swoim ograniczonym uprawnieniom dla danych aplikacji / userów !

I rozumiem, że to co proponowałeś, czyli nieograniczone powiększenie praw dostępu dla apache (dodanie go do grupy adminów) jest mniejszym złem niż 777 na JEDEN katalog?

Go to the top of the page
+Quote Post

Posty w temacie


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: 28.12.2025 - 22:21