Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> walidacja formularzy
rzseattle
post 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
  1. <INPUT name="arrow_validate_form" type="hidden"
  2. value="
  3. arrow_template_foward:iH/admin/categories/show_categories
  4. |arrow_template_back:iH/admin/banners/add_banner
  5. |arrow_action_redirect:categories:add_category_element
  6. |name:text:5-20
  7. |baner_alt:text:0-40
  8. |baner_url:text:7-100
  9. |email:mail" >

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:
  1. <INPUT class="pole" style="WIDTH: 200px" type=input name="name" value="{if isset($_global_page_input.name)}{$_global_page_input.name}{/if}">
  2. {if isset($_global_arrow_error.name)}<br /> Podaj nazwę{/if} </TD></TR>


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 smile.gif

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."
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.05.2024 - 14:29