Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja w MVC
Forum PHP.pl > Forum > PHP
Pjotrek80
Pytanie w sumie z kategorii początkujących ale z drugiej strony to jest OOP i na pewno więcej tutaj ludzi zajmujących się tym tematem.
Mam taką sytuację. Jest strona www z podziałem na model, widok, kontroler. Mam podstronę galeria i teraz od strony administratora dodałem mechanizm wgrywania plików na server.
w kontrolerze odpalam metodę z warstwy model np. uploadFile().

1. Czytałem, że należy wszystkie informacje pobierane z formularza ($_FILE, $_POST) przekazywać w parametrach metody (np. uploadFile(array $file)). Tutaj moje pierwsze pytanie, bardzo proste smile.gif Dlaczego? Dlaczego nie można pobierać tych tablic w warstwie model? Ze względów bezpieczeństwa? Jeżeli tak to co w tym niebezpiecznego?

2. Gdzie należy walidować w takim razie $_FILE i $_POST? W kontrolerze czy modelu?


Crozin
Ad. 1. Bo wtedy wszystkie zalety płynące z rozdzielenia poszczególnych warstw aplikacji trafia szlag. Co z tego, że masz wgrywanie plików wydzielone do osobnego, niby niezależnego komponentu skoro możesz użyć go wyłącznie w jednej sytuacji (zależność na $_FILE['xxx'], której w żaden sposób nie można kontrolować).
Ad. 2. Kontroler nie powinien mieć żadnej wiedzy n/t formatu przetwarzanych danych, stąd nie ma możliwości sprawdzenia ich poprawności. Odpowiedź nasuwa się chyba sama...
Pjotrek80
Cytat(Crozin @ 16.07.2013, 23:22:04 ) *
Ad. 1. Bo wtedy wszystkie zalety płynące z rozdzielenia poszczególnych warstw aplikacji trafia szlag. Co z tego, że masz wgrywanie plików wydzielone do osobnego, niby niezależnego komponentu skoro możesz użyć go wyłącznie w jednej sytuacji (zależność na $_FILE['xxx'], której w żaden sposób nie można kontrolować).
Ad. 2. Kontroler nie powinien mieć żadnej wiedzy n/t formatu przetwarzanych danych, stąd nie ma możliwości sprawdzenia ich poprawności. Odpowiedź nasuwa się chyba sama...

No tak, brzmi to bardzo sensownie. Troszkę myślenia muszę włączyć smile.gif Dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.