Cześć!
W moim poprzednim poście wspomniałem, że opowiem o panelu logowania. W tym poście opowiem wam na jakiej zasadzie działa taki panel, opowiem o swoim panelu, a także pokaże przykładowy kod panelu. A zatem przejdźmy do rzeczy.
Zasada działania
Panel logowania składa się z 3 elementów. Pierwszy to pole tekstowe do którego wpisywany jest login, adres e-mail czy nawet niekiedy numer telefonu. Kolejny element to również pole tekstowe, różni się ono od poprzedniego tym, że wszystko co w nim wpiszemy jest zastąpione kropkami lub gwiazdkami w celu ochrony naszego hasła. Trzecim elementem jest przycisk, który zatwierdza wpisane przez nas dane oraz przesyła je do odpowiednich zmiennych. Dalej zawartość tych zmiennych zostaje porównana z rzeczywistym loginem i hasłem i jeśli zawartość zarówno jednej jak i drugiej zmiennej jest taka sama jak rzeczywiste dane, system przyznaje nam dostęp i przekierowuje nas do naszego profilu. W przypadku gdy jedna ze zmiennych lub obie nie są zgodne, następuje odmowa dostępu a o tym zostajemy poinformowani przez komunikat o nieprawidłowym loginie lub haśle.
Parę słów o moim panelu
Mój panel napisany jest w języku PHP. Działa on dokładnie w ten sam sposób jak opisałem powyżej. Składa się on z formularza HTML, który wszystkie dane przesyła do pliku php za pomocą metody POST. Do każdego pola tekstowego przypisujemy imię ponieważ będzie ono służyło do identyfikacji tego pola. To co wpisaliśmy w polach tekstowych zostaje przesłane do pliku php i zostaje zawartością zmiennych $_POST o takiej nazwie jaką nadaliśmy polom tekstowym. Przykładowo jeśli pole tekstowe, do którego będziemy wpisywać login nazwaliśmy „login” to nasza zmienna będzie się nazywać „$_POST[’login’]”. Następuje porównanie zawartości zmiennych z rzeczywistym loginem i hasłem i w przypadku gdy obie te zmienne są takie same następuje przekierowanie na odpowiednią podstronę. Oczywiście mój panel opiera się na instrukcji warunkowej czyli potocznie mówiąc na if’ach. Jeżeli podane przeze mnie login i hasło jest takie same jak te, które sobie ustawiłem, więc jeśli te dwa warunki są spełnione następuje przyznanie dostępu i przekierowanie. W przeciwnym razie gdy zawartość loginu lub hasła lub obydwu będzie nieprawidłowa, czyli jeden lub dwa warunki nie będą spełnione nastąpi powrót do panelu logowania a następnie wyświetlenie informacji o nieprawidłowych danych. Oczywiście w przypadku gdy mamy większą liczbę użytkowników możemy do tego wykorzystać bazę danych MySQL. Będzie to o wiele szybszy i bardziej sensowny sposób. Zasadę działania takiego rozwiązania opowiem w innym poście. Naszemu panelowi możemy oczywiście nadać ładniejszy wygląd za pomocą CSS’a do czego gorąco zachęcam!
Wada – Łatwy sposób obejścia panelu
Oczywiście panel wykonany w podobny sposób jak mój będzie miał jeden poważny problem. Będzie można dostać się na podaną stronę całkowicie omijając weryfikację loginu i hasła. Wystarczy, że w pasku przeglądarki wpiszemy sobie po prostu adres tej podstrony, do której chcemy się dostać i zostaniemy na nią przekierowani bez podawania loginu i hasła. Aby temu zaradzić należy zabezpieczyć nasz panel. Najlepiej wykorzystać do tego sesje, które oferuje nam PHP. Jednak o ich działaniu i jak je zaprogramować opowiem w osobnym poświęconym im poście.
Podsumowanie
Dziękuję za poświęcenie uwagi na przeczytanie tego postu i serdecznie pozdrawiam! A tymczasem poniżej umieszczam obiecany kod.
Formularz HTML
<form action="login.php" method="post">
Login: <input type="text" name="login"/> <br>
Haslo: <input type="password" name="haslo"/> <br>
<input type="submit" value="Zaloguj"/>
</form>
login.php
<?php
$login = $_POST['login'];
$haslo = $_POST['haslo'];
if(($login=="Antek") && ($haslo=="Misiek874"))
{
header("Location: antek.html");
}
else
{
header("Location: login_panel.html");
echo "Nieprawodłowy login lub haslo";
}
?>
~BK