walidacja formularzy |
walidacja formularzy |
1.07.2004, 22:49:22
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Jestem bardzo ciekawy czy tos wykorzysuje w swoich systemach zaawansowane systemy walidacji fomularzy. Moze by jego koncepcja cos zminila w mojej bo akurat jestem w sferze projektowania takiego modulu. Glownym jego zadaniem jest pozbyci sie z akcji wszelkiego typu if(empty($var)) itd . Akcja powinna byc elastyczna a kazda dodatkowa linijka kodu pomniejsza ta ceche. Juz pozbylem sie z akcji wywolywania szablonow (user sam decydyje uruchamiajac akcje jaki szablon zostanie uruchomiony po jej wykonaniu) teraz przyszedl czas na walidacje potrzebnych danych. Obecnie tymczasowo rozwiazalem to na zasadzie rejestracji akcji wejsciowej validacyjnej. CZyli jesli dane przesylane formularzem posiadaja dopowiednia predefiniowana zmienna to system uruchamia akcje walidacyjna ktora decyduje czy przeposcic dane do akcji logicznej czy przekierowac je na formularz z odpowiednimi komunikaami bledu. Zmina taka ma mniej wiecej taka postac
Gdzie na pozatku mamy szablony wywolane w przypadku powodzenia i niepowodzenia walidacji i akcje ktora zostanie wykonana w przypadku raku bledu. Dalej sa juz pola i opisy danych jakie maja zawierac. Jednak ten system nie jest idealny. Tzn dziala znakomicie jednak pisanie formularzy staje sie po pewnym czasie problemem poniewaz kazde pole wyglada mniej wiecej tak:
i moze przy jednym polu to sie wydawac lajtowe ale uwierzcie mi przy formach z 15 - 20 polami nie jest juz tak fajnie. Druga wada jest brak wsparcia dla js. Wiec sobie pomyslalem ze przeciez mozna generowac formularze. I nie chodzi mi tu o biblioteki w php tzn nie o obiekty z metodami ->createInput. Raczej wykorzystal bym tutaj mozliwosci SMARTEGO i generowac formularze w oparciu o dane z szablonu. Mniej wecej cos takiego Kod {form tpl_foward="jakis szablon" action="jakas akcja" jsCheck=TRUE } {input type="text" name="name" style="jakis styl np wielkosc" check=TRUE size="5-30"} {input type="text" name="kod_pocztowy" style="jakis styl np wielkosc" check=TRUE preg="/[0-9]{2}-[0-9]{3}/"} {input type="mail" name="email" style="jakis styl np wielkosc" check=TRUE } {/form} No i zostal by wygenerowany tym sposobem nie tylko szablon z odpowednimi polami i warunkami wstawiajacymi odpowiednie wartosci pola lub wywalajacymi komunikat bledu ale rowniez skrypt jsrealizujacy identyczne zadanie tylko ze clientSide. Moze ktos juz robil podaoba rzecz? Chetnie poslucham rad ps To jest rozwiazanie userfriendly - niestety wiem ze do BARDZO bezpiecznych nie nalezy i jesli nam zalezy na bezpieczenstwie to w akcjach trzeba walic if(isset ... -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
2.07.2004, 01:25:07
Post
#2
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 30.01.2004 Skąd: Kraków, Częstochowa Ostrzeżenie: (0%) |
kiedys znalazlem taki plugin do smartow (ale jak sie nazywal nie pamietam) - wada force_compile=1
|
|
|
2.07.2004, 11:46:09
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Ano rzeczywiście ktoś już o tym pomyślał i to nie kto inny jak jeden z twórców smarty. Jeszcze nie testowałem tego pluginu ale zapowiada sie interesująco. I nicgdzie nie znalazlem informacji ze wymagane jest force_compile . Po przetestowaniu postaram się przedsawić moje zdanie o tej wtyczce.
ps dla zainteresowanych http://www.phpinsider.com/php/code/SmartyValidate/ -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
2.07.2004, 13:18:55
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 790 Pomógł: 7 Dołączył: 6.02.2003 Skąd: Polska Ostrzeżenie: (0%) |
No cóż. Rozwiązanie bardzo ciekawe, szczególnie, że zaimpletowane w szablonach (nie trzeba dopisywać zbędnych linijek). Walidiacja moim zdaniem jednak jest potrzebna tylko w formularzach rejestracyjnych, a takie stosuję jednak bardzo rzadko, dlatego nie wiem jak wyniki czasowe parsowania tego kodu przez smarty - czekam na efekty.
BTW. rzseattle: jak mozna zdobyc to twoje tlumaczenie manuala smarty? -------------------- Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN |
|
|
2.07.2004, 13:43:36
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Cytat(seaquest @ 2004-07-02 13:18:55) BTW. rzseattle: jak mozna zdobyc to twoje tlumaczenie manuala smarty? Wersja tymczasowa jest na http://rzseattle.piwko.pl . Teraz chwycilem chwile oddechu wiec moze w koncu to dokoncze i przezuce do docbooka. Cytat [...] dlatego nie wiem jak wyniki czasowe parsowania tego kodu przez smarty Sam sobie odpowiedzialeś na pytanie - po pierwsze zadko takie formularze wyswietlasz po drugie mozesz wylaczyc sprawdzanie serverside i nie kompilowac juz szablonow, po trzecie jak wprowadzisz blok {dynamic} {/dynamic} i wlaczysz keszowanie to roznice beda znikome. -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
2.07.2004, 13:49:51
Post
#6
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 30.01.2004 Skąd: Kraków, Częstochowa Ostrzeżenie: (0%) |
Cytat(rzseattle @ 2004-07-02 12:46:09) I nicgdzie nie znalazlem informacji ze wymagane jest force_compile . to byl inny projekt, ale faktycznie to co podales wydaje mi sie ciekawe... nawet baaardzo ciekawe a co do tlumaczenia - jakbys potrzebowal pomocy to daj znac Ten post edytował Holyboy 2.07.2004, 14:38:33 |
|
|
2.07.2004, 20:14:06
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 215 Pomógł: 0 Dołączył: 28.10.2003 Skąd: - Ostrzeżenie: (0%) |
Ciekawa klasa jest OOh Forms ktora wchodzi w sklad pakietu PHPLIB. Ma zaimplementowany JavaScript oraz weryfikacje formularzy po stronie serwera. Weryfikacja danych wyslanych z formularza odbywa sie wedlug wczesniej zdefiniowanych kryteriow np. wyrazenia regularna, dopasuja przeslane wartosci do wzorcow, a JavaScript wypisze blad o braku wypelnionego pola ...
-------------------- <span style="font-weight: bold;">Open Source Enterprise Content Management</span>
|
|
|
3.07.2004, 00:31:34
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Jednak zaden z tych skryptow mnie nie zadowala poniewaz jeden nie ma wsparcia dla js a drugi operuje przedewszystkim na poziomie php a nie smarty. Datego pisze wlasny plugin do walidacji. Postaram sie aby byl on jak najbardziej przenosny (mozliwosc ustawienia zewnetrznego uchwytu sesji i zewnetrznego parsera linkow i ... ). Jak skoncze to zaprezentuje.
-------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
3.07.2004, 12:29:14
Post
#9
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
ja również walczyłem / walczę z tym problemem.
W efekcie powstałą seria klas służąca do walidacji formulaży w oparciu o smarty. Co prawda narazie nie ma tu żadnego wsparcia dla JS, ale są jak najbardziej możliwości po temu by je dodać. Zaletą jest również bardzo elastyczne dodawanie wielu różnych warunków do jednego inputa (np. cyfra, nie mniejsza niż 10 i nie większa niż 100, nie równa ... itp ) Przykład: http://www.mstudio.nq.pl/php_pl/projects/f.../forms_0.1b.zip -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
17.02.2007, 10:11:59
Post
#10
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 17.07.2005 Ostrzeżenie: (0%) |
Ciekawy ten plugin Smarty. Szkoda, że go nie znalazłem wcześniej. Bo właśnie jestem na etapie projektowania własnego systemu obsługi formularzy. Lecz podszedłem do tego minimalistycznie. Widziałem tutaj na forum projekty które składały się z kilkunastu klas. Ja wybrałem wariant minimalistyczny:). Chodziło o czas zdecydowałem się na dwie klasy jedna jest odpowiedzialna za walidacje a druga za formularze. Formularze wyświetalm w Smarty ale pobierznie przeglądając plugin chyba porzucę swój dopiero co zaczęty "projekt"
|
|
|
17.02.2007, 11:25:14
Post
#11
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 12.02.2007 Ostrzeżenie: (0%) |
Co sądzicie o bibliotece QuickForm ?
Używam od dłuższego czasu i jestem zadowolony. Dużo trzeba pisać, ale przynajmniej kodowanie jest przejrzyste i jest mała szansa na popełnienie błędów. -------------------- Szukam programistów PHP/Symfony
warsztat: PHP5, MySQL, Eclipse, Apache, Symfony, Trac, SVN michalwujas.pl |
|
|
18.02.2007, 08:00:42
Post
#12
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
IMHO Formularze w agavi są po prostu świetne. Mało pisania, walidacja jest najlepsza jaką znalazłem. Ogólnie jest super.
|
|
|
18.02.2007, 14:59:05
Post
#13
|
|
Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) |
Może słowo o tym jak to wygląda w Agavi.
Otóż walidacja nie jest powiązana z żadnym polem bezpośrednio. To znaczy, że nie definiujemy konfiguracji walidacji w widoku. Myślę, że praktyka dobra, ponieważ w połączeniu z możliwością rozbijania i wczytywania konfiguracji przez XInclude w zależności od potrzeby daje to po prostu elastyczność. Zatem, w pliku validate/<nazwaakcji>.xml mamy definicję walidacji zgodną ze schematem XML:
Może o składni dokumentu:
To by było tyle odnośnie konfiguracji. Teraz jak to wygląda w akcji: . Wierzcie mi, że uzyskanie tego efektu nie wymagało żadnego warunku w widoku czy też szablonie, ponieważ Agavi dostarcza filtr, który na podstawie zgłoszonych w czasie walidacji błędów odpowiedni "dekoruje" output. Mowa tu o Form Population Filter. Co więcej filtr ten oprócz zaznaczania błędów dodaje wiadomości błędów a także uzupełnia wartości. Więcej na temat w Agavi będziecie mogli się dowiedzieć już w najbliższej przyszłości na zmodernizowanym code-house.net. -------------------- Łukasz Dywicki
Independent Java and open source software consultant. Blog - Java, OSGi, integracja oprogramowania.. |
|
|
Wersja Lo-Fi | Aktualny czas: 21.09.2024 - 04:49 |