Switch

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
robunio_s
Nowicjusz
Posty: 4
Dołączył(a): wtorek, 14 grudnia 2010, 12:48

Switch

Post przez robunio_s »

Witam Serdecznie!

Mam mały problem, w którym wydaje mi się że chyba nie działa dobrze instrukcja warunkowa SWITCH, a mianowicie chodzi o wysłanie pliku poprzez $_FILES

kod HTML

Code: Zaznacz cały

<form action='upload.php' method='post' enctype='multipart/form/data' >
<div>
<input type='hidden' name='MAX_FILE_SIZE' value='40000' />
<input type='file' name='plik' />
<input type='submit'  value='Dodaj' />
</div>
</form>

kod PHP
<?php
  /*
    $_FILES['plik']['name'] - posiadam nazwe pliku ktora wysyla dana osoba
    $_FILES['plik']['type'] - zwraca nam typ danego pliku jako MIME TYPE
    $_FILES['plik']['tmp_name'] - zwraca nam sciezke zapisanego pliku ale tymczasowego
    $_FILES['plik']['error'] - ktory przyjmuje wartosci od 0 do 4
    
    0 - plik zostal pomyslnie uploadowany
    1 - plik posiada wielkosc zbyt duza(wieksza niz w php.ini)
    2 - plik posiada wielkosc wieksza niz w MAX_FILE_SIZE
    3 - plik nie zostal przyjety w calosci
    4 - nie ma zadnego pliku
    
    
    move_uploaded_file(sciezka_temporary, sciezka_gdzie_zapisac);
  */
  
  switch ($_FILES['plik']['error'])
  {
    case 0:

      break;
    case 1:
      echo "plik posiada wielkosc zbyt duza(wieksza niz w php.ini)";
      break;
    case 2:
      echo "plik posiada wielkosc wieksza niz w MAX_FILE_SIZE";
      break;
    case 3:
      echo "plik jest niekompletny";
      break;
    case 4:
      echo "nie wybrales zadnego pliku";
      break;
  }
?>
Jest to część ćwiczenia z videokursu PHP nie działa tutaj chyba instrukcja switch prawidłowo bo kiedy polecenia BREAK zaznaczę jako komentarze to wyświetlają się wszystkie odpowiedzi, a gdy normalnie to nic się nie wyświetla. Proszę serdecznie o pomoc, i z góry dziękuję.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Switch

Post przez Morfidon »

Witam,

Przepraszam, że odpowiadam dopiero teraz, ale wczoraj nie miałem dostępu do internetu.

Właśnie, dlatego stosuje się polecenie "break;"

'break;' sprawia, że program "wyskakuje" z zakresu switch'a, czyli jego { } (klamerek).

bez 'break;', wszystkie instrukcje, które znajdują się w zakresie (czyli pomiędzy klamerkami { }) zostaną wykonane poczynając od tego warunku (case), który został spełniony. (te które są przed spełnionym warunkiem nie zostaną wykonane, te które są po spełnionym warunku tak)

Dokładnie wyjaśniam to w lekcji "7.1 - instrukcja warunkowa switch".

Pozdrawiam serdecznie
Post Reply