Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]upload - lokalnie OK, na serwerze nie działa
Forum PHP.pl > Forum > Przedszkole
kiewball
Mam pewien problem, z uploadowaniem pliku na serwer. Po próbie wysłanie pliku i wcześniejszym utworzeniu folderu z uprawnieniami 0777 otrzymuję komunikat:

Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 14516 is not allowed to access /home/kiewball/domains/newmadage.pdg.pl/public_html/albumy/Urodziny Artefakt 2008 owned by uid 1000 in /home/kiewball/domains/newmadage.pdg.pl/public_html/admin/strony/fotki/upload_mini_jpg.php on line 34

Problem w tym, że lokalnie u mnie na komputerze (pod xampp'em) wszystko działa prawidłowo. Błąd wyświetla się tylko na serwerze. W innym miejscu strony mam inny moduł, na którym upload działa mi prawidłowo.

  1. <?php
  2. include "../../config.php";
  3. include "../strony/fotki/menu.php";
  4. echo '<div id="main">';
  5. echo '<div id="tekst2">WYPEŁNIJ WSZYSTKIE DANE oznaczone *</div><p>';
  6. $tytul = $_POST['tytul'];
  7. $plik = $_POST['plik'];
  8. if (empty($tytul))
  9. //rozmiar dla zdjęć poziomych 666px x 500px, dla pionowych 500px x 666px
  10. {
  11. echo '<form enctype="multipart/form-data" id="dodaj" name="dodaj" method="post" action="index2.php?id=dodaj_album">';
  12. echo '<table><tr>';
  13. echo '<td>Tytuł albumu: * <br /><input name="tytul" type="text" id="tytul" tabindex="1" size="40" maxlength="40" /></td></tr>';
  14. //<input> ukryty dla określenia wielkości przesyłanego pliku
  15. echo '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">';
  16. echo '<tr><td>Miniaturka (format: .jpg rozmiar 133px x 100px ) <br /><input name="plik" type="file" id="plik" tabindex="4" size="40" maxlength="40" /></td></tr>';
  17. echo '</table><br><table>';
  18. echo '<tr><td><p /><input name="DODAJ ZESPOŁ" type="submit" id="dodaj" value="DODAJ ALBUM" tabindex="5"><p /></td></tr>';
  19. echo '</table>';
  20. echo '</form>';
  21. }
  22. else
  23. {
  24. $lokalizacja = "../../albumy/$tytul";
  25. $plik_tmp = $_FILES['plik']['tmp_name'];
  26. list($width, $height, $type, $attr) = getimagesize($plik_tmp);
  27. if (($width==133) and ($height ==100))
  28. {
  29. if (file_exists("../../albumy/$tytul"))
  30. {
  31. echo '<br><div id="tekst">Wybierz inną nazwę. Album o nazwie "'. $tytul .'" już istnieje.</div>';
  32. }
  33. else
  34. {
  35. mkdir("../../albumy/$tytul", 0777);
  36. chmod("../../albumy/$tytul", 0777);
  37. include ("upload_mini_jpg.php");
  38. echo '<div id="tekst2">Dodano album: '.$tytul .'</div>';
  39. }
  40. }
  41. else
  42. {
  43. echo '<br><div id="tekst">Miniaturka musi mieć rozmiar 133px x 100px.</div>';
  44. }
  45.  
  46. }
  47. echo '</div>';
  48. ?>


include ("upload_mini_jpg.php");
  1. <?php
  2. if (!isset($plik_tmp))
  3. {
  4. echo '<br><div id="tekst">Nie dodałeś pliku graficznego</div>';
  5. }
  6.  
  7. if ($_FILES['plik']['error'] >0)
  8. {
  9. echo 'Wystąpił problem';
  10. switch ($_FILES['plik']['error'])
  11. {
  12. case 1: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; break;
  13. case 2: echo 'Rozmiar pliku przekroczył wartość max_file_size'; break;
  14. case 3: echo 'Plik wysłany tylko częściowo'; break;
  15. case 4: echo 'Wysłanie nie powiodło się'; break;
  16. }
  17. }
  18. if ($_FILES['plik']['type'] != 'image/jpeg')
  19. {
  20. echo 'Plik nie jest jpg\'iem';
  21. exit;
  22. }
  23.  
  24. if(is_uploaded_file($plik_tmp))
  25. {
  26. move_uploaded_file($plik_tmp, "$lokalizacja/mini.jpg");
  27. }
  28. ?>
  29.  


Może ktoś pomóc?
Jestem początkujący, co pewnie widać po kodzie.
Berg
Masz ustawiony safe mode na serwerze który blokuje Ci wrzucenie pliku do folderu. Jedna opcja to wyłączenie safe mode przez .htaccess, php.ini lub z poziomu php (ale takiej możliwości zazwyczaj serwery z safe mode nie dają), napisanie do admina z prośbą o wyłączenie opcji lub zmiana serwera. Jeśli jednak koniecznie chcesz używać tego serwera i masz dostęp do ftp to plik możesz wrzucić poprzez ftp wywołany z poziomu php (więcej tutaj).
nospor
Cytat
To raczej nie jest powód, ponieważ na innej podstronie działa mi upload.

"W innym miejscu strony mam inny moduł, na którym upload działa mi prawidłowo."
tja... ale pewnie w innym miejscu wrzucasz do zupelnie innego katalogu. Przeciez komunikat błedu wyraźnie mowi co jest nie tak.
kiewball
Cytat(nospor @ 23.09.2009, 21:35:05 ) *
tja... ale pewnie w innym miejscu wrzucasz do zupelnie innego katalogu. Przeciez komunikat błedu wyraźnie mowi co jest nie tak.


Wrzucam dokładnie do tego samego katalogu. Przed chwilą sprawdziłem i faktycznie moduł, który działał prawidłowo jeszcze wczoraj, przestał działać. Wygląda na to, że admin wprowadził zmiany na serwerze.
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.