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

Logowanie [PHP]

Object Storage Arubacloud
0 głosów
213 wizyt
pytanie zadane 3 grudnia 2019 w PHP przez Rafał Masny Obywatel (1,700 p.)
Witam.

Zrobiłem stronę rejestracji, przy użyciu PHP. Tj. login, haslo, jakies dane, po wcisnieciu na przycisk, który jest na stronie, dane dodane są do bazy danych (phpMyAdmin).

Teraz musze zrobic logowanie, tj. wpisze login i haslo - dostaje komunikat, ze logowanie pomyslne lub, że nie istnieje taki uzytkownik. Dane oczywiscie pobiera z bazy. Powie ktos jak mam takie cos wykonac? Albo nakieruje?

Naturalnie wyslalbym kod, ktory napisalem, ale nie mam przy sobie kompa, na ktorym pracowalem.

2 odpowiedzi

0 głosów
odpowiedź 3 grudnia 2019 przez michal_php Stary wyjadacz (13,700 p.)
Na początek to jakiś formularz gdzie można wpisać dane. Formularz logowania i rejestracji. A następnie dane z formularzy wysyłasz na Backend. Podajesz je sanityzacji aby zabezpieczyć bazę przed sql injection. Następne robisz walidacja to w przypadku rejestracji. A na koniec sprawdzasz czy istnieje dany rekord w bazie. Chodzi, że ktoś loguje sie i poda zły login więc najpierw sprawdzasz czy taki login istniej w bazie jeśli istnieje sprawdzasz czy jest taki sam jak ten pobrany. A następnie haszujesz hasło pobrane z formularz logowania i sprawdzasz czy pasuje do tego co jest w bazie. Jeśli pasuje jesteśmy zalogowani jeśli nie to jeszcze raz. To tak w skrócie jak wygląda logika logowania.
1
komentarz 3 grudnia 2019 przez Ehlert Ekspert (212,670 p.)

Podajesz je sanityzacji aby zabezpieczyć bazę przed sql injection

Przed sqli zabezpiecza prepared statements oraz parameterized queries.

0 głosów
odpowiedź 3 grudnia 2019 przez dawid6512 Gaduła (4,550 p.)

no to tak

$result = 'SELECT id,login,password FROM users WHERE login = $login';
        if(!empty($result["id"])){
            if($password != $result['password'])
                die('Niepoprawne hasło');
            else
                die('Zalogowano');
        }else{
            die('Taki user nie istnieje');
        }

Oczywiscie nie jest to kod gotowy - musisz:

1. Wykonać zapytanie (najlepiej PDO, ew. mysqli) tez ujdzie
2. Zapytanie musisz wykonać z Fetch() - nie FetchAll() - tak to wyglada w PDO (w mysqli sobie musisz sam poszukac)
3. Do zmiennej result wsadzasz wynik zapytania.

 

Oczywiście brakuje tu logiki sprawdzania hashu i ogolnie uznaj to jako szkielet który trzeba dopracować i zabezpieczyć.

Podobne pytania

0 głosów
1 odpowiedź 164 wizyt
0 głosów
1 odpowiedź 640 wizyt
0 głosów
0 odpowiedzi 287 wizyt
pytanie zadane 24 listopada 2021 w PHP przez BarSki13 Obywatel (1,250 p.)

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,965 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...