![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 19.10.2004 Skąd: Zgorzelec Ostrzeżenie: (0%) ![]() ![]() |
Witam
Próbuję zrobić bardziej złożoną funkcję walidującą i zastanawiam się czy nie przesadziłem z funkcją check_user:
Proszę o opinię! Z góry dziękuję Pozdr. KaO Ten post edytował Kao 27.05.2009, 23:23:14 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Przesadziłeś z kilkukrotnym wywołaniem strlen" title="Zobacz w manualu PHP" target="_manual.
Poza tym, dlaczego do sprawdzania długości robisz takiego tasiemca...? Wystarczyłby mb_strlen" title="Zobacz w manualu PHP" target="_manual. PS. Tag tematu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 19.10.2004 Skąd: Zgorzelec Ostrzeżenie: (0%) ![]() ![]() |
A strlen" title="Zobacz w manualu PHP" target="_manual raptem 2 razy bo zakres od 3 do 50 znaków chyba wymaga użycia dwukrotnego?
A czy mb_strlen" title="Zobacz w manualu PHP" target="_manual działa szybciej, poza tym, że ma dodatkowo $encoding? Ps. W sumie chodzi mi o walidację danych wejściowych POST (pól ze stringami typu: imię, nazwisko, opis, temat itp.) gdzie liczy się aby nie przedostały się "niechciane znaki" i aby długość tych chcianych mieściła się w określonym zakresie. "Grzebałem" z CALLBACK aby do standardowych filtrów - czysto filtrujących dodać jakieś uniwersalne sprawdzanie długości, ale nie potrafiłem przekazać 2 parametrów min i max długości ciągu znaków. Proszę jeśli można o korektę mojego kawałka kodu. Z góry dziękuję. Pozdr. KaO |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat A strlen raptem 2 razy bo zakres od 3 do 50 znaków chyba wymaga użycia dwukrotnego? strlen" title="Zobacz w manualu PHP" target="_manual, to jedna z najwolniejszych funkcji. Jeśli chcesz sprawdzać długość, to najefektywniej robisz tak:
Cytat A czy mb_strlen działa szybciej, poza tym, że ma dodatkowo $encoding? Nie. Jeśli korzystasz z wielobajtowego kodowania znaków, np. utf-8/unicode, to ani strlen" title="Zobacz w manualu PHP" target="_manual, ani powyższy sposób nie zwrócą Ci dokładnego wyniku, jeśli pojawiłyby się w ciągu znaki narodowe. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A czemu po prostu nie dasz wyrażenia regularnego?
Imię od 2 do 14 znaków i pisownia zgodna z regułami ortografii (pierwsza litera duża, reszta małe), z imionami dwuczłonowymi radzę sobie tak, że rozbijam je explodem i waliduję każdy człon oddzielnie (pewnie można od razu pregiem, ale nie jestem w tym za dobry). Oczywiście ideałem jest wykorzystać bazę imion, ale chodzi tylko przykład - podobnie można sprawdzać login i moim zdaniem jest to prostsze niż kombinowanie ze strlen. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 19.10.2004 Skąd: Zgorzelec Ostrzeżenie: (0%) ![]() ![]() |
A czemu po prostu nie dasz wyrażenia regularnego?
Imię od 2 do 14 znaków i pisownia zgodna z regułami ortografii (pierwsza litera duża, reszta małe), z imionami dwuczłonowymi radzę sobie tak, że rozbijam je explodem i waliduję każdy człon oddzielnie (pewnie można od razu pregiem, ale nie jestem w tym za dobry). Oczywiście ideałem jest wykorzystać bazę imion, ale chodzi tylko przykład - podobnie można sprawdzać login i moim zdaniem jest to prostsze niż kombinowanie ze strlen. Wszystko ładnie, pięknie a co z u i o "umlaut", imiona nie tylko polskie, głownie chodzi mi o ludzi z PL, DE, ale jak przyjdzie ktoś inny to też bym chciał aby był wpis (bo to teraz chodzi o walidację imion w formularzu do wysyłania maila ze strony, to samo będzie się tyczyło TEAMAT'u oraz samego WPISU) Pozdr. Kao |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 19.10.2004 Skąd: Zgorzelec Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 11:57 |