Od dłuższego czasu pracuję nad własnym CMSem, a teraz właściwie już nad jego drugą edycją. Napotkałem problem, którego nie wiem jak rozwiązać i bardzo proszę o pomoc.
Sprawę opiszę krótko: formularz z polami input do wrzucenia 30 zdjęć. Zdjęcia są wrzucane na serwer, skalowane itp, ścieżka dodawana do bazy danych. Ale...
Skrypt działa mi tylko gdy wybiorę zdjęcie (albo zdjęcia) których atrybut "name" nie jest większy od 20. W praktyce wygląda to tak, że dodając do formularza 30 zdjęć, skrypt wczyta mi tylko 20 pierwszych. A jeśli dodam do formularza 20 ostatnich, to wczyta mi tylko 10 zdjec, bo ostatnia 10 jest dziwnie ucięta.
Wklejam kod. Ogólnie jest on dużo bardziej rozbudowany, ale żeby rozwiązać problem uprościłem go do minimum i zobaczyłem kilka ciekawych rzeczy.
test.php
test_skrypt.php
<? $liczba = 1; while($liczba < 31) { $plik = 'zdjecie'.$liczba; $zdjecie_tmp = $_FILES[$plik]['tmp_name']; { $zdjecie_nazwa = $_FILES[$plik]['name']; } ++$liczba; } ?>
I teraz parę modyfikacji skryptu i co następuje :
<? $liczba = 1; while($liczba < 31) { $plik = 'zdjecie'.$liczba; $zdjecie_tmp = $_FILES[$plik]['tmp_name']; { } ++$liczba; } ?>
Powyższy skrypt wyświetla na ekranie napis "kuba" poprzedzony liczbą 1-20 ile plików załadowałem, oczywiście mowa tylko o 20 pierwszych polach formularza.
I następne mody:
<? $liczba = 1; while($liczba < 31) { $plik = 'zdjecie'.$liczba; $zdjecie_tmp = $_FILES[$plik]['tmp_name']; { } ++$liczba; } ?>
Wyświetli mi wstawiony napis 30 razy -czyli pętla wykonuje się bez problemu. Wyświetla dodatkowo to co poprzednio.
I ostatni:
<? $liczba = 1; while($liczba < 31) { $plik = 'zdjecie'.$liczba; $zdjecie_tmp = $_FILES[$plik]['tmp_name']; { } { } ++$liczba; } ?>
Wyświetli to co poprzednio + 20 razy wyświetony napis "nie jest pusty". Tak jakby pola od 21-30 miały przypisaną jakąś wartość?
Pliki jakie wrzucam to nie są duże pliki, po kilkadziesiąt kb, ew. 500kb.
A tutaj istotne ustawienia PHP mojej domeny:
memory_limit = 128M
post_max_size = 64M
file_uploads = On
upload_max_filesize = 128M
Bardzo proszę o jakąś pomoc.
Pozdrawiam