Jak Autoryzować

Spisu treści:

Jak Autoryzować
Jak Autoryzować

Wideo: Jak Autoryzować

Wideo: Jak Autoryzować
Wideo: Jak autoryzować transakcję w Moim ING 2024, Grudzień
Anonim

Często zdarza się, że konieczne jest podzielenie odwiedzających na pożądanych i niepożądanych oraz umożliwienie przeglądania niektórych stron serwisu tylko tym, którzy posiadają nazwę użytkownika i hasło. Jak to zrobić np. w języku skryptowym PHP po stronie serwera?

Jak autoryzować?
Jak autoryzować?

Instrukcje

Krok 1

Zorganizujmy najłatwiejszy sposób ochrony Twoich stron przed nieautoryzowanymi gośćmi. Nośnikiem informacji o tym, czy odwiedzający jest uprawniony będzie sesja. Sesja jest odpowiednikiem plików cookie w przeglądarce, z tą tylko różnicą, że tworzone są nie na naszym komputerze, ale na serwerze. Są one używane w tym samym celu, co pliki cookie - do przechowywania różnych informacji o nas, gdy przechodzimy od strony do strony jednej witryny. Po zamknięciu przeglądarki serwer niszczy tę sesję, a przy kolejnym logowaniu tworzy nową. Używamy tego mechanizmu serwera do rejestrowania, czy użytkownik jest już zalogowany w sesji, czy nie. Czytając te informacje, gdy odwiedzający zażąda strony, skrypt php albo otworzy dostęp do stron chronionych hasłem, albo zaoferuje wprowadzenie nazwy użytkownika i hasła.

Krok 1: Utwórz stronę do wpisywania loginu i hasła. Kod HTML formularza autoryzacji w najprostszej postaci może wyglądać tak:

Zaloguj sie:

Hasło:

Tutaj (na samym początku pliku) dodamy kod php, który sprawdzi poprawność wprowadzonej przez odwiedzającego nazwy użytkownika i hasła. Na początek napiszemy:

start_sesji ();

To polecenie uruchamia nową sesję, jeśli nie została jeszcze utworzona dla tego gościa.

Następnie sprawdźmy, czy sesja ma zmienną o nazwie 'userName' - będzie ona przechowywać nazwę, jeśli odwiedzający był już zalogowany. Jeśli istnieje taka zmienna, przekieruj odwiedzającego na stronę główną (index.php) i zakończ wykonywanie tego skryptu php:

if ($ _ SESSION ['nazwa_użytkownika']) {

nagłówek ("Lokalizacja: index.php");

Wyjście;

}

Pozostała część kodu zostanie wykonana tylko wtedy, gdy użytkownik nie wprowadził jeszcze poprawnej nazwy użytkownika i hasła. Wskażmy, który login i hasło należy uznać za prawidłowe:

$ validName = 'Jestem mój!';

$ validPass = 'tajne hasło';

Następnie sprawdzamy, czy wartości przesłane z formularza zgadzają się z prawidłowymi. Ponieważ w formularzu określiliśmy metodę przesyłania danych POST, należy je odczytać ze zmiennej superglobalnej $_POST:

if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['nazwa_użytkownika'] = $ poprawna nazwa;

nagłówek ("Lokalizacja: index.php");

Wyjście;

}

Tutaj kod w nawiasach klamrowych {} zostanie wykonany z poprawnymi wartościami nazwy użytkownika i hasła. W wierszu $ _SESSION ['userName'] = $ validName; ma zapisujemy w sesji zmienną o nazwie 'userName' zawierającą login uprawnionego użytkownika. Będzie to znak, że dostęp jest dla niego otwarty wszędzie, dopóki jego bieżąca sesja jest ważna.

A w przypadku wpisania do formularza błędnych danych, dodaj stosowny komunikat:

jeszcze echo"

Login lub hasło jest nieprawidłowe!

;

Cały kod, który należy zapisać do pliku o nazwie login.php będzie wyglądał tak:

<?

start_sesji ();

if ($ _ SESSION ['nazwa_użytkownika']) {

nagłówek ("Lokalizacja: index.php");

Wyjście;

}

$ validName = 'Jestem mój!';

$ validPass = 'tajne hasło';

if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {

$ _SESSION ['nazwa_użytkownika'] = $ poprawna nazwa;

nagłówek ("Lokalizacja: index.php");

Wyjście;

}

jeszcze echo"

Login lub hasło jest nieprawidłowe!

;

?>

Zaloguj sie:

Hasło:

Krok 2

Krok 2: Utwórz blok autoryzacyjny - osobny plik, który będzie połączony z każdą stroną wymagającą ochrony hasłem. Plik ten będzie zawierał tylko kod php, więc jego rozszerzenie będzie "php", a my nadamy mu nazwę zgodnie z tradycją dla takich plików - "auth", czyli "auth.php". I tu też zaraz po otwierającym tagu <?php powinna znajdować się instrukcja rozpoczęcia sesji:

start_sesji ();

Z superglobalnej tablicy $_SESSION możemy odczytać wszystkie zmienne, które są przechowywane w sesji. Musimy sprawdzić wartość zmiennej "userName" - jeśli gość jeszcze się nie zalogował, to nie będzie go w tablicy, a przekierujemy go na stronę do wpisania jego nazwy użytkownika i hasła:

if (! $ _ SESJA ['autoryzowane']) {

nagłówek ("Lokalizacja: login.php");

Wyjście;

}

Cały kod, który należy zapisać do pliku auth.php będzie wyglądał tak:

<?

start_sesji ();

if (! $ _ SESJA ['admin']) {

nagłówek ("Lokalizacja: enter.php");

Wyjście;

}

?>

Krok 3

Krok 3: po zapisaniu tych plików na serwerze pozostaną one na wszystkich stronach php, które muszą być chronione przed nieautoryzowanymi użytkownikami, aby podłączyć blok autoryzacji. Oznacza to, że na samym początku każdego pliku php będziesz musiał wstawić ten kod:

<?

wymagają "auth.php";

?>

A żeby zmienić hasło dostępu, trzeba będzie zmienić wartości tych zmiennych w pliku login.php:

$ validName = 'Jestem mój!';

$ validPass = 'tajne hasło';

$ validName - login, $ validPass - hasło.

Zalecana: