![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam zwykły formularz, w którym mam kilka pól input typu text, i jeden typu file.
Problem polega na tym, że gdy chce wysłać plik rar strona wysyła plik na serwer ale w ogóle ani nie można się do niego dostać, ani nie wysyła innych danych formularza. Tak jakby serwer całkowicie stracił te dane. tak wygląda formularz część php tego pliku to tylko próba sprawdzenia czy formularz został wysłany(wychudziłem go ale nadal przy wysłaniu wyskakuje napis błąd)
Ten problem nie występuję z żadnym innym plikiem przynajmniej nie zauważyłem tego ![]() Plik nie zawiera ani grama skryptu javascript. Czy może być to wina serwera. Mam zainstalowanego XAMPP-a. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
a bardziej poprawnie Czemu 2 rozwiazanie jest bardziej poprawne? Poniewaz jest odporne na wszelkiego rodzaju bledy zwiazane z nazewnictwem (wlasnie takie, jakie popelniasz). Pozdrawiam Ten post edytował lukaskolista 11.09.2012, 17:26:34 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
@up
1. Powiedz nam, czemu submitted jest źle, a submit jest dobrze ? Przecież w formularzu są pola z name="submitted" i name="submit" 2. Czemu isset($_POST['pole']) jest źle, a empty($_POST) to jest dobrze ? Przecież oba sposoby są dobre, chociaż pierwszy chyba lepszy w przypadku kilku formularzy. Edit:// Cytat Czemu 2 rozwiazanie jest bardziej poprawne? Poniewaz jest odporne na wszelkiego rodzaju bledy zwiazane z nazewnictwem (wlasnie takie, jakie popelniasz). Pozdrawiam To żaden argument. Ten post edytował peter13135 11.09.2012, 17:45:49 -------------------- :)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
mi nie chodzi o to jak sprawdzać czy formularz został wysłany czy nie tylko dlaczego gdy próbuję go wysłać z plikiem rar nic się nie wysyła?
sprawdziłem to if( ! empty($_POST)) tablica jest pusta mimo wpisania danych. Z plikami innymi niż rar formularz wysłany jest normalnie. dlaczego? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Skopiowałem Twój formularz wraz z kodem i wszystko jest okej
Kod <form method="post" id="uploadform" action="" enctype="multipart/form-data">
<input type="hidden" name="submitted" value="true"> <p><label for="namefrom">Pseudonim/Imię Nazwisko <span class="required">*</span></label> <input name="namefrom" id="namefrom" type="text" class="field" value="" tabindex="1"></p> <p><label for="emailfrom">Email <span class="required">*</span></label> <input name="emailfrom" id="emailfrom" type="text" class="field" value="" tabindex="3"></p> <p><label for="subject">Temat <span class="required">*</span></label> <input name="subject" id="subject" type="text" class="field" value="" tabindex="5"></p> <p><label for="comments">Komentarz <span class="required">*</span></label> <textarea name="comments" id="comments" rows="7" cols="10" class="field" tabindex="6"></textarea></p> <p><label for="attachment">Załącz plik <span class="required">*</span><br />(Maksymalny rozmiar 10MB,<br />dozwolone formaty pliku: .zip, .rar)</label> <input name="attachment" id="attachment" type="file" tabindex="7"> </p><p><input type="submit" name="submit" id="submit" value="Wyślij!" tabindex="8"></p> </form> <?php print_r($_POST); print_r($_FILES); if(isset($_POST['submitted'])) { echo "ok"; } else { echo "błąd"; } -------------------- :)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli próbowałeś wysłać plik rar.
czyżby wina mogła leżeć po stronie serwera? Jak tak to gdzie to się ustawia? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
tak, oto przykład :
Kod Array ( [submitted] => true [namefrom] => [emailfrom] => [subject] => [comments] => [submit] => WyĹlij! ) Array ( [attachment] => Array ( [name] => 1280_1024.rar [type] => application/x-rar-compressed [tmp_name] => E:\programy\xampp\tmp\phpB68.tmp [error] => 0 [size] => 2350068 ) ) ok -------------------- :)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Coś czuję że wina może być ustawień serwera(od samego początku nic nie zmieniałem w ustawieniach). Jak tak to gdzie to można ustawić? No chyba, że tylko mój xampp ma takie odchyły
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
No nie wiem, ja nic nie zmieniałem w swoim xamppie i to to działa ;P
-------------------- :)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie zauwazylem pola submitted
![]() id ( ! empty($_POST)) {...} jest lepsze, bo jest bledoodporne, nazewnictwo formularzy nie ma w tym przypadku znaczenia. Kazdy ma tam swoje przyzwyczajenia i nie bede nikomu nic narzucal. Przeslane pliki nie znajduja sie w tablicy $_POST, tylko w tablicy $_FILES w bardzo niewygodnej formie (jesli jest ich wiecej, niz 1). Normalizacje tablicy $_FILES mozna znalezc w manualu |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale błąd w nazewnictwie możesz popełnić wszędzie, zarówno w pliku html, jak i css albo php, czy w zapytaniu sql, więc taki wyjątek, że nie muszę pilnować literówek w tym jednym przypadku, za wiele dobrego nie daje.
Po co piszesz o tym, że pliki nie znajdują się w $_POST, i to że pliki w $_FILES są w niewygodnej formie ? Autor nie pisał o niczym takim i to wszystko nie ma wpływu na problem autora tematu. -------------------- :)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź w php.ini wartość linii: upload_max_filesize oraz upload_tmp_dir i sprawdź czy katalog ma chmod 777.
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
O jakim katalogu mówisz ? Przecież on nigdzie nie zapisuje tego pliku
![]() -------------------- :)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Mówię o katalogu, w którym tymczasowo przechowywane są pliki przed zapisaniem w określonej ścieżce (via tmp_name).
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
upload_tmp_dir = "C:\xampp\tmp"
upload_max_filesize = 128M Ścieszkę znałem już wcześniej i wiem że plik rar jest wysyłany gdyż tworzą się tam nowe pliki w przypadku wysłania pliku rar ale tablica $_POST i $_FILES pozostają puste. Wielkość pliku tu i tak nie gra roli gdyż wtedy chyba dane formularza powinny być przekazane. Już nie raz wgrywałem inne typy plików więc katalog na pewno ma chmod 777. Wprawdzie mówiąc ten serwer jest dla mnie serwerem testowym gdyż cala strona znajdzie się na płatnym serwerze i mam nadzieję, że ten błąd tam nie wystąpi. Tylko cały czas się ciekawię co ma przeciwko temu bym nie mógł wgrywać plików rar? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:10 |