Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak się zabezpieczyć przed pustym <input type=file>
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Jak uniemożliwić userowi wysłanie formularza z polem typu 'file' jeśli nie wypełni on tego pola?

Odpowiedź wydaje się banalna:

  1. <input type=file name=plik>
  2.  
  3. <?
  4.  
  5. if(!isset($_POST['plik'])){ echo 'wpisz plik'; }
  6.  
  7. //lub
  8.  
  9. if($_POST['plik']==""){ echo 'wpisz plik'; }
  10.  
  11. ?>


Rzecz w tym, że to nie działa. Isset() traktuje zmienną $_POST['plik'] jakby zawsze była 'nieustawiona'. Drugi warunek traktuje zmienną jak pusty string jeśli wskażemy plik. Innymi słowy zawsze wyświetla się 'wpisz plik'.


Jeśli zrobię tak:
  1. <?php
  2. if(isset($_POST['plik'])){
  3. jakas_funkcja();
  4. }
  5.  
  6. //lub
  7.  
  8. if($_POST['plik']!=""){
  9. jakas_funkcja();
  10. }
  11. ?>

To jakas_funkcja(); się nie wykona.


Macie jakieś pomysły czemu tak się dzieje?

Dzięki.
crackcomm
  1. <form enctype="multipart/form-data" method="POST">
  2. Choose a file to upload: <input name="uploadedfile" type="file" /><br />
  3. <input type="submit" value="Upload File" />
  4. </form>
  5. <?
  6. if( $_FILES['uploadedfile']['error']==0 ) { echo 'jest plik!'; }
  7. ?>

var_dump" title="Zobacz w manualu PHP" target="_manual print_r" title="Zobacz w manualu PHP" target="_manual
sadistic_son
Fantastycznie:)

Chodziło mi o to ---> $_FILES['uploadedfile']['error']==0

Dzięki:)
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.