Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]upload plikow
upeertv
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 5.01.2013

Ostrzeżenie: (0%)
-----


Witam mam pewien problem, otóz znalazlem kod ktory uploaduje pliki z poziomu przeglądarki na serwer oraz dorobilem do niego taką jakby blokade plikó które mogą byc przesłane (typ)

  1. <body>
  2. <form action="" method="POST" ENCTYPE="multipart/form-data">
  3. <input type="file" name="plik"/><br/>
  4. <input type="submit" name="ok" value="Wyślij plik"/>
  5.  
  6. </form>
  7. </body>
  8. </html>



  1. <?php
  2. if(isset($_POST['ok'])){
  3. $JEDENapk = 'image/png';
  4. $DWAapk = 'image/jpeg';
  5. $TRZYapk = 'image/gif';
  6. if ($_FILES['plik']['type'] === $JEDENapk OR $DWAapk OR $TRZYapk) {
  7. $max_rozmiar = 1024*1024;
  8. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  9.  
  10. if ($_FILES['plik']['size'] > $max_rozmiar) {
  11. echo 'Błąd! Plik jest za duży!';
  12. } else {
  13. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  14. echo '<br/>';
  15. if (isset($_FILES['plik']['type'])) {
  16. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  17. }
  18. move_uploaded_file($_FILES['plik']['tmp_name'],
  19. $_SERVER['DOCUMENT_ROOT'].'/foto/'.$_FILES['plik']['name']);
  20. }
  21.  
  22. } else {
  23. echo 'Błąd przy przesyłaniu danych!';
  24. }
  25. } ELSE { echo 'zly'; }
  26. }
  27. ?>


Problem polega na tym ze gdy w
  1. if ($_FILES['plik']['type'] === $JEDENapk OR $DWAapk OR $TRZYapk) {

mam tylko jedną zmienną do sprawdzenia do wszystko działa
  1. if ($_FILES['plik']['type'] === $JEDENapk) {

jednak gdy są wszystkie trzy to skrypt tak jakby nie reaguje na to co tam jets i pozwala na wysyłanie kazdego typu pliku

Ten post edytował upeertv 14.09.2013, 11:35:43
Go to the top of the page
+Quote Post
maviozo
post
Post #2





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

Ostrzeżenie: (0%)
-----


Bo zdaje się, że musisz użyć składni:
  1. if ($_FILES['plik']['type'] === $JEDENapk OR $_FILES['plik']['type'] ===$DWAapk OR $_FILES['plik']['type'] === $TRZYapk){
Go to the top of the page
+Quote Post
_Borys_
post
Post #3





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


  1. $ext_arr = array('image/png','image/jpeg','image/gif');
  2. if (in_array($_FILES['plik']['type'],$ext_arr)) {
  3. //...
  4. }
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


OR zastąp ||, bo tego teraz się używa
Go to the top of the page
+Quote Post
com
post
Post #5





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


|| ma wyższy priorytet od OR, a nie że się teraz używa... warto czasem odwiedzić manual i poczytać http://php.net/manual/en/language.operators.logical.php , a nie "używąć" bo inni tak robią (IMG:style_emoticons/default/wink.gif) poza tym rozwiązanie które zaproponował _Borys_ ma w tym wypadku większy sens, niż kombinowanie z warunkami (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
upeertv
post
Post #6





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 5.01.2013

Ostrzeżenie: (0%)
-----


tak wszystko działa, dzięki (IMG:style_emoticons/default/smile.gif)

POMOGŁ (IMG:style_emoticons/default/Lkingsmiley.png)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:48