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

Logowanie [PHP]

HackNation - ogólnopolski hackathon
0 głosów
454 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 (215,070 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ź 380 wizyt
0 głosów
1 odpowiedź 908 wizyt
0 głosów
0 odpowiedzi 460 wizyt
pytanie zadane 24 listopada 2021 w PHP przez BarSki13 Obywatel (1,270 p.)

93,626 zapytań

142,551 odpowiedzi

323,045 komentarzy

63,130 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1388p. - Maurycy W
  6. 1371p. - raydeal
  7. 1369p. - Adrian Wieprzkowicz
  8. 1360p. - Tomasz Bielak
  9. 1335p. - robwarsz
  10. 1296p. - Michal Drewniak
  11. 1269p. - Rafał Trójniak
  12. 1141p. - ssynowiec
  13. 1116p. - rucin93
  14. 1102p. - Dominik Łempicki (kapitan)
  15. 1100p. - Mariusz Fornal
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
...