• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prosty CMS - Fat Free - Prośba o feedback

0 głosów
319 wizyt
pytanie zadane 13 stycznia 2019 w PHP przez niezalogowany

Hej!
Od kilku dni siedziałem nad małym projektem, którym jakoby miał mi pomóc przyswoić język jakim jest php.
Stworzyłem prosty CMS, który posiada takie funkcje jak:

  1. Dodawanie, edycja, usuwanie oraz kategoryzowanie wpisów
  2. Listowanie wpisów wraz z paginacją
  3. Dynamiczne MENU, które można stworzyć w panelu
  4. Możliwość dodawania podstron w dynamiczny sposób za pomocą panelu.
  5. Widgety - czyli elementy strony, które możemy w swobodny sposób wyświetlać, w dowolnym miejscu na stronie oraz edytować je w panelu.
  6. Oczywiście prosty panel zarządzania oraz logowanie do niego.
  7. Minimalistyczne wsparcie dla seo w postacie SEO Title oraz Description, które możemy zmieniać w panelu.
  8. Dynamiczne ładowanie plików CSS oraz JS jeżeli tylko są w odpowiednim katalogu.
    webroot/css
    webroot/js
     

W planach mam rozwój tego projektu. Na początku oczywiście refaktoryzacja kodu na podstawie opinii, które uda mi się pozyskać od bardziej doświadczonych kolegów. 
Mam prośbę, nie zależy mi aktualnie na tym aby czytać co można dodać (z funkcjonalności), a jedynie chciałbym dowiedzieć się jakie błędy i niedociągnięcia popełniłem w samym kodzie.

W aplikacji wykorzystałem Fat Free FW głównie dla routingu.
Bazowy Controller oraz Model również wykorzystałem z gotowca. 

https://gitlab.com/raptoor2/simplecms/tree/master

1 odpowiedź

0 głosów
odpowiedź 13 stycznia 2019 przez Arkadiusz Waluk Ekspert (291,270 p.)

Trochę przejrzałem, kilka sugestii ode mnie: 

komentarz 13 stycznia 2019 przez niezalogowany

Wielkie dzięki za zainteresowanie, teraz moje pytania do odpowiedzi :)

 

  1. https://gitlab.com/raptoor2/simplecms/blob/master/src/Models/Category.php#L17 - tak nie robimy, wszystkie parametry do zapytań należy bindować.
    Chodzi o funkcję "bind_param"? Jeżeli tak to jakie korzyści niesie jej używanie?
  2. Zastanowiłbym się nad trzymaniem komunikatów (treści błędów itp.) w samych klasach. Co np. gdy będziesz chciał dodać obsługę kolejnego języka?
    Czyli powinien to zrobić na zasadzie jakiegoś pliku np XML, w którym trzymałbym treści komunikatów oprawione odpowiedzią nazwą? np NO_USER
  3. https://gitlab.com/raptoor2/simplecms/blob/master/src/Models/Search.php HTML gdzieś w logice modelu, to jest słabe.
    A jak powinienem to zrobić? Mam tutaj generowanie  formularza i w przyszłości chciałem dodać mozliwość budowania tego formularza w panelu stąd umieszczone tagi w logice.
  4. https://gitlab.com/raptoor2/simplecms/blob/master/src/Models/User.phphtmlspecialchars() na haśle? Czyli jak podam hasło np. z < to się nie zaloguje, bo to zamieni na jakąś encję. Poza tym md5 nie nadaje się do hashowania haseł.
    Czyli powinienem używać sha1 + salt zamiast tego starego md5?
komentarz 13 stycznia 2019 przez Arkadiusz Waluk Ekspert (291,270 p.)
1. Zapytanie jest wysyłane osobno i parametry osobno. Dzięki temu nie ma żadnej możliwości wykonania ataku sql injection.

2. Na przykład. Może to być równie dobrze zwykła tablica w PHP zwracająca klucz - tłumaczenie, coś w stylu: 'user' => 'Użytkownik'. Do tego można to jakoś podzielić, dodać obsługę wielu języków i wydaje się to wtedy całkiem sensowne.

3. Ja bym chyba i tak przerzucił to do osobnego pliku widoku, który by się renderował i zwracał do zmiennej. Dalej w razie potrzeby możesz sobie go podstawić gdzieś do panelu.

4. sha1 nie jest nic lepsze, bcrypt albo Argon2 (password_hash + password_verify).

Podobne pytania

0 głosów
2 odpowiedzi 704 wizyt
pytanie zadane 16 grudnia 2023 w Nasze poradniki przez wizarddos Nałogowiec (27,970 p.)
0 głosów
0 odpowiedzi 407 wizyt
0 głosów
2 odpowiedzi 438 wizyt

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...