Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Komunikaty zwrotne na strone główną
Agape
post
Post #1





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


Rzecz banalna i potrafię ją zrobić tylko jak? Chodzi mi o komunikaty zwrotne typu:

nie prawidłowe hasło
pomyślne zalogowanie
haslo zostało wysłane na e-mail
produkt został dodany do koszyka / usuniety z koszyka

Można to zrobić prosto (i zarazem pewnie źle) przesyłając komunikat przez post/get na strone główną, ale dzięki temu ktoś może spreparować link wstrzykując swoją treść na strone główną.
Można też zrobić listę komunikatów, ale skoro jest z parenaście komunikatów czy takie rozwiązanie jest optymalne ? i jak przesyłać komunikaty ? np adres.pl?komunikat=45 (czyli np "pomyslnie zalogowano"), wtedy tez teoretycznie ktoś może spreparować link, tylko ze bardzo nie wiele mu to da, a gdy jeszcze komunikaty są przez post przesylane...

Nie mam obeznania w tym jakie techniki się stosuje dlatego to pytanie jak najlepiej to zrobić. Druga opcja brzmi rozsądnie ale chce się upewnić zamiast stosować "złe" praktyki

Ten post edytował Agape 3.03.2010, 09:33:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




@thek, ja robię coś takiego:
Mam klasę odpowiedzialną za tworzenie formularzy (helper inkludowany przez AkcjaController)
W niej jest metoda createForm(), któa jako jeden z argumentów (poza action, metod, enctype itp.) przyjmuje tablicę z komunikatami błędu (jedna ze składowych klasy AkcjaController).

W klasie AkcjaModel, w któej znajduje się metoda walidacji formularza, mam coś takiego:
  1. public function validateForm($formdata) {
  2. $errors = array();
  3. if (!$formdata['imie']) {
  4. $errors['imie'] = "Proszę podać imię";
  5. }//if
  6. ...i tak dla wszystkich pol...
  7.  
  8. ...a na końcu:...
  9. if (!empty($errors)) return array(false, $errors);
  10. return array(true, $formdata);
  11. }


Metoda z klasy AkcjaController, która "zgłosiła" formularz do walidacji odbiera powyższy rezultat:
  1. ...
  2. $is_valid = $this->model->validateForm($this->formdata);
  3. if ($is_valid[0]) {
  4. //wykonaj akcje, korzystajac ze zwalidowanych danych; czasem podczas walidacji zachodza dodatkowe dzialania
  5. //na danych z formularza, dlaetgo uzywam tu danych zwroconych z validateForm()
  6. $this->model->updateData($is_valid[1]);
  7.  
  8. } else {
  9. //w przypadku niepowodzenia, do tablicy $errors klasy AkcjaController przypisuje tablice z bledami, ktora zwrocila
  10. //validateForm() z AkcjaModel
  11. $this->errors = $is_valid[1];
  12. //wyswietlam formularz, w odpowiednich miejcach pojawiaja sie komunikaty dla odpowiednich pol
  13. //w tym przykladzie, obok pola 'Imię' pojawi się 'Proszę podać imię'
  14. $this->form->displayForm();
  15. }


Metoda wyswietlająca formularz "wie", któe pole dostało komunikat błędu, bo klucz w tablicy $this->errors (tu:['imie']) jest taki sam, jak nazwa pola i wstawiany jest tam "z automatu".

Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 19:39