Poniższy artykuł jest przeznaczony dla początkujących i pokazuje proste rozwiązanie problemu. Skrypt wymaga wiele usprawnień.
Aktualna wersja jest z czerwca 2016, pierwsza wersja była napisana w maju 2010.
Wymagana wersja PHP to 5.4 lub większa.

System logowania i rejestracji to praktycznie najważniejszy element strony www. W tym poradniku pokażę system z funkcjami: rejestracja i logowanie, wyświetlanie profilu, edycja profilu oraz lista użytkowników.

Na początek stworzymy sobie plik config.php. Będą się w nim znajdować dane do połączenia z bazą danych:

Gdy już mamy plik konfiguracyjny należy stworzyć tabelę w bazie danych.

Zapytanie wklejamy do phpMyAdmin lub innej aplikacji do zarządzania bazą danych (ja polecam prosty Adminer).

Na początek tworzymy plik Sql.class.php, w którym zawrzemy klasę Sql która dziedziczy po klasie mysqli. Jedynym rozszerzeniem będzie dodanie funkcji clear która będzie nam filtrowała zmienne (pamiętajcie: zawsze trzeba filtrować wszystko co przesyła nam użytkownik).

 

W kolejnym kroku tworzymy plik Users.class.php, w którym będzie się znajdowała cała logika systemu. Na początek tworzymy samą klasę i konstruktor. W konstruktorze przekazujemy połączenie z bazą danych oraz ID aktualnie zalogowanego użytkownika – te dane będziemy przekazywać do obiektu w innym pliku.

 

Pierwszymi metodami będzie funkcja kodująca hasło (przy pomocy bezpiecznego algorytmu sha256) oraz funkcja sprawdzająca czy użytkownik jest zalogowany (czy podano user_id):

 

Kolejną metodą będzie funkcja register(), która będzie wywoływana w momencie rejestracji użytkownika (jak już zostaną podane dane):

 

Kolejną funkcją jest login(), która również będzie wywoływana w przypadku wypełnienia formularza.

 

Teraz funkcja get_data(), która będzie pobierać dane użytkownika (ze zdefiniowanym ID):

 

Kolejną funkcją jest save(), która zapisuje dane po edycji profilu:

 

I na koniec dwie funkcje: get_count() – ilość zarejestrowanych użytkowników oraz get_list() – lista użytkowników z opcjonalnym zawężaniem wyników.

 

Cały kod pliku Users.class.php:

 

Ostatnim i najważniejszym plikiem będzie index.php (główny kontroler) ale zanim go napiszemy to musimy stworzyć dwa pliki z podstawowym kodem HTML dla naszej aplikacji:

tpl_header.php:

tpl_footer.php:

 

No i finalny plik index.php, na razie podstawy:

 

Na początek tworzymy dwie podstrony: register oraz login (do rejestracji i logowania):

 

Następnie wylogowanie użytkownika (logout):

 

I bardzo ważne dwie funkcje: edycja profilu i jego wyświetlanie.

 

Na koniec dodajemy funkcję list (lista użytkowników) i domyślny moduł który wyświetla linki do innych podstron:

 

Cały plik index.php: