Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Preg_match walidacja danych
Lethys
post
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

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


Witam,

Od dwóch dni główkuje jak zrobić poprawnie sprawdzenie danych przesyłanych w formularzu.

Chcę aby były akceptowane tylko litery małe, duże + polski alfabet + spacje + cyfry

Próbowałem :

  1. // pierwsza próba
  2. preg_match('#^[A-z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ]*$#is', $zmienna)
  3.  
  4. //druga próba
  5. preg_match('/^([a-żA-Ż0-9_] [a-żA-Ż0-9_]+)$/i', $zmienna)
  6.  
  7.  


Przegooglowałem, poczytałem, próbowałem na wiele sposobów ale nadal mi nie działa tak jak chcę.

Ten post edytował Lethys 20.11.2011, 18:45:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


skoro chciałeś wykluczyć zestaw znaków i uzyskać jego odwrotność (wszystkie oprócz) to daszek stosuje się na początku klamry [^znaki], przy czym nie myl tego daszka z daszkiem na początku wyrażenia regularnego, gdzie on oznacza, iż wyrażenie ma się dopasowywać od początku... znak "*" znaczy tyle co {0,}, czyli 0 lub wiele, tutaj raczej chciałeś zastosować znak "+" który znaczy {1,} co najmniej 1 znak (zwróć uwagę na przecinek)... wszystko zależy, jak dokładnie chcesz sprawdzać te adresy - można by wymodzić jakieś ogólne wyrażenie ale to wcześniej ktoś musiałby podać jakieś ograniczenia....

Jeśli chodzi o SQL iniection to przede wszystkim zainteresuj się PDO i funkcjami prepare, lub chociaż mysqli i też funkcjami prepare...

Zależy, jak daleko chcesz iść ze sprawdzaniem poprawności adresów - czasami ktoś się pomyli i choć adres strukturę będzie miał poprawną to nie będzie nigdzie prowadził - można to też sprawdzić ale to inny temat...

ogólne wyrażenie na adres mogło by wyglądać (przy czym nie chce mi się sprawdzać jakie są najdziwniejsze znaki i bodajże znak ";" chyba też może występować, podobnie jak procenty czy polskie znaki (wszystko zależy, kto z jakiej przeglądarki skopiuje i jakie kodowanie otrzyma..)

przykładowe wyrażenie mogło by wyglądać np. w ten sposób:
Kod
/^(?:https?\:\/\/)?(?:[wW]{3}\.)?(?!.*(?:[\-\/\.]){2,})[a-zA-Z0-9_\-\.]{2,}\.[a-zA-Z]{2,5}(?:\/[a-zA-Z0-9_!\/\|\+\%\.\-\?\=\&\#]*)?$/

(?!.*(?:[\-\/\.]){2,}) - to znaczy, że nigdzie dalej ma się nie dopasować do występujących pod rząd naraz 2 znaków "-" lub "." lub "/"
jeśli jest jeszcze część poza domeną to reszta musi się zaczynać od znaku "/"
tam sobie możesz pododawać jakieś dozwolone / zabronione znaki...

SKORO LINKI WKLEJAJĄ Z ZEWNĄTRZ, TO ZAŁOŻYŁEM, IŻ DOMENA W LINKU TEŻ MUSI BYĆ [a-zA-Z0-9_\-\.]{2,}\.[a-zA-Z]{2,5}, choć teraz wprowadzili, że i w domenie może być nawet cyrylica ^^, więc zamiast tego można by jakiś bardziej ogólny schemat napisać... zależy co chcesz ^^
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 21:59