To po kolei, bardziej od frontu na począcek:
- JS praktycznie nie istnieje. Dołączone jest jQuery + własny kawałek kodu do "głosowania" (mechanizm strzałki w górę/dół). Nie ma więcej kodu JS. Można kliknąć obie strzałki, ale tylko raz na odświeżenie strony (potem są nieaktywne). Głosy nie są w żaden sposób zapisywane - zmienia się tylko licznik. Można głosować wielokrotnie. Od strony serwera mechanizm nie ma zabezpieczeń przed CSRF, ale podbicie wyniku wymaga zapytania POST, więc chociaż tyle. Niemniej można botem naspamować tysiąc requestów w minutę i nabijać punkty.
- HTML schludny. Nie wiem czy to zaleta autora czy Bootstrapa ;)
- CSS jest ok
Sama strona to zaledwie kilkadziesiąt plików. NIC tam nie ma. Nawet nie wiem czy jest jakieś zarządzanie administatorskie treścią wygenerowaną przez użytkowników. Mail aktywacyjny nie dotarł (po głębszej analizie - nie miał, to jest zakomentowane). Wiele podstron także w ogóle nie działa, nawala też coś system przyjaznych linków (pusty link do jednej z podstron, wywala więc 404)
Na stronie dodaje się jakieś tam oferty (to jakiś serwis typu kody rabatowe/okazje), ale nie ma możliwości edytowania oferty czy chociażby jej usunięcia.
Generalnie jest zrobione COŚ, co przypomina rozpoczęte prace i porzucone po tygodniu-dwóch (w zależności od tego jak ktoś szybko pracuje).
- Backend to PHP i Bootstrap, owinięty w pseudo-framework (który chyba tylko grupuje klasy i nic więcej nie robi), kod z jakiegoś tutoriala, autorowi nawet komentarzy z examplów nie chciało się usuwać: http://pastebin.com/ynzwNd93
- Kod oprócz tego, że bazowany na jakimś szablonie z Bootstrapa, to w dodatku pełen kopiowanego kodu osób trzecich z mnóstwem zakomentowanego kodu: http://pastebin.com/YVV5kEW2
- Kod zawiera nawet nazwy domen innych serwisów
Autor (albo autorzy) poprawnie stosuje PDO, waliduje dane, ale z drugiej strony - te komentarze, pocięte fragmenty obcych kodów, niedokończone elementy, głosowanie na odwal się - żeby pokazać klientowi, że da się kliknąć.
Autor ma jednak problem z escapeowaniem zmiennych - w przypadku błędnej walidacji (oczywiście brak validacji JS) - do apostrofów doklejane są backslashe. Być może autor ignoruje całkiem obecność magic_quotes. Przy dodawaniu treści na stronie - następuje podwójne encjowanie znaków HTML. Wpisanie w opis 100 > 10
spowoduje wyświetlenie na docelowej stronie 100 > 10
.
Wklejam fragment, żeby pokazać, że autor faktycznie potrafi sensownie złożyć kawałek kodu: http://pastebin.com/EKEmb4J5
Oraz listuję skrótowo i opisowo regułki z routera, żeby pokazać, że w serwisie nie ma nic:
strona główna
zarejestruj się
(i opcje rejestracji przez fb i twitter)
login
+ obsługa gravatar + wyloguj
ostatnio dodane
(i podstrony)
okazja
(widok przeglądania + dodaj)
talon
(przeglądanie + dodaj)
głosowanie
wyszukaj
clear
(cokolwiek to jest)
Sam kod PHP zły nie jest, bo go prawie nie ma :D
Faktem jest, że na obecnym etapie można spokojnie zaorać wszystko i stawiać od nowa, bo tam i tak nic nie ma ;)
Oczywiście jest szansa, że to autor wątku dał zlecenie na coś "maksymalnie prostego do rozbudowy na przyszłość" - to jednak nie usprawiedliwia ewidentnych bugów i braków.
Podsumowując: jest kiepsko, ale naprawdę mogło być gorzej.