Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sprawdzanie poprawności rozszerzenia wysyłanego pliku
ebate
post 20.10.2011, 19:53:14
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


Chce, aby skrypt sprawdzał, czy wysyłany plik mam poprawne rozszerzenie, a w przypadku złego wyskoczył błąd np. Niepoprawne rozszerzenie pliku.

Przy zmianie nazwy pliku dostałem wskazówke:

  1. $fileData = pathinfo($_FILES['pliczek']['name']);
  2.  
  3. // pod $fileData['extension'] masz rozszerzenie pliku - możesz to wykorzystać
  4.  
  5. // do sprawdzenia czy plik ma takie rozszerzenie jak mieć powinien
  6.  
  7. // i jesli nie uzyć unlink($_FILES['pliczek']['tmp_name']); i zwrócić błąd ;)
  8.  
  9. $filename = $konto.'.'.$fileData['extension'];
  10.  
  11. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$filename);
  12.  
  13. $name = 'pliki/'.$filename;


Niby coś mi swita, ale nie do końca więc prosze o pomoc. Rozszerzenia mają być tylko .jpg i .png.

Go to the top of the page
+Quote Post
CuteOne
post 20.10.2011, 20:51:35
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. $extArray = array('jpg', 'tra');
  2. $ext = in_array( end( explode($_FILES['pliczek']['tmp_name'] ) ), $extArray ) ? true : false;
Go to the top of the page
+Quote Post
ebate
post 21.10.2011, 10:39:07
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


Rozumiem, ze podany skrypt sprawdza poprawność rozszerzenia.

A co z błędem w przypadku złego rozszerzenia?
Go to the top of the page
+Quote Post
nospor
post 21.10.2011, 10:44:28
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to wyświetl błąd. Masz juz informacje czy jest ok czy nie jest a gdy nie jest ok to wyswietl blad. No IF nie umiesz użyć? To zajrzyj do manuala


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ebate
post 21.10.2011, 18:19:47
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


No tak tylko ten kod nie działa.:

  1. $extArray = array('jpg');
  2.  
  3. $ext = in_array( end( explode($_FILES['pliczek']['tmp_name'] ) ), $extArray ) ? true : false;
  4.  
  5. if (false) { echo "Złe rozszerzenie" }


Wyświetla błąd:

Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp\htdocs\PIOTR\register.php on line 59

Ten post edytował ebate 21.10.2011, 18:21:12
Go to the top of the page
+Quote Post
mortus
post 21.10.2011, 18:37:54
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Forum to nie parser. Zresztą w komunikacie błędu wyraźnie jest napisane, że brakuje średnika przed nawiasem zamykającym (}).
Go to the top of the page
+Quote Post
ebate
post 21.10.2011, 21:19:42
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 12.10.2011

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


Przy tworzeniu konta podałem plik ze złym rozszerzeniem i wyskakuje:


Notice: Undefined index: extension in C:\xampp\htdocs\PIOTR\register.php on line 48

Warning: explode() expects at least 2 parameters, 1 given in C:\xampp\htdocs\PIOTR\register.php on line 57

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\PIOTR\register.php on line 57

Warning: end() expects parameter 1 to be array, null given in C:\xampp\htdocs\PIOTR\register.php on line 57
Konto aa2 zostalo utworzone, a zdjecie zostało wysłane.
Kliknij, aby wrócić do Strony głównej
Go to the top of the page
+Quote Post
CuteOne
post 22.10.2011, 05:40:38
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


mój błąd zamiast ['tmp_name'] powinno być ['name']

ps. nstepnym razem wrzucaj błędy w google - odpowiedź dostaniesz dużo szybciej niż na forum...

Ten post edytował CuteOne 22.10.2011, 05:42:39
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:28