Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie komunikatów dla użytkownika
Forum PHP.pl > Forum > PHP
croc
Dość dawno tu nie pisałem, więc witam ponownie smile.gif

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 smile.gif Nie lubię, gdy po wysłaniu formularza nie wiadomo czy cokolwiek się stało.

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?
cycofiasz
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).
croc
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ń?
cycofiasz
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).
croc
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). smile.gif
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.