Article View: pl.comp.objects
Article #13894Walidacja danych wejściowych
From: Bogusław Faja
Date: Fri, 24 Feb 2006 11:16
Date: Fri, 24 Feb 2006 11:16
48 lines
2603 bytes
2603 bytes
Witam!
Podstawowe informacje:
są dane wejściowe ($_GET, $_POST), muszą one spełniać pewne warunki (np. id
tylko liczbą dodatnią). Jak _obiektowo_ obsłużyć sprawdzanie tych danych,
aby możliwe było wykonanie testów tylko na początku skryptu, a nie przy
każdym odwołaniu..
Chciałbym wykonać to na wzór klasy:
klasa: cDataCleaner
funkcje:
setSource(&$var); - ustawia zrodlo danych - poprzez referencje
addRule($name, $rule); - ustawia regule dla pozycji zrodla
addCheckingFunction($name, $func) - ustawia funkcje, ktora sprawdza, czy
dane pole jest poprawne.. $func jest parametrem takim samym jak dla
call_user_func, musi zwraca true/false.
getValue($name) - pobiera sprawdzone dane lub wartosc domyslna w przypadku
okreslenia
setDefaultValue($name, $value); - ustawia domyslna wartosc dla danego
klucza
setDefaultRule($rule) - ustala domyslna regule do sprawdzania pola
Problem?
Tablice. Jak ustalać im reguły?
Jeśli ustalę te reguły na początku skryptu, to jak mam obsłużyć
sprawdzanie, jeśli okaże się, że mam w różnych 'modułach' dane zewnętrzne o
tych samych nazwach (np. id), i różnych warunkach, którym trzeba je poddać.
Jak rozróżniać pola? Nadawanie różnych nazw odpada.. (w przypadku gdy nazwy
są jednakowe przenoszę te same elementy do klasy nadrzędnej i tworzę dość
sensowne funkcje działające na wszystkim).
Jakieś rozwiązania? Linki? Pomysły?
Szukałem w google, ale wyniki są raczej mizerne.. zazwyczaj:
if (!valid())
{
redirect();
}
Byłoby to w porządku, gdyby nie fakt, że mi potrzebne jest definiowanie
_defaultowego_ elementu. Także sprawa elementów o tych samych nazwach a
różnych znaczeniach..
Z góry dzięki za pomoc.
Technical Details
Message-ID:
<cvaegy8htlxg.1mf6zroek7o89.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Bogusław Faja <zymen@zymen.net> Newsgroups: pl.comp.objects Subject: Walidacja danych wejściowych Date: Fri, 24 Feb 2006 12:16:42 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 48 Message-ID: <cvaegy8htlxg.1mf6zroek7o89.dlg@40tude.net> NNTP-Posting-Host: kronos.zapis.net.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1140779803 8890 195.205.170.10 (24 Feb 2006 11:16:43 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 24 Feb 2006 11:16:43 +0000 (UTC) X-User: zymenus X-Antivirus: avast! (VPS 0608-1, 2006-02-23), Outbound message X-Antivirus-Status: Clean User-Agent: 40tude_Dialog/2.0.15.1pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit