Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzenie poprawności nazwy pliku
black_jack
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.04.2012

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


Siemka,

  1. else if(!preg_match('/[A-Za-z0-9._]/', $plik[name]));


Chciałbym sprawdzić czy user przesyła plik z poprawną nazwą pliku. Dozwolone znaki "a-z A-Z 0-9 . _". $plik[name]) zawiera np. alicja.jpg.

Mój kod oczywiście nie działa tak jak powinien ;p

HELP smile.gif

Ten post edytował black_jack 4.05.2012, 21:22:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
mortus
post
Post #2





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

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


Sprawdzenie przez odwrotność, jeśli w ciągu znaków występują inne znaki (lub też ciąg znaków) niż te przewidziane to znaczy, że nazwa pliku jest nieprawidłowa:
  1. if(preg_match('#[^a-zA-Z0-9\._]*#', $plik['name']) == 0) {
  2. // nazwa pliku jest prawidłowa
  3. }
  4. // lub też
  5. if(preg_match('#[^a-zA-Z0-9\._]*#', $plik['name']) > 0) {
  6. // nazwa pliku jest nieprawidłowa
  7. }


preg_match() zwraca FALSE w przypadku błędu.

EDIT:
Zapomniałem o *.

Ten post edytował mortus 4.05.2012, 21:42:07
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #3





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


A można wiedzieć po co ograniczasz w ten sposób swoich użytkowników? Pomysł wydaje się cokolwiek kiepski - przynajmniej na pierwszy rzut oka.
Go to the top of the page
+Quote Post
black_jack
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.04.2012

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


Jest to skrypt do budowania linków z przesyłanych obrazków na serwer.

User przesyła plik wasy.jpg.

Skrypt buduje mu link http://mojadomena.pl/folder/wasy.jpg

Wyobrażasz sobie takie linki: http://mojadomena.pl/folder/wąsy%*$#%Yń.jpg questionmark.gif

Ten post edytował black_jack 4.05.2012, 21:54:56
Go to the top of the page
+Quote Post
greycoffey
post
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


  1. md5(); // po linku i nie musisz się martwić niepotrzebnymi znakami i kwestiami bezpieczeństwa
Go to the top of the page
+Quote Post
black_jack
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.04.2012

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


Oto mi chodziło:

  1. else if(preg_match('#[^a-zA-Z0-9._]#', $plik[name]))


Poprawność $plik[name] sprawdzam wcześniej. / oraz * nie są potrzebne bo $plik[name] zawiera tylko "kasia.jpg" lub "fajnie45.gif".

MD5 mnie nieurządza tutaj ponieważ dostałbym zakodowane "far4qr45qt4.jpg" smile.gif .

Problem solved. Dzięki
Go to the top of the page
+Quote Post
greycoffey
post
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(black_jack @ 4.05.2012, 23:13:31 ) *
Oto mi chodziło:

  1. else if(preg_match('#[^a-zA-Z0-9._]#', $plik[name]))


Poprawność $plik[name] sprawdzam wcześniej. / oraz * nie są potrzebne bo $plik[name] zawiera tylko "kasia.jpg" lub "fajnie45.gif".

MD5 mnie nieurządza tutaj ponieważ dostałbym zakodowane "far4qr45qt4.jpg" smile.gif .

Problem solved. Dzięki

Btw. kropka w wyrażeniu regularnym powinna być zabackslashowana(?) "\.", w innym wypadku zastępuje wszelkie inne znaki.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Wyobrażam sobie że przyjmuesz plik o dowolnej nazwie, a potem kombinujesz żeby zrobić dobry link.
Ty traktujez klienta pałką, zamiast troche pogłówkować - śmiech na sali.

Ten post edytował wNogachSpisz 4.05.2012, 22:22:31
Go to the top of the page
+Quote Post
black_jack
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 29.04.2012

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


No dobrze, a jaka jest Twoja koncepcja rozwiązania tego problemu?

Po co mam teraz skrypt przebudować skoro działa tak jak chciałem?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #10





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(black_jack @ 4.05.2012, 23:24:37 ) *
No dobrze, a jaka jest Twoja koncepcja rozwiązania tego problemu?

Już napisałem. Przyjąć każdy plik.

Cytat(black_jack @ 4.05.2012, 23:24:37 ) *
Po co mam teraz skrypt przebudować skoro działa tak jak chciałem?

Po to żeby klient nie pękł ze śmiechu kiedy jego upload zostanie odrzucony z powodu nieprawidłowej nazwy pliku biggrin.gif
Pęknięci klienci statystycznie rzadziej wracają na Twój sajt.

Ten post edytował wNogachSpisz 4.05.2012, 22:38:44
Go to the top of the page
+Quote Post
pedro84
post
Post #11





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Cytat(black_jack @ 4.05.2012, 23:24:37 ) *
No dobrze, a jaka jest Twoja koncepcja rozwiązania tego problemu?

Generuj sobie unikalny hash dla kazdego pliku.

Cytat(black_jack @ 4.05.2012, 23:24:37 ) *
Po co mam teraz skrypt przebudować skoro działa tak jak chciałem?

Bo Cie ludzie smiechem zabija. A powaznie, to jest to troszke bez sensu ograniczanie userow - chcialoby Ci sie zmieniac nazwy plikow przed uploadem?


--------------------
Google knows the answer...
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 Aktualny czas: 21.08.2025 - 02:50