![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dość dawno tu nie pisałem, więc witam ponownie
![]() Interesuje mnie jak rozwiązujecie sprawę wyświetlania komunikatów dla użytkowników. Mam na myśli sytuacje, gdy ktoś się zaloguje/wyloguje, doda jakiś wpis w CMS czy wykona jakąkolwiek akcję. Osobiście uwielbiam widzieć komunikat, że coś udało się zrobić - daje to taki komfort psychiczny ![]() Mam na myśli komunikat w postaci ramki jak np. tutaj: http://ising.pl/?wylogowano=1 No właśnie. Kiedyś też stosowałem zmienne GET przekazujące informację o tym, żeby wyświetlić dany komunikat. Jest to skuteczne, ale nieco kłopotliwe. Innym rozwiązaniem jest ustawienie po prostu zmiennej z treścią komunikatu po wykonaniu akcji. Niektórzy tak robią, ale to jest fatalny błąd wg mnie, bo każdą akcję powinno się kończyć przekierowaniem, by zapobiec odświeżeniu i tym samym wykonaniu akcji ponownie (to oczywiste, ale nie każdy o tym pamięta). Ja ostatnio stosuję przechowywanie komunikatów w sesji, co jest bardzo wygodne. Mam dwie metody: jedna zapisujące komunikat, a druga odczytuje i zaraz po tym usuwa zmienną z pamięci. Sposób ten w użyciu jest bardzo wygodny (tylko set i get w dowolnym momencie, w międzyczasie może pojawić się nawet 10 przekierowań, a i tak komunikat przetrwa i nie troszczymy się o linki), ale czy jest to mądre, by przechowywać taką informację w sesji? Jak Wy to rozwiązujecie? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ja robię tak że podczas wykonywania właściwego skryptu wszelkie komunikaty dodaję jako kolejny element tablicy, z zaznaczeniem jaki to typ komunikatu. Następnie już podczas generowania htmla, wykonuję w danym miejscu funkcję zamieniającą tę tablicę na odpowiedni kod html.
Dla przekierowań , taką tablicę zapisuję do sesji którą to następnie kasuję na końcu skryptu (po wyświetleniu jej). |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli z sesją robisz podobnie jak ja, tylko ja to upakowałem w ładną klasę.
W jakich przypadkach wkładasz to bezpośrednio do kodu, bez przekierowań? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 711 Pomógł: 127 Dołączył: 5.07.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
W większości przypadków w których ponowne wykonanie akcji nie będzie możliwe nie stosuję zbędnego przekierowania (usuwanie wpisu, oznaczanie).
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem. Jeśli używasz do tego metody POST, to nie lubię po odświeżeniu być informowany o wysyłaniu danych. Jeśli GET, to po takim np. usunięciu czegoś lubię widzieć czysty link (przekierowanie).
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:09 |