Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload pliku - Access Denied
Forum PHP.pl > Forum > Przedszkole
track
Mam skrypt ktory zajmuje sie uploadem zdjec na serwer:

  1. <?php
  2.  
  3. if($_SESSION[admin] == &#092;"Y\")
  4. {
  5. if($_POST['cat'] == &#092;"\" OR $foto_name == \"\")
  6. {
  7. echo &#092;"Proszę wypełnić wszystkie pola.\";
  8. echo &#092;"<p>\";
  9. echo &#092;"<img src=pliki/arrow_left.gif border=0> <a href=index.php?id=galery&action=add_foto>powrót</a>\";
  10. }
  11. else
  12. {
  13. $name_foto = explode(&#092;".\", $foto_name);
  14. $fotto = $name_foto[0];
  15. $extension = $name_foto[1];
  16. $ask = &#092;"SELECT * FROM sms_galery_foto WHERE cat = '$cat' AND foto = '$fotto'\";
  17. $do = mysql_query($ask) or die(&#092;"<P>Error: <b> \" . mysql_error() . \"n\");
  18. $num = mysql_numrows($do);
  19. if($num != &#092;"0\")
  20. {
  21. echo &#092;"Istnieje już taka nazwa zdjęcia w wybranej kategori.\";
  22. echo &#092;"<p>\";
  23. echo &#092;"<img src=pliki/arrow_left.gif border=0> <a href=index.php?id=galery&action=add_foto>powrót</a>\";
  24. }
  25. else
  26. {
  27. copy($foto, &#092;"pliki/galery/$_POST[cat]/$foto_name\");
  28. $ask = &#092;"INSERT INTO sms_galery_foto(id, cat, foto, extension, description) VALUES ('', '$_POST[cat]', '$fotto', '$extension', '$_POST[description]')\";
  29. $do = mysql_query($ask) or die(&#092;"<P>Error: <b> \" . mysql_error() . \"n\");
  30. echo &#092;"Zdjęcie zostało poprawnie dodane.\";
  31. echo &#092;"<p>\";
  32. echo &#092;"<img src=pliki/arrow_left.gif border=0> <a href=index.php?id=galery>powrót</a>\";
  33. }
  34. }
  35. }
  36. else
  37. {
  38. echo $message_forbidden;
  39. }
  40.  
  41. ?>


Jak zrobic, aby pliki faktycznie zostaly umieszczone na serwerze? Tak, zeby nie wyskakiwac Access Denied? Z gory dzieki za odpowiedz.

Pozdrawiam TRACK
fones
a przypisałeś folderowi do ktorego maja trafiac zdjecia chmod 777 (czyli prawa do zapisu i odczytu etc.) ?

pozdro guitar.gif
track
Jesli chce zrobic
  1. <?php
  2.  
  3. chmod(&#092;"data/galery\", 777)
  4.  
  5. ?>


to wyskakuje, ze chmod not permitted... Dlaczego?

Pozdrawiam TRACK
Jojo
Bo właścicielem katalogu jesteś Ty a nie serwer. Musisz ustawić prawa logując się do powłoki systemu albo poprzez protokół FTP.
fones
Windows Commander -> Plik -> Zmien atrybuty -> (zaznacz wszytkie pola)
PLIKI NA SERWERZE... bo pliki na dysku maja inne atrybuty...

pozdro guitar.gif
track
A jak tworze nowy katalog to on ma uprawnienia 755, a jak zrobic, abym nie musial zmieniac uprawnien recznie poprzez FTP, tylko przez chmod()? Z gory dzieki za odpowiedz.

Pozdrawiam TRACK
fones
jezeli chmod w php nie działa to ja juz nie wiem... Jojo masz jakiś pomysł?

pozdro guitar.gif
Jojo
track: Ty ten katalog tworzysz z poziomu php czy ręcznie przez ftp/shella?

Jeśli z poziomu php to możesz w funkcji mkdir" title="Zobacz w manualu PHP" target="_manual podać drugi parametr lub skorzystać z funkcji chmod" title="Zobacz w manualu PHP" target="_manual (powinna działać).

Natomiast jeśli tworzysz go ręcznie to i ręcznie powinieneś zmienić prawa dostępu do niego. 755 jest domyślne dla katalogu. AFAIK można to zmienić ale dokładnie nie wiem jak. Ponadto zmienianie domyślnych ustawień na 777 nie jest IMHO dobrym pomysłem.
Dabroz
BTW: Ten Twój skrypt ma masę dziur... korzystanie z tego to samobójstwo
track
Teraz katalog tworze bez problemu. Ale jak chce wrzucic zdjecie to wyskakuje:

Kod
copy(): SAFE MODE Restriction in effect. The script whose uid is 14776 is not allowed to access /home/s/smslo-www/public_html/pliki/galery/7 owned by uid 33 in add_foto_confirm.php on line 27

Warning: copy(pliki/galery/7/P0011.JPG): failed to open stream: Permission denied in add_foto_confirm.php on line 27


Dlaczego?

Pozdrawiam TRACK
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.