Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML]Problem z przesyłaniem plików przy uploadzie
progresmedia
post
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.
Go to the top of the page
+Quote Post
Pawel_W
post
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
Go to the top of the page
+Quote Post
progresmedia
post
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.
Go to the top of the page
+Quote Post
mip
post
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
Go to the top of the page
+Quote Post
progresmedia
post
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
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
progresmedia
post
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) { }
Go to the top of the page
+Quote Post
erix
post
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?
Go to the top of the page
+Quote Post
progresmedia
post
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)
Go to the top of the page
+Quote Post
erix
post
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?
Go to the top of the page
+Quote Post
progresmedia
post
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 :/
Go to the top of the page
+Quote Post
erix
post
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...
Go to the top of the page
+Quote Post
zeulus
post
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.
Go to the top of the page
+Quote Post
progresmedia
post
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
Go to the top of the page
+Quote Post
erix
post
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...
Go to the top of the page
+Quote Post
progresmedia
post
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
Go to the top of the page
+Quote Post

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: 3.10.2025 - 07:42