Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Niedziałający formularz
Forum PHP.pl > Forum > Przedszkole
sweter
Mam taki prosty formularz:

  1.  
  2. <form enctype="multipart/form-data" action="aktualizacja.php" method="POST">
  3.   <input type="file" name="plik">
  4.   <input type="hidden" name="wyslano" value="1" />
  5.   <input type="submit" value=" OK " />
  6. </form>
  7.  
  8.  


I tak:

1. jeżeli wybiorę jakiś plik i kliknę w "OK" to strona się tylko przeładowywuje i tablica $_POST jest całkiem pusta

2. jeżeli kliknę "OK" i pole plik zostawie puste jest ok.

if sprawdzający, czy formularz został wysłany wygląda tak:

  1.  
  2. if($_POST['wyslano']=="1"){
  3.  
  4.   // wszystko ok
  5.  
  6. }else{
  7.  
  8.   // nie wysłno
  9.  
  10.   // wyświetlany jest powyższy formularz
  11.  
  12. }
  13.  


EDIT: dowiedziałem się, że to przez za duży plik, który wgrywałem.
Czy istnieje możliwość zmiany ograniczenia uploadowanego pliku bez dostępu do php.ini?
r4xz
polecam np.

if($_POST['OK']){

zamiast

if($_POST['wyslano']=="1") {

(nie jest to błąd, ale zawsze 1 linijka mniej i wygląda bardziej profesjonalnie winksmiley.jpg

-----

$_FILES["plik"]["size"]

thek
Po pierwsze nie używaj niepotrzebnie pola "wysłano" jest zbędne. Wystarczy że nadasz submitowi nazwę (choćby name="wyslano") i sprawdzisz w POST czy on istnieje. Choćby funkcją array_key_exists( 'wyslano', $_POST)
To po pierwsze. Po drugie zamykaj inputy... Dla file tego nie zrobiłeś.
A po trzecie to można zmienić - używając htaccess smile.gif
sweter
Dziękuję za wszystkie uwagi.
A co do używania array_key_exists() - nie lepiej użyć isset()? W końcu mniej pisania biggrin.gif

Poza tym pogooglowałem i zalazłem linijkę do htaccess zmieniającą limit pliku:
Cytat
php_value upload_max_filesize 120M

Niestety nie działa sad.gif
potreb
Panie, ustawienia limit max_upload_size oraz max_post_size należy ustawić w php.ini.
thek
@potreb: ciekawe kto Ci udostępni php.ini na serwerze zewnętrznym biggrin.gif W większości przypadków jeśli hosting nie da Ci takiej opcji to możesz to tylko przez htaccess zrobić... O ile i na to Ci pozwolą biggrin.gif Poczytaj dokładnie o możliwościach htaccess a sam zobaczysz, że to możliwe smile.gif htaccess to nie tylko url rewrite smile.gif

@sweter: array_key_exists( 'wyslano', $_POST) i isset( $_POST['wyslano']) dadzą równoważne wyniki więc tutaj jest dowolność w stosowaniu. Jeśli to nie działa to sprawdź na ile masz ustawione te dane. i czy nie wywala jakiegoś błędu innego. Możliwe, że hosting nie pozwala zmieniać php.ini w żaden sposób. Jakby co zawsze możesz do ich BOK napisać z pytaniem czy jest taka możliwość.
potreb
Dlatego trzeba wybierać dobry hosting, co do httaccess to nie używam, bo nie każdy serwer ma taki coś jak Apache smile.gif
thek
Jedyny hosting w Polsce jaki udostępnia php.ini i jaki znam to AZ.pl i mają skopany tak konfig oraz usługi że wolę dopłacić za serwer innej firmie i mieć spokój :] Sorki ale grzebanie we wszystkich ustawieniach php od nich i wyłączanie takich idiotyzmów domyślnych jak magiczne cytowania czy globalsy, które domyślnie mają włączone woła o pomstę do nieba. A nie mam zamiaru odpalać phpinfo i sprawdzać co mają skopane. Wolałem hosting zmienić niż się użerać z dziadami i czekać na ich zbytek dobrej woli by mi być może w ciągu godziny te ustawienia wprowadzili. Bo tyle sobie od maila jaki im wysyłam by ich o tym fakcie poinformować sobie ustalili. Godzinę czekania na zmianę, a teraz niech zrobisz sobie literówkę, to czekaj kolejną godzinę, zanim serwer być może ruszy, o ile gdzieś znów byka nie walnąłeś lub do ich ustawień bezpieczeństwa Twój php.ini nie pasuje i się wykrzacza. Wolę w htaccess zrobić zmianę i widzieć efekt po sekundzie winksmiley.jpg
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.