Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mvc wyświetlanie informacji w danym miejscu
Forum PHP.pl > Forum > PHP > Object-oriented programming
inceptos
Mam napisany szablon strony www oparty na technice mvc.

Niestety nie wiem jak sobie poradzić z taką sprawą:
Chcę wyświetlać informacje o błędzie w konkretnym miejscu na stronie - przykładowo mam napisaną rejestrację użytkowników jednak nie umiem poinformować użytkownika o tym, czy rejestracja zakończyła się pomyślnie czy też nie, jak i również o możliwych przyczynach niepowodzenia (zbyt krótkie hasło etc. nie chodzi mi w tym momencie o informowanie 'live' javascriptem).

W pliku views/v_register.php znajduje się formularz służący do tego aby się rejestrować (czysty kod html), a w pliku register.php przetwarzanie tego formularza (czysty kod php) - w jaki sposób mogę informować użytkownika o powodzeniu rejestracji bądź też jego braku > w konkretnym < miejscu - np. tuż pod formularzem.

Spawnm
Czemu czysty html? Wsadź tam if(null !== $info) echo $info;
MVC != MVP.
Orzeszekk
wydaje mi sie ze źle zrozumiałeś idęę MVC.

jeśli masz portal oparty o MVC, to jedna akcja powinna wyświetlać formularz (kontroler->akcja register->akcja register wyswietla widok register.php), a druga akcja powinna go odbierać (kontroler->uruchamia model ktory przetwarza dane i zwraca wynik->kontroler przekazuje te dane do widoku->widok je wyświetla).

W tej drugiej akcji twój model przetwarza dane logowania i zwraca komunikat o błędzie jeśli się nie uda. Przesyłasz komunikat z kontrolera do widoku, albo w ogóle zwracasz inny widok jeśli wystąpi błąd i po problemie.

Nie widze absolutnie powodu dla którego miałbyś implementować sam wzorzec MVC ręcznie, samemu, gdy istnieją dobre sprawdzone frameworki MVC, w których jeżeli będziesz podążał za ich konwencjami, to o MVC dowiesz się wiecej niż z tego forum.
Zainteresuj się Symfony2, albo jeżeli to dla ciebie za dużo i za enterprise-owo, to chociaż CodeIgniterem.
inceptos
Cytat
Przesyłasz komunikat z kontrolera do widoku, albo w ogóle zwracasz inny widok jeśli wystąpi błąd i po problemie.


Właśnie tego nie potrafię zrobić, w rejestracji sprawdzam np. czy podane hasła są identyczne (plik register.php):
  1.  
  2. if ($Registration->checkPasswordMatch($password, $repeatpassword) == FALSE) {
  3. $allOk = FALSE;
  4. }
  5.  


Zakładając, że nie są co mam tam zrobić aby po kliknięciu na przycisk Register pojawiła się informacja, że podane hasła nie są identyczne? Załadować widok, który by mówił, że coś poszło źle w tym momencie mnie nie satysfakcjonuje wink.gif (Zmienna $allOk zabezpiecza przed dodaniem użytkownika ze złymi danymi do bazy, tzn. na końcu sprawdzam stan zmiennej $allOk, jeśli TRUE to wykonuje inserta, jeśli FALSE to nie, być może jest na to inny lepszy sposób, ale w danym momencie przyszedł mi taki do głowy ;>).

Co do frameworków - najpierw chciałbym napisać prostą stronę (logowanie, rejestracja, dodawanie newsów/komentarzy, może przegląd profili/jego edycja) bez użycia frameworków).
!*!
To daj w widoku if który sprawdza czy wystąpiły jakieś błędy, zakładając że przesyłasz do niego jakieś dane, które pobrałeś z modelu.
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-2024 Invision Power Services, Inc.