PHP - automatyczne logowanie

DZIAŁANIE: Działanie : TUTAJ

Kod:

Ewentualne Objaśnienia:

Oto przykład bazujący na sesjach oraz cookies, który ma posłużyć do automatycznego logowania - czyli dzięki ciasteczkom będzie można jeśli tylko użytkownik zechce zapamiętać jego login oraz hasło, aby za każdym razem nie trzeba było się od nowa logować.

Należy zauważyć, że zaprezentowana tutaj funkcja sprawdzHaslo - to funkcja, której na pewno nie należy nigdzie używać - hasła powinny być przechowywane w pliku tekstowym, zaszyfrowane, plik nie powinien być dostępny dla nikogo z zewnątrz lub też w przypadku dużej ilości użytkowników w bazie danych. Generalnie w przypadku logowania do jakiegoś prostego paneliku, gdzie dostępowy jest tylko 1 zestaw loginu i hasła można użyć rozwiązania o zapisaniu hasła w podobny sposób jak tutaj czy jakimś zewnętrznym pliku typu config.inc.php .
Istotne jest także, że strona na którą będziemy odsyłani po poprawnym zalogowaniu czyli tutaj 197tajna.php powinna w sobie posiadać mechanizm sprawdzania zalogowania czyli generalnie sprawdzać sesję $_SESSION['login']. Rzecz jasna nie ma sensu takiego kodu powtarzać - wpisywać dla każdej pod strony, do której dostęp ma być możliwy po zalogowaniu - wystarczy dołączyć odpowiedni plik z kodem sprawdzającym - tak jak w przykładzie 161strukturalny_panel.php .

Ogólne omówienie kodu :
- jeśli jesteśmy zalogowani od razu przenosimy się na naszą tajną stronę
- jeśli istnieją ciasteczka - zapamiętane jest nasze logowanie czyli user i hasło sprawdzamy czy są one poprawne - jeżeli tak przenosimy się na tajną stronę, jeżeli nie stare cookies jest usuwane
- jeżeli nie ma zapamiętanych danych, a istnieją dane POST czyli przesyłany jest login i hasło oraz są one poprawne sprawdzamy czy wybrano opcję automatycznego logowania - jeżeli tak ustawiane jest odpowiednie cookies pamiętające usera i hasło, jeżeli nie po prostu przenosimy się na tajną stronę

Nie pokazałem tutaj kodu formularza pobierającego dane od użytkownika, ale to bardzo proste nie mniej jednak gdyby ktoś miał wątpliwości to :
<FORM method="post"><b>User : </b><input type="text" name="nazwa"><br/>
<b>Hasło : </b><input type="password" name="haslo"><br/>
<b>Logowanie automatyczne : </b><input type="checkbox" name="autolog" value="pamietaj"><br/>
<input type="submit" value="loguj"></FORM>