![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od razu mówię że przekopałem google, znalazłem dużo podobnych tematów, lecz żadne rozwiązanie nie było skuteczne w moim przypadku, więc zwracam się z prośbą o pomoc do Was (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam skrypt do uploadu plików na serwer (dla potrzeb forum uprościłem go trochę) który wygląda mniej więcej tak: Część HTML: Kod <form method="post" enctype="multipart/form-data" name="formularz"> <input type="file" name="nowa" id="nowa" /> <input type="submit" name="ok" value="Dodaj fotkę" /> </form> Część PHP: Kod if (is_uploaded_file($_FILES['nowa']['tmp_name'])) { /* kod z uploadem */ } Problem polega na tym, że część po if'ie wogóle się nie wywołuje (?). Tak jakby plik wogóle nie został wysłany (a jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). Sprawdziłem całą tablicę $_FILES za pomocą print_r() i var_dump() i za każdym razem wyskakuje mi pusty wynik: print_r($_FILES): Array ( ) var_dump($_FILES): array(0) { } Czy ktoś może mi pomóc - czym taka sytuacja może być spowodowana? Na home.pl ten skrypt normalnie działa, teraz przerzuciłem na czeski serwer i przestało działać ;/ Będę wdzięczny za pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
a na pewno wysyła ci te dane do odpowiedniego pliku?
nie dodałeś action do formularza |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kod php jest w tym samym pliku więc, skoro nie ma action to i tak ten sam plik się ładuje.
Skrypt jest dobry, działał mi na innym serwerze, myślę że bardziej chodzi tu o jakąś konfigurację php tylko na tym aż tak bardzo się nie znam. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 12.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak duże pliki przesyłasz?
sprawdź ustawienia upload_max_filesize i post_max_size |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
upload_max_filesize 64M
post_max_size 64M Pliki które przesyłam mają od 500 KB do 1 MB, także to też chyba nie jest źródło problemu. Safe Mode wyłączony - jeśli ma to jakieś znaczenie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Zauważyłem za to w phpinfo() to: upload_tmp_dir - no value Może to jest przyczyna? Ten post edytował progresmedia 7.07.2009, 21:41:34 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Może byście tak zaglądali czasem do manuala...? :/
Cytat The temporary directory used for storing files when doing file upload. Must be writable by whatever user PHP is running as. If not specified PHP will use the system's default. Daj var_dump" title="Zobacz w manualu PHP" target="_manual na $_FILES i pokaż, co zwraca. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Właśnie o to chodzi, że var_dump($_FILES) zwraca mi pustą tablicę:
array(0) { } |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Masz włączone raportowanie błędów? Skrypt ma uprawnienia do zapisu w katalogu tymczasowym? To Twój serwer, czy jakiś hosting?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mam włączone raportowanie błędów, jedyne co pokazuje to notice:
Kod Notice[/b]: Undefined index: nowa in [b]/*******************/fotki.php[/b] on line [b]4[/b][b] Co do uprawnień to nie jestem dokładnie pewien, administrator wyłączył Safe Mode więc powinien chyba mieć prawda? A poza tym jakby nie miał to powinien chyba się pokazać błąd Permission Denied. To jest hosting, do tego czeski i strasznie ciężko dogadać się z BOK'iem bo tak średnio znają angielski (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat to powinien chyba się pokazać błąd Permission Denied. Niekoniecznie, tyle sytuacji, ile konfiguracji. [; A phpinfo" title="Zobacz w manualu PHP" target="_manual? is_writable" title="Zobacz w manualu PHP" target="_manual zwraca true dla katalogu tymczasowego? Po zmianie katalogu na znajdujący się w domowym też to samo? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wcześniej już podawałem co pisze mi phpinfo, wszystko wygląda ok. Nie mogę sprawdzić is_writible() katalogu tymczasowego bo nie wiem gdzie on jest (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (w phpinfo() zarówno wartość lokalna jak i globalna to 'no value').
Zastosowałem Kod ini_set('upload_tmp_dir', '/***********/tmp/'); i ten katalog na pewno ma możliwość zapisu (chmod 777) no ale problem nie zniknął, dalej jest to samo :/ |
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Nie mogę sprawdzić is_writible() katalogu tymczasowego bo nie wiem gdzie on jest (w phpinfo() zarówno wartość lokalna jak i globalna to 'no value'). W Unixie jest to po prostu /tmp. A tak BTW, serwer masz swój? Bo podejrzewam, że problem tkwi raczej w samym interpreterze... |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 3 Dołączył: 17.05.2004 Skąd: Nowhere Land Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź w phpinfo(), czy w ogóle masz włączony upload plików (file_uploads), druga opcja jest taka, że katalog tymczasowy jest zapełniony do cna plikami i nie ma miejsca na nowe.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
file_uploads: On
Kod is_writable("/tmp") zwraca wartość 1 Serwer nie jest mój, tak jak pisałem wcześniej jest to czeski serwer (przez co mam utrudniony kontakt z obsługą). Info o serwerze: Cytat Linux atlantis.vshosting.cz 2.6.26-bpo.1-686-bigmem #1 SMP Tue Sep 2 18:42:50 UTC 2008 i686 Build Date Oct 2 2008 08:13:20 Server API Apache 2.0 Handler PHP API 20041225 PHP Extension 20060613 Dla mnie wygląda to tak, że plik wogóle nie przesyła się na serwer, pytanie tylko dlaczego? Ten post edytował progresmedia 8.07.2009, 13:55:23 |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
IMHO najlepiej by było do administracji napisać, bo sprawa jest co najmniej dziwna...
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 7.05.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pisałem już, administrator odpisał mi coś takiego:
Cytat Datum: 7.7.2009 15:31 Hi, when creating folders and files it is necessary to set permissions via the PHP function chmod to 777 Permissions corrected. Please send your requirements in the Czech language Odpisałem, że chmody są ustawione i nie w tym tkwi problem - od tego czasu zero odzewu :/ Problem rozwiązany: Okazało się że błąd był spowodowany tym, że nie było podpiętej domeny, a strona była odpalana przez URL panelu Plesk. Podziękowania dla erixa za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował progresmedia 8.07.2009, 15:24:57 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 07:42 |