![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 27.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po długiej przerwie wziąłem się ponownie za pisanie skryptów w php. Ogólnie wyglada to tak że jest formularz w którym edytuje lub wprowadza się dane i chciałem zrobić do tego walidacje. I tu mam problem. Próbowałem na różne sposoby:
Kod if (!ereg('^[a-zA-Z]{3,30} , $imie_valid_c)) { print '<span class="blad">- Podane <b>imię</b> zawiera niedozwolone znaki bądź nie mieści się w przedziale od 3 do 30 znaków.</span><br/>'.$imie_valid_c.''; $blad=true; } Ale potrzebowałem też polskich znaków bo podobna walidacje mam dla nazwiska (z resztą skrypt nie przepuszczałby takich imion jak Łucja czy Błażej). Dlatego zrobiłem tak: Kod if (!ereg('^[a-zA-Ząćęłń󜿟ƣŃÓŚŻŹ]{3,30} , $imie_valid_c)) { print '<span class="blad">- Podane <b>imię</b> zawiera niedozwolone znaki bądź nie mieści się w przedziale od 3 do 30 znaków.</span><br/>'.$imie_valid_c.''; $blad=true; } Ale mimo to w skrypcie wyświetla błąd. Spróbowałem więc kasować wszystkie znaki poza tymi w ereg() za pomocą ereg_replace() Kod $imie_valid_c = ereg_replace('[^a-zA-Ząćęłń󜿟ƣŃÓŚŻŹ]', '', $imie_valid_c); Po wyświetleniu zmiennej $imie_valid_c okazało się, że polskie znaki dodane po a-zA-Z również zostały usunięte choć działanie skryptu powinno byc takie że usuwa z ciągu znaków wszystko poza znakami w []. Wpisanie tam całego alfabetu też nic nie dało. Ktoś wie może co jest grane? Z góry dzięki za pomoc. Ten post edytował kemot 19.08.2008, 18:02:58 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 55 Pomógł: 7 Dołączył: 8.12.2003 Skąd: Andrychów Ostrzeżenie: (0%) ![]() ![]() |
Może spróbuj użyć wyrażeń regularnych PERL-a oraz funkcji z rodziny preg_.
-------------------- adminvps.pl
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 27.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuje informacji jak to zrobic za pomocą ereg() lub ereg_replace() ewentualnie innej funkcji o podobnym działaniu.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 35 Dołączył: 5.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może taka funkcja sprawdzająca:
A to przykład zastosowania:
i jego efekt: Łucja jest OK Błażej jest OK Łucja, nie jest OK Bartek! nie jest OK 54353 nie jest OK Jeżeli cię interesują jeszcze francuskie i niemieckie litery specjalne to trzeba by dodać małą modyfikację. Jak to zrobić znajdziesz na przykład tutaj. -------------------- Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 27.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 00:46 |