Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> System własnych komunikatów w MVC
plastus321
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 10.05.2011
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Witam wszystkich forumowiczów!

Od paru dni mnie zastanawia kwestia tego jak można w MVC w najlepszy sposób przekazywać komunikaty. Mianowicie mamy np. taką sytuację:

Osoba która NIE jest użytkownikiem naszej strony wpisuje adres URL do strony na którą nie ma dostępu i w odpowiedzi zostaje przekierowana na stronę główną na której jest panel logowania, ale również u góry tej strony głównej pojawia się komunikat na czerwono z informacją żeby móc zobaczyć tę podstronę musi się zalogować.

Wiele osób piszę że można wykorzystać np. metodę $_GET lub sesje

-ale czy to jest najlepszy sposób?
-w jaki sposób ma to rozwiązana np. taka joomla? ma specjalne klasy od wyjątków które przekazuje z controllera i wywołuje w odpowiednim miejscu w widoku?

Interesuje mnie tylko po prostu jak przekazać komunikat po przekierowaniu na inną stronę.

Mam nadzieję, że udało mi się to w miarę "łopatologicznie" napisać o co mi chodzi i jeśli mogę prosić to w taki sam sposób chciałbym mieć to wyjaśnione (IMG:style_emoticons/default/tongue.gif)

Z góry dziękuję za pomoc. POZDRAWIAM! i przepraszam że zmarnowałem parę minut na lekturę (IMG:style_emoticons/default/tongue.gif)
(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


To się nazywa Flash Messages. Działa w oparciu na sesji.
Jeżeli user nie ma dostępu -> zapisujesz w sesji url jakiś komunikat. Przekierowujesz na daną stronę czyli np. do formularza logowania. Twój layout sprawdza czy istnieje jakaś wiadomość Flash Message i ją wyświetla

Ten post edytował Turson 13.12.2014, 15:12:41
Go to the top of the page
+Quote Post
plastus321
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 10.05.2011
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Czyli rozumiem że z tym flash message mogę użyć np. header('Location: index.php') i wyświetlić komunikat, tak?
Czy raczej masz inne rozwiązanie niż header('Location: index.php')?

Ten post edytował plastus321 13.12.2014, 15:39:51
Go to the top of the page
+Quote Post
Turson
post
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Dokładnie tak. Tyle że żeby to było bardziej eleganckie stwórz klasę z metodami do stworzenia przekierowania i sprawdzenia czy obecnie jest przekierowanie.
Go to the top of the page
+Quote Post
plastus321
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 10.05.2011
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Dzięki, zrobiłem tak jak powiedziałeś (IMG:style_emoticons/default/wink.gif) poczytałem jeszcze trochę o tym i zrobiłem własną klasę obsługującą komunikaty (IMG:style_emoticons/default/smile.gif)

Jeśli ktoś by szukał przykładowego rozwiązania tego to podaje tu jeden z nich (źródło: http://stackoverflow.com/questions/1198806...ge-with-message)


  1.  
  2. // plik profli.php który jest np. zabezpieczony przed niezalogowanymi osobami
  3.  
  4. if (mysqli_affected_rows($link) == 1)
  5. {
  6. //succes
  7. $_SESSION['message'] = 'Musisz się zalogować';
  8. redirect_to('index.php');
  9. }
  10.  
  11. // plik index.php
  12.  
  13. if (!empty($_SESSION['message'])) {
  14. echo '<p class="message"> '.$_SESSION['message'].'</p>';
  15. unset($_SESSION['message']);
  16. }
  17.  


Pozdrawiam i jeszcze raz dzięki za pomoc! (IMG:style_emoticons/default/smile.gif)

Ten post edytował plastus321 15.12.2014, 18:33:45
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 18:58