![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
hej, piszę nową wersję mojej aplikacji i mam do was pytanie odnoście takiego rozwiązania jak poniżej. Co o tym myślicie? Jeśli macie jakieś sugestie proszę napisać.
Ten post edytował charzak 16.11.2015, 21:15:46 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Musisz pokazać trochę więcej kodu. Chyba że chodzi tylko o ten kawałek, wtedy według mnie:
-brak zabezpieczeń przed xss'em (chyba że któreś z tych przygotowań to zabezpiecza) -wszystkie prepare wrzucił bym do jednej metody -wszystkie inserty również -Masz 4 tabelki do przechowywania info użytkowniku/koncie? (Jeśli nie to po co 4 zapytania?) Gdzie deklarujesz:
Gdzie sprawdzasz czy użytkownik istnieje? Gdzie sprawdzasz czy jedna osoba nie zakłada kliku kont? Czy te metody coś zwracają czy dopisują do $this i się kończą? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedź. rzeczywiście trochę za mało kodu przedstawiłem na dniach postaram sie wrzucić całą klasę.
w metodach prepare będzie zabezpieczenie xss, metody zwarą poprawne dane do $this->user[usersData] (tak jak nazwy tabel) lub [users] ub [usersAcounts] i tak dalej. jeśli dane są nie poprawne to będzie zwrócony błąd i przekierowanie do poprawienia formularza (raczej takiej opcji nie zakładam bo będzie validator formularzy). z tym rozdzieleniem insrtów i prepare chodzi mi o to, że np. przy rejstracji będzie zapis 4 lub 5 tabel ale już przy edycji np danych adresowych tylko 1 tabeli, stąd to rozdzielenie. dane usera są podzielone na tabele: users - login hasło aktywny zabokowany usersAccount - punkty rabaty vouchery licencje itp usersData - imie nazwisko dane adresowe usersFactures - dane do factory usersAddresses - dane do wysyłki usersHasLegalConsent - zgody prawne uważasz, że ten podział powinien być inny? jestem otwarty na sugestie i krytykę. dodatkowo zastanawiam się na rozbiciem klasy users na: Users extends Controller UsersRegister extends Users - tylko rejestracje UsersAuth extends Users - logowania UsersEdit - edycja i usuwanie ma to sens? i w Users extends Controller - byłyby metody prepare a inserty już w swoich klasach Ten post edytował charzak 18.11.2015, 13:28:45 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma to sensu, bo w klasie Users robisz prepare, które z założenia nie zostaną wykorzystane. Kontrolery mają to do siebie, że nie stosuje się w nich typowego polimorfizmu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił bardziej w ten sposób:
-uwierzytelnianie użytkownika (w tym przed Session injection co request) -klasa rejestracji + model -klasa logowania + model Zamiast sprawdzać czy nie ma xss'a zrobił bym klase superglobal a w niej coś takiego:
I analogicznie dla get, cookie itp. lub pobawić się z __call() lub switchem. Dzięki temu nie będziesz musiał za każdym razem pisać if(isset()) i htmlspecialchars() przez co kod będzie czytelniejszy. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 25.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
zastanawiam się jeszcze czy na pewno warto rozbijać obsługę użytkownika na kilka klas: users, usersReg, usersLog, usersEdit, ma to być wykorzystane w portalu i osobno w sklepie internetowym
klasa logowania co o niej myślicie?
klasa rejestracji
Ten post edytował charzak 23.11.2015, 14:46:26 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
zastanawiam się jeszcze czy na pewno warto rozbijać obsługę użytkownika na kilka klas: users, usersReg, usersLog, usersEdit, ma to być wykorzystane w portalu i osobno w sklepie internetowym Nie. Klasa do zarządzania użytkownikiem to klasa do zarządzania użytkownikiem (dodawanie, usuwanie, edycja, ew aktywacja). Autoryzacja użytkownika to osoba klasa (logowanie, wylogowanie, sprawdzanie czy zalogowany). Dobry przykład możesz obadać z zendzie. Ten post edytował !*! 23.11.2015, 14:55:47 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 11:07 |