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
Lethys
post
Post #2





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

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


Dziękuje za tak wyczerpującą odpowiedź (IMG:style_emoticons/default/smile.gif)

Tylko zrodziło mi się pytanie w głowie czy nie łatwiej po prostu wypisać zakazane znaki (które w adresie strony nie występują) i jeżeli dane adres je posiada to blokować dalszy skrypt?

Druga sprawa, czy blokując wszystkie "niebezpieczne" dane w formularzu i POST przez właśnie preg_match nie bronie się przed sql_injection?
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





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

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


Cytat(Lethys @ 23.11.2011, 10:28:14 ) *
Druga sprawa, czy blokując wszystkie "niebezpieczne" dane w formularzu i POST przez właśnie preg_match nie bronie się przed sql_injection?

A może tak zamiast się przed tym bronić to uczynić je poprawnymi i bezpiecznymi??

Wszystko zależy, jakie masz typy formularzy...

Firma: Jan Kowalski "Primawera"

I co - w powyższym nie pozwolisz na wprowadzanie cudzysłowów?? Odpowiednio spreparowany kod jeśli dane potem nie są odpowiednio wyświetlane pozwala na rozwalenie kodu html... gdy do wyświetlania wystarczy coś w stylu htmlspecialchars. Fakt, jeśli w bazie nie chcesz mieć śmieci to jakoś minimalnie pod kontem poprawności powinno to się kontrolować... co do SQL iniection to jak już wspomniałem najlepiej prepare w PDO...

o adresie strony to wspomniałem właśnie o tym - czyli chyba prościej w drugą stronę no to np. (ale baaardzo ograniczona filtracja)
Kod
/^(?!.*(?:[\-\.]){2,})[^\s]{2,}\.[a-zA-Z]{2,5}(?:\/[^\s]*)?$/

dodaj sobie tam do tablicy znaków zakazanych co tam uważasz... i początek (?!.*(?:[\-\.]){2,}) jest tam nie potrzebny...
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: 3.10.2025 - 15:12