![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 20 Dołączył: 8.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
troche mi zajelo zeby ogarnac ten caly oop, wiec jak juz mi sie w koncu udalo to postanowilem sobie cos napisac. moglibyscie to ocenic pod katem bezpieczenstwa i wydajnosci? pozdrawiam
index.php
reg.php
main.php
PS: głupi problem ale co zrobic zebym nie musiał pisac $pdo = new PDO(...) w kazdej metodzie w ktorej potrzebuje wykonac zapytanie do bazy? np. w reg.php wpisuje to samo w metodzie auth2 i addUser. gdy chcialem wrzucic to do konstruktora to byl problem taki, ze te dwie metody nie wiedzialy czym jest $pdo w wyrazeniu $stmt=$pdo.. tak wiec jak to obejsc? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) Skoro używasz PDO to korzystaj z dobrodziejstwa jakim jest BINDOWANIE. Teraz Twój skrypt jest podatny na banalny SQL INJECTION
2) Nie możesz od tak sobie używać DIE dla wyświetlenie błędu. Całą obiektówkę właśnie szlag trafił 3) PDO inicjalizuj tylko raz a potem używaj tam gdzie chcesz |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 20 Dołączył: 8.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
1) Skoro używasz PDO to korzystaj z dobrodziejstwa jakim jest BINDOWANIE. Teraz Twój skrypt jest podatny na banalny SQL INJECTION 2) Nie możesz od tak sobie używać DIE dla wyświetlenie błędu. Całą obiektówkę właśnie szlag trafił 3) PDO inicjalizuj tylko raz a potem używaj tam gdzie chcesz 1) tzn. w ktorym miejscu? 2) tak podejrzewalem ze to nie najlepsze wyjscie. a co bys proponował? return false na przyklad? 3) probowalem dac je do konstrukora, albo po prostu zainicjowac $pdo po kliknieciu submita ale wywala mi 'Call to a member function query() on a non-object'... Ten post edytował tab 4.11.2012, 21:45:26 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ad1) tzn zapoznaj się co to bindowanie a bedziesz wiedział w którym miejscu.
ad2) no return false na pewno bedzie lepsze (IMG:style_emoticons/default/smile.gif) ad3) widać źle używałes (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
ad1) używa w jednym miejscu, mianowicie addUser (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 1 Dołączył: 16.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przydała by się jeszcze pewnie w panelu logowania (IMG:style_emoticons/default/smile.gif)
A ja mam pytanko jedno do czego służy funkcja
czy takie coś nie wystarczy ?
ucze się oop i tak mnie to zastanawia (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy, ale niesie to za sobą poważne konsekwencje - brak podpowiadania składni np. w ide, nie wyobrażam sobie w zend'zie by coś takiego się pojawiało notorycznie, nie znam wszystkich metod i podpowiadanie w jakiś 95% pozwala mi "strzelać" nazwy i daje pożądany skutek. Poczytaj dlaczego nie poleca się magi w php.
Moim skromnym zdaniem takich fajerwerków jak __get() powinno się używać do danych które mogą ale nie muszą pojawić się w klasu, a skoro każdy instancja obiektu np. autoryzacji musi mieć login i hasło to lepiej dodać getNick() itd. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 20 Dołączył: 8.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
to __get faktycznie jest niepotrzebne, nei wiem po co je dalem (IMG:style_emoticons/default/wink.gif)
a co do problemu z pdo to wymysliem by przypisac je do pola klasy, czy to dobre rozwiazanie czy jest jakies lepsze? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
po co tworzysz dwie osobne klasy i to jeszcze o tej samej nazwie
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 280 Pomógł: 20 Dołączył: 12.12.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli już korzystasz z __get to utwórz tablicę $data i w niej trzymaj dane do których funkcja ma dostęp. Inaczej to bez sensu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 11:22 |