![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie loguje. Czy taka konstrukcja jest prawidłowa: ? Ten post edytował pawelit 14.09.2011, 12:58:04 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W końcu ktoś kto napisał klasę logowania w php5 i jeszcze użył PDO, normalnie jestem pod wrażeniem (IMG:style_emoticons/default/smile.gif)
Konstrukcja nie jest prawidłowa bo metoda login() nie jest statyczna, poza tym chcesz porównać login do hasła, no i nie wysyłasz go forumlarzem? I ciut przekombinowałeś, sprawdzaj tylko czy sesja istnieje. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie metoda login() wyciąga hasło usera z bazy danych którego login podam w formularzu.
W 10 linii robię tak czyli chcę zhashować podane hasło w formularzu, a w metodzie process porównuję
to wyciągnięte (zhashowane przy rejestracji) hasło ze zhashowanym w 10 linii hasłem z formularza. Jeśli są takie same to $_SESSION['permissions'] = 1; Ten post edytował pawelit 14.09.2011, 13:00:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@!*! A gdyby metoda login() była statyczna, to wspomniany skrypt by działał? Wątpię.
@pawelit To, że metoda login() jest publiczna nie oznacza, że wewnątrz klasy jest dostępna jako login().
Uwagi co do klasy: - nie jestem pewien, czy taka klasa powinna przechowywać dane logowania (po co?), - warto by było oddzielić walidację od samego procesu logowania. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi.
Teraz zrobiłem tak, chyba coś jeszcze źle zrobiłem bo nie wyświetla a wygląda że wszystko ok
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Czego nie wyświetla? Pojawiają się jakieś błędy? Włącz wyświetlanie i raportowanie wszystkich błędów w głównym pliku.
Takie uwagi mi się jeszcze nasunęły: - dane do logowania powinny być przekazane, jako argument konstruktora, a nie pobierane w konstruktorze bezpośrednio z $_POST, - Twoja funkcja filter() jest bez sensu, bo bez wiedzy użytkownika zamienia wpisane przez niego słowo na coś innego, a tymczasem powinna zgłosić błąd, że wprowadzono niedozwolone znaki. Mam chwilę, to zaraz sprawdzę ten kod dokładniej. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak jakby $_SESSION['permissions'] nie istaniało Struktura bazy danych to:
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
mortus - nie, źle się wyżej wyraziłem.
Do czego Ci te nawiasy ? I nie jestem przekonany co do poprawności samego zapytania. Użyj też bindowania do PDO (tak na przyszłość, coby zapobiec SQLi) Poza tym nie musisz sprawdzać czy $_SESSION['permissions'] jest równe 1 (sesja ta w ogóle istnieje w kodzie?) Oddziel też walidacje od samego procesu logowania. Ten post edytował !*! 14.09.2011, 14:10:11 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
mortus - nie, źle się wyżej wyraziłem.
Do czego Ci te nawiasy ? I nie jestem przekonany co do poprawności samego zapytania. Użyj też bindowania do PDO (tak na przyszłość, coby zapobiec SQLi) Poza tym nie musisz sprawdzać czy $_SESSION['permissions'] jest równe 1 (sesja ta w ogóle istnieje w kodzie?) Oddziel też walidacje od samego procesu logowania.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Źle używasz PDO, w związku z czym warunek if($this->login() == $this->password) nigdy nie jest spełniony. Funkcja login() powinna wyglądać tak:
Radzę przemyśleć kwestię równej tabulacji kodu, co dzisiaj załatwia większość edytorów programistycznych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.08.2025 - 03:25 |