![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 6 Dołączył: 20.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
napisałem dla siebie klasę walidacji. Nigdy nie korzystałem z walidacji, tak więc nie wiem czy jest dobrze napisane. kod się nie zmieścił, więc wrzuciłem na stronę typu no-paste na nopaste.pl na wklej.org Użycie:
Opcje walidacji Kod maxlenght - maksymalna ilość znaków w stringu minlenght - minimalna ilość znaków between - w tablicy: minimalna oraz maksymalna ilość znaków type - typ maxtimechar - maksymalna liczba wyrazów bądź znaków w stringu (słowo oddzielone od liczby [spilit] (a[spilit]5)) required - string nie może być pusty, jeżeli damy true regex - regex pola z błędami są publicznie dostępne, także można jest dowolnie zmieniać. Ten post edytował PiotrekM 23.03.2010, 19:32:36 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem klasa niepotrzebnie jest statyczna. Dorób metodę która sprawdzi wszystkie elementy po kolei czy są dobre, przydaje się taka funkcjonalność
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jest niepotrzebnie statyczna, w dodatku nie wiem czemu dziedziczysz po exception, te wyjątki robią tam zbędny chaos, ich użycie jest źle przemyślane.
Ja bym zrobił coś na ten wzór:
Dla każdego typu możesz sobie odpowiedni obiekt przekazać w zależności od tego co potrzebujesz sprawdzać. Ten post edytował fifi209 23.03.2010, 20:32:01 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 6 Dołączył: 20.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
jest statyczna, bo w moim frameworku chce móc się odwoływać statycznie do klas
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Ale tu nie chodzi o to, czy chcesz się tak odwoływać, tylko czy daje Ci to coś konkretnego. Jak ja mam ochotę dziedziczyć klasę do wysyłania e-maili po PDO, to tego mimo wszystko nie robię, bo nie będzie to miało żadnego sensu
![]() Druga rzecz to błąd merytoryczny: Kod if( is_integer(self::$checkString[$arrays])) { Poczytaj sobie, co robi funkcja is_integer(), bo na pewno nie to, co myślałeś, pisząc ten kod ![]()
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmm ,tworząc klasę do vaidacji formularza podeszłem do tego inaczej : http://wklej.org/id/302832/ ogólnie spisuję sie ok ale musze znaleść czas aby dopracować ją ,wszelkie uwagi milę widziane
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
I robisz dokładnie ten sam błąd, co kolega wyżej:
Kod if(is_float($this->Source[$name])) is_float() nie robi tego, co myślałeś, pisząc ten kod, że robi. Ponadto stosujesz jakąś archaiczną składnię obiektową ![]() -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
W jakim sensie archaiczną ?
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 6 Dołączył: 20.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki serdeczne za odpowiedzi
![]() Druga rzecz to błąd merytoryczny: Kod if( is_integer(self::$checkString[$arrays])) { Poczytaj sobie, co robi funkcja is_integer(), bo na pewno nie to, co myślałeś, pisząc ten kod ![]()
Nie rozumiem co masz na myśli, is_integer() zwraca wartość bool - wiem o tym. Jeżeli chodzi o jakiegoś typu serializowanie tego ifem, to dałem tak, gdyż wraz ze zwrotem false zgłasza błąd ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 13.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
gothye -> archaiczną, bo a'la PHP4. Dobry zwyczaj nakazuje, aby nie stosować słowa var na rzecz modyfikatorów dostępu i Tobie by się to przydało o tyle, że masz parę pól prywatnych zadeklarowanych przez to jako publiczne. Dobry zwyczaj nakazuje też umieszczać modyfikatory dostępu przy funkcjach.
PiotrekM -> a sprawdziłeś, JAKĄ wartość logiczną zwraca? Dla Twojej informacji, jeśli będziesz próbował w ten sposób sprawdzać np. $_GET, to tam początkowo wszystkie pola mają typ string (z wyjątkiem tablic). Typów PHP się nie wykorzystuje w sprawdzaniu, ponieważ nie są one miarodajne i tak naprawdę niewiele mówią o tym, co się w danym polu zawiera. Ten post edytował Zyx 24.03.2010, 07:41:27 -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 6 Dołączył: 20.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
PiotrekM -> a sprawdziłeś, JAKĄ wartość logiczną zwraca? Dla Twojej informacji, jeśli będziesz próbował w ten sposób sprawdzać np. $_GET, to tam początkowo wszystkie pola mają typ string (z wyjątkiem tablic). Typów PHP się nie wykorzystuje w sprawdzaniu, ponieważ nie są one miarodajne i tak naprawdę niewiele mówią o tym, co się w danym polu zawiera. no dlatego do sprawdzania $_GET jest numeric. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Ja u mnie rozwiazalem to tak: http://3paste.com/s/1601 mam do poprawy jeszcze tylko jedna rzecz a dokladniej jak na jedno pole jest kilka warunkow a takich pol jest wiecej zwraca tylko pierwsze zle pola czy jakos tak musze do konca przetestowac.
A tak wyglada akcja komponentu Auth metoda Auth razem z walidacja:
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
PiotrekM -> ech, przeczytaj wszystko jeszcze raz, ale ze zrozumieniem... mówimy właśnie o tym Twoim "numeric", które nie zadziała, bo do sprawdzenia czy pole zawiera liczbę użyłeś funkcji is_int(). Nie rozumiesz w ogóle, jak ta funkcja działa - ona nie sprawdza, czy wartość jest liczbą, tylko czy wartość zmiennej PHP ma aktualnie typ liczbowy, a to dwie różne rzeczy:
Piszemy przecież cały czas, że w tablicach $_GET, $_POST wszystkie wartości są ciągami tekstowymi, więc bez względu na to, jaką wartość będą zawierać, is_int() zwróci Ci dla nich false i możesz pożegnać się np. ze sprawdzeniem czy przekazany do skryptu ID jest poprawny... do takiego sprawdzania się używa wyrażeń regularnych i funkcji z rodziny ctype_xxx(). -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 6 Dołączył: 20.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
przepraszam, rozumiem.
można by użyć is_numeric, ale gdy liczba nie jest liczbą całkowitą, to dupa. zaraz to poprawie edit: próbowałem dać settype dla stringu, lecz nawet gdy liczba nie jest liczbą całkowitą, zwraca true - jakieś sugestie? Ten post edytował PiotrekM 24.03.2010, 17:30:49 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
przepraszam, rozumiem. można by użyć is_numeric, ale gdy liczba nie jest liczbą całkowitą, to dupa. zaraz to poprawie edit: próbowałem dać settype dla stringu, lecz nawet gdy liczba nie jest liczbą całkowitą, zwraca true - jakieś sugestie? Ogólnie to marne szanse, php to język w którym nie musisz dbać o typy i jak widać to się mści. ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 20:40 |