Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Komunikaty dla użytkownika., Jakie zastosować podejście do komunikatów użytkownika.
br-design.pl
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 30.05.2006
Skąd: Gdańsk

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


Zastanawiam się jakie podejście będzie najwłaściwsze dla komunikatów dla użytkownika (typu dodano artykuł, usnięto produkt, zły login lub hasło itd.).

Myślałem nad jakąś klasą Logger'a ale nie wiem czy to przypadkiem nie za dużo, pozatym Loggera o ile się nie myle stosuję się głownie do błędów aplikacji.

Inny sposób o którym tylko słyszałem to zrobić kolekcje obiektów, ale nie bardzo wiem na czym to by miało polegać...

Jezeli ktoś ma jakiś pomysł to będe wdzięczny?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
br-design.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 1
Dołączył: 30.05.2006
Skąd: Gdańsk

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


Pytanie do zainteresowanych: ;-)

No ale jak, przecież po przeładowaniu obiekt tworzy się na nowo i wszystkie wartości zmiennych idą w las. Więc nie można sobie przekierować a potem wyśwetlić zmiennej, chyba że jest to zmienna sesyjna, ale odwoływałem się do jego sposobu thornag'a:

że wystarczy zmienić kolejność w jego przypadku i wszystko się posypię:

tj.

wpierw zrobię w kodzie:
  1. <?php
  2. echo $msg->ShowMessage() // ewentualnie flaga jako parametr.
  3. ?>

a dopiero potem
  1. <?php
  2. if(akcja()) { /// jesli jakas tam operacja jest udana
  3. $msg->AddMessage("Operacja udana");
  4. } else { // jesli niedudana
  5.  $msg->AddMessage("Operacja nieudana"); // mozna dodawac jeszcze parametry e.g flagi bledow itp.
  6. }
  7. ?>


To jeżeli nie zapiszę zmiennej do sesji i nie przeładuję strony to nic się nie pokaże.

I druga kwestia w tym wypadku.

Czy używać jednej zmiennej sesyjnej i przy każdym wydarzeniu napisywać ją? Ale wtedy możemy wyświetlić tylko jedną wiadomość.
A jeżeli dla każdego komunikatu dawać inna nazwę zmiennej sesyjnej to jak z jej czyszczeniem?

------
Edit:

OK, już mam rozwiązany problem ;-)
Dzięki wszystkim za pomoc. Jakby co to rozwiązałem to tak:
Przykładowa metoda dodawania danych:

  1. <?php
  2. public function form_addRekord() {
  3. if($this->form->validate()) {
  4. try {
  5. // dodawanie do DB.
  6. $this->addRekordFromPost(array('id', 'MAX_FILE_SIZE'));
  7. // sprawdzam czy sa jakies pliki do uploadu
  8. if($_FILES) {
  9. $this->handleFileUpload();
  10. }
  11.  
  12. $this->addMsg('Dodano nowy rekord.'); // ustawiam komunikat
  13.  
  14. $tuJestem = $_SERVER['PHP_SELF'];
  15. header("Location: $tuJestem"); // robie przekierowanie
  16.  
  17. } catch (Exception $e) {
  18. MyErrorHandling::handle_error($e);
  19. }
  20. } else {
  21. $this->form->addElement('submit', null, 'Dodaj');
  22. $this->form->display();
  23. }
  24. }
  25. ?>


Metody obsługujące komunikaty.

  1. <?php
  2. public function showMsg() {
  3. echo $_SESSION['userMsg'];
  4. $_SESSION['userMsg'] = null;
  5. }
  6.  
  7. public function addMsg($string) {
  8. $_SESSION['userMsg'] = $string;
  9. }
  10. ?>

No i potem na stronie:
  1. <?php
  2. $cms->showMsg();
  3. $cms->form_addRekord(); 
  4. ?>


Ten post edytował br-design.pl 18.07.2006, 14:10:48
Go to the top of the page
+Quote Post

Posty w temacie
- br-design.pl   Komunikaty dla użytkownika.   16.07.2006, 20:20:37
- - TomASS   Ostatnio czytałem, że fajnie pracuje się z wyjątka...   16.07.2006, 20:25:53
- - Ociu   Wyjątki przy informacji "Artykuł został dodan...   16.07.2006, 21:20:18
- - br-design.pl   Z wyjątkami pracuje się doskonale a i owszem, ale ...   17.07.2006, 15:27:43
- - nospor   CytatAle z drugiej strony czy Logger nie powinien ...   17.07.2006, 15:37:20
- - br-design.pl   Heh... Tym tropem to mogę sobie zmienić wyjątki n...   17.07.2006, 15:49:49
- - nospor   CytatTym tropem to mogę sobie zmienić wyjątki na p...   17.07.2006, 18:28:01
- - Strzałek   CytatHmmm pomysł z java jest całkiem ok, ale wydaj...   17.07.2006, 21:04:47
- - br-design.pl   @nospor OK, Co do Loggera chodziło mi po prostu ...   17.07.2006, 21:17:33
- - nospor   CytatA powiedz jeszcze, jak w swoim rozwiązaniu ro...   17.07.2006, 22:35:45
- - br-design.pl   To ja poproszę wtedy o szybką lekcje php bo nie po...   17.07.2006, 22:46:02
- - nospor   Cytattworzy się wiadomość o tym fakcie, strona prz...   17.07.2006, 23:02:26
- - br-design.pl   Ok, a co z problemem przeładowania? Po takiej ope...   17.07.2006, 23:19:37
- - netzah   Strasznie komplikujesz proste rzeczy. masz na str...   18.07.2006, 06:45:56
- - Prph   Wczesniej przy programowaniu strukturalnym zastoso...   18.07.2006, 08:40:55
- - nospor   CytatPo takiej operacji jak ty mówisz, weźmy ...   18.07.2006, 10:48:24
- - thornag   Jak dla mnie to klasa metoda dla wyswietlania. Ost...   18.07.2006, 11:47:12
- - br-design.pl   To ja ciągle czegoś nie rozumiem, je...   18.07.2006, 13:32:24
- - nospor   teraz ja nie rozumiem. do kogo to pytanie? do mnie...   18.07.2006, 13:36:14
- - br-design.pl   Pytanie do zainteresowanych: ;-) No ale jak, prze...   18.07.2006, 13:55:08
- - nospor   no to przeciez caly czas mowie, ze jesli robisz pr...   18.07.2006, 13:57:17
- - br-design.pl   No i już sobie przypomniałem dlaczego zadałem wlaś...   18.07.2006, 17:43:43
- - nospor   CytatPrzeladowuje strone (ale wiadomo header locat...   18.07.2006, 18:15:55
- - br-design.pl   Sprawdź... exit zatrzymuje wogóle cały proces, nie...   18.07.2006, 18:23:26
- - nospor   To ty sprawdź exit powoduje zatrzymanie wysy...   18.07.2006, 19:19:47
- - br-design.pl   ad 1) Sprawdziłem zanim to napisałem i jest tak ja...   18.07.2006, 19:30:58
- - nospor   Jesli ja dla Ciebie nie jestem osobą wiarygodną to...   18.07.2006, 19:36:37


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: 14.10.2025 - 07:24