Dyrektywy sesji PHP
Wszystkie dyrektywy związane z sesją można ustawić za pomocą za pomocą PHP.ini plik. Wymieniono niektóre przydatne dyrektywy PHP sesji.
Dyrektywa sesji | zamiar |
---|---|
sesja.save_handler | Wartość dyrektywy może być akta Lub mm Lub sqlite Lub użytkownik. mm służy do obsługi danych sesji za pomocą pamięci. sqlite jest używany do obsługi danych za pomocą bazy danych SQLITE. użytkownik służy do obsługi danych za pomocą funkcji zdefiniowanej przez użytkownika. |
session_auto_start | Wartość tej dyrektywy będzie NA Aby rozpocząć sesję automatycznie; W przeciwnym razie będzie to Wyłączony. |
sesja.nazwa | Służy do ustawiania nazwy sesji, a domyślną nazwą sesji to Phpsessid. |
sesja.Zapisz ścieżkę | Służy do ustawienia ścieżki, w której informacje o sesji będą przechowywane. Domyślna wartość tej dyrektywy to akta. |
sesja.Hash_function | Służy do generowania identyfikatora sesji Hashed. 0 jest używane MD5 algorytm i 1 jest używany do SHA algorytm. |
sesja.Cache_Expire | Służy do ustawiania czasu ważności sesji. |
sesja.Użyj_Cookies | Służy do przechowywania identyfikatora sesji poprzez zatrudnienie pliku cookie. 1 jest używany do zatrudnienia plików cookie, a 0 jest emply do braku użycia plików cookie. |
sesja.użyj_only_cookies | Służy do zatrudnienia pliku cookie tylko do przechowywania identyfikatora sesji. |
sesja.Cookie_secure | Służy do określenia, czy plik cookie zastosuje bezpieczne połączenie, czy nie. Jest włączony przy użyciu włączania i wyłączonego, stosując Wyłączony wartości. |
sesja.Cookie_lifeTime | Służy do ustawiania życia pliku cookie. |
Możesz odwiedzić następujący link, aby dowiedzieć się więcej o dyrektywach sesji.
https: // www.php.Net/Manual/en/INI.lista.php
Funkcje sesji PHP
PHP ma wiele wbudowanych funkcji zadań obsługi sesji. Niektóre przydatne funkcje obsługi sesji są wymienione poniżej.
Funkcja sesji | zamiar |
---|---|
session_start () | Służy do rozpoczęcia nowej sesji lub ponownego uruchomienia poprzedniej sesji. |
session_id () | Służy do ustawiania lub zdobycia lub obu ustawionych i uzyskania identyfikatora sesji. |
session_create_id () | Służy do utworzenia nowego identyfikatora sesji. |
session_name () | Służy do ustawiania lub zdobycia lub obu ustawionych i uzyskania bieżącej nazwy sesji. |
session_status () | Służy do uzyskania informacji o bieżącym statusie sesji. |
session_reset () | Służy do ponownego inicjowania tablicy sesji. |
session_unset () | Służy do niezdefiniowania wszystkich zmiennych sesji. |
session_destroy () | Służy do niszczenia wszystkich zarejestrowanych danych sesji. |
session_encode () | Służy do kodowania bieżących danych sesji. |
session_decode () | Służy do dekodowania zakodowanych bieżących danych sesji. |
session_commit () | Służy do zapisywania danych sesji i zamykania sesji. |
session_abort () | Służy do usunięcia zmian w tablicy sesji i zamknięcia sesji. |
session_regeneate_id () | Służy do generowania nowej sesji dla istniejącej sesji. |
session_cache_limiter () | Służy do ustawiania lub uzyskania ogranicznika pamięci podręcznej bieżącej sesji. |
Session_cache_expire () | Służy do ustawiania lub uzyskania czasu wygaśnięcia pamięci podręcznej bieżącej sesji. |
Możesz odwiedzić następujący link, aby dowiedzieć się więcej o wbudowanych funkcjach sesji PHP: https: // www.php.Net/Manual/en/Ref.sesja.php.
Zmienna sesji PHP
PHP używa tablicy asocjacyjnej o nazwie $ _Session do przechowywania danych sesji. Jest to zmienna „superglobal”, do której można uzyskać dostęp z dowolnego miejsca w skrypcie. Wartości są inicjowane w tej zmiennej po utworzeniu sesji, a ta zmienna staje się nieznaczna po zniszczeniu sesji.
Obsługa sesji
Obsługa sesji może być wykonana przez serwer WWW za pomocą bazy danych lub pliku. Obsługa sesji można wykonać za pomocą przeglądarki użytkownika, jeśli przeglądarka obsługuje pliki cookie. Ale jeśli pliki cookie przeglądarki są wyłączone przez użytkownika, w ten sposób nie można użyć do obsługi sesji. Tak więc korzystanie z serwera internetowego jest najlepszym sposobem obsługi sesji. Kroki obsługi sesji są wymienione poniżej.
Utwórz i wydrukuj identyfikator sesji
PHP ma dwie wbudowane funkcje do utworzenia lub ponownego uruchomienia poprzedniej sesji, a te wymienione wcześniej w tym samouczku. Uzywać session_start () Pokazano tutaj funkcję, która służy do generowania nowej sesji lub ponownego generowania poprzedniej sesji. Sprawdza sesję dla gościa i tworzy nową sesję, jeśli odwiedzający odwiedzi stronę za pierwszym razem. Utwórz plik PHP z następującym skryptem, który tworzy nową sesję dla odwiedzającego i generuje unikalny identyfikator sesji, który został wydrukowany przez inną wbudowaną funkcję o nazwie session_id ().
// Rozpocznij nową sesjęWyjście
Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu z przeglądarki internetowej. Unikalny identyfikator sesji został tutaj wydrukowany, a ten identyfikator pozostanie niezmieniony za każdym razem, gdy strona zostanie odświeżona. Jeśli przeglądarka zostanie zamknięta i ponownie otwarta, aby wykonać ten skrypt, zostanie wydrukowany nowy identyfikator sesji.
Przechowuj i wydrukuj dane sesji
Zmienna $ _session musi zostać zainicjowana po utworzeniu identyfikatora sesji w celu przechowywania danych sesji. Utwórz plik PHP z następującym skryptem, który przechowuje wartość klawisza „Nazwa” zmiennej $ _session [] po rozpoczęciu nowej sesji. isset () Funkcja została użyta w skrypcie do sprawdzenia zmiennej $ _session ['name']. Jeśli wartość jest nieznaczna dla tej zmiennej, wartość zostanie ustawiona dla tej zmiennej. Jeśli wartość została ustalona dla tej zmiennej, wartość tej zmiennej zostanie wydrukowana z formatowaniem.
// Rozpocznij nową sesjęNowa sesja została uruchomiona dla użytkownika.
";Witamy spowrotem, ' . $ _Session [„Nazwa”] . '.
';;Wyjście
Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu za pierwszym razem. Zgodnie z wyjściem, dla odwiedzającego wygenerowano nowy identyfikator sesji, ponieważ użytkownik po raz pierwszy odwiedza stronę. Zmienna $ _Session ['Nazwa'] została zainicjowana przez wartość ciągu i wydrukowano komunikat dla nowej sesji.
Następne wyjście pojawią się następujące dane wyjściowe, jeśli użytkownik odwiedzi stronę następnym razem. Wartość zmiennej $ _session [„name”] została tutaj wydrukowana. Poniższa wiadomość będzie wyświetlana za każdym razem, gdy sesja zostanie zniszczona lub usunięto dane sesji lub przeglądarkę.
Utwórz sesję po uwierzytelnianiu użytkownika
Zwykle sesja jest tworzona dla zarejestrowanego użytkownika witryny po uwierzytelnianiu użytkownika na podstawie prawidłowych danych, aby zapobiec nieautoryzowanemu dostępowi do użytkownika w celu uzyskania poufnych danych. Obsługa sesji jest bardzo ważna dla witryny e-commerce, aby śledzić aktywność użytkownika. Dane związane z uwierzytelnianiem użytkownika są przechowywane na serwerze bazy danych, takich jak MySQL, SQLite, SQL Server, PostgreSQL itp. Informacje użytkownika do uwierzytelnienia zostały tutaj przechowywane w tekście dla uproszczenia. Utwórz plik tekstowy o nazwie użytkownicy.tekst z następującą zawartością, a plik zawiera nazwę, e -mail, nazwa użytkownika i hasło trzech użytkowników. Każde pole jest oddzielone przecinkiem (,) w pliku. Uwierzytelnianie zostanie zweryfikowane za pomocą nazwy użytkownika lub e -maila i hasła.
użytkownicy.tekst
Nazwa, e -mail, nazwa użytkownika, hasłoUtwórz plik HTML o nazwie Forma loginu.html z następującym skryptem, który wyświetli formularz logowania z dwoma pola tekstowym i przyciskiem przesyłania. Nazwa użytkownika lub e -mail zostanie pobrana w pierwszym polu tekstowym, a hasło zostanie pobrane w drugim polu tekstowym. Gdy przycisk Przesyłania naciśnię, strona zostanie przekierowana sesja3.php które zostaną utworzone później.
Forma loginu.html
Utwórz plik PHP z następującym skryptem, który uwierzytelnia informacje o logowaniu na podstawie danych użytkownicy.tekst złożyć i inicjować dane sesji po uwierzytelnianiu użytkownika. $ login Zmienna została wykorzystana do śledzenia, czy przesłane informacje o logowaniu są prawidłowe czy nieprawidłowe, a wartość początkowa tej zmiennej to FAŁSZ. Pierwsza funkcja ISSET () zostanie użyta do sprawdzenia, czy zmienna $ _Session ['Nazwa'] jest ustawiona lub niezajemna. Jeśli ta zmienna jest nieznaczna, druga funkcja ISSET () zostanie użyta do sprawdzenia wartości zmiennej $ _post ['userEmail']. Jeśli wartości tej zmiennej są ustawione, przesłane wartości formularza będą przechowywane w dwóch zmiennych. Jeśli wartości tych zmiennych nie są puste, użytkownicy.tekst Plik zostanie otwarty do odczytania, aby sprawdzić przesłane wartości formularza pasują do wartości wiadomości e -mail lub nazwy użytkownika oraz hasłem dowolnego użytkownika pliku tekstowego. eksplodować() Funkcja została użyta do podziału każdego wiersza pliku na podstawie przecinka (,) i przechowywania podzielonych wartości na cztery zmienne. przycinać() Funkcja została wykorzystana do usunięcia dodatkowej przestrzeni z obu stron zmiennej. Jeśli znaleziono jakikolwiek pasujący wpis, zmienna $ _session [„Nazwa”] zostanie zainicjowana przez nazwę pasującego użytkownika, który został pobrany z pliku i komunikat o sukcesie ”,„Zostajesz pomyślnie zalogowany.”Zostanie wydrukowane. Jeśli nie zostanie znalezione dopasowanie, formularz logowania pojawi się ponownie. Jeśli strona zostanie ponownie odwiedzona po utworzeniu sesji, komunikat powitalny zostanie wydrukowany z wartością $ _session [„Nazwa”].
sesja3.php
// Zdefiniuj zmienną do sprawdzania prawidłowego logowaniaZostajesz pomyślnie zalogowany.
";Witamy spowrotem, ". $ _Session ['Nazwa']."
";Wyjście
Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu za pierwszym razem. Użytkownik musi wpisać prawidłową nazwę użytkownika lub e -mail i hasło do uwierzytelnienia.
Adres e -mail i hasło zostały podane w następującym formularzu logowania. Wartości te zostaną dopasowane przez adres e -mail i hasło każdego użytkownika pliku.
Następujące dane wyjście pojawią się, jeśli użytkownik naciśnie przycisk Przesyłania po podaniu prawidłowego adresu e -mail i hasła. To samo wyjście pojawi się, jeśli użytkownik dostarczy prawidłową nazwę użytkownika zamiast adresu e -mail do uwierzytelnienia. Formularz logowania pojawi się ponownie, jeśli użytkownik dostarcza nieprawidłową nazwę użytkownika, e -mail lub hasło.
Jeśli użytkownik ponownie załaduje tę samą stronę po pomyślnym zalogowaniu się, pojawi się następujące dane wyjściowe. Wartość zmiennej $ _session [„name”] została tutaj wydrukowana z komunikatem powitalnym. Wyjście to pozostanie niezmienione, dopóki sesja wygasnie dla użytkownika lub przeglądarka zostanie ponownie otwarta.
Zmodyfikuj dane sesji
Dane sesji można zmodyfikować po zainicjowaniu zmiennej sesji. Utwórz plik PHP z następującym skryptem, aby poznać sposób modyfikacji zmiennej sesji po zainicjowaniu zmiennej $ _session. Funkcja ISSET () została użyta w skrypcie do sprawdzenia, czy zmienna $ _session [„VISIT”] jest ustawiona lub unSET. Jeśli zmienna $ _session [„wizyta”] nie zostanie ustawiona, ta zmienna zostanie zainicjowana na 1. Jeśli strona odświeży lub ponownie załaduje się, wartość tej zmiennej zostanie zwiększona o 1 dla każdego odświeżenia. Bieżąca wartość tej zmiennej będzie drukowana za każdym razem, gdy strona jest ładowana.
// Rozpocznij sesjęStrona jest odwiedzana ”. $ _Session [„wizyta”]. „Czasy
";Wyjście
Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu po raz pierwszy. Wartość $ _session [„wizyta”] wynosi tutaj 1, ponieważ gdy strona jest załadowana po raz pierwszy, zmienna ta jest inicjowana do 1.
Pojawi się następujące dane wyjściowe, jeśli strona zostanie załadowana 3 razy. Wartość $ _session [„wizyta”] została zwiększona o 1 za każdym razem, gdy przeładowuje się na stronie.
Usuń dane sesji
Dane sesji można usunąć za pomocą za pomocą nieoprawny() funkcja lub session_unset () Funkcja PHP. Utwórz plik PHP z następującym skryptem, który używa nieoprawny() funkcja usuwania danych sesji. Zmienna $ _session [„nazwa użytkownika”] została zainicjowana z wartością ciągu po rozpoczęciu sesji. Następnie wartość tej zmiennej została wydrukowana przed i po wykonaniu funkcji unset () w celu usunięcia danych sesji ze zmiennej $ _session [„nazwa użytkownika”].
// Rozpocznij sesjęWyjście
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Wartość $ _session [„nazwa użytkownika”] została wydrukowana przed wykonaniem nieoprawny() Funkcja i $ _Session [„nazwa użytkownika”] stały się puste po wykonaniu nieoprawny() funkcjonować.
Zniszcz sesję
Informacje o sesji można usunąć, niepokojąc wartości zmiennej $ _session, która została pokazana w poprzednim przykładzie. PHP ma wbudowaną funkcję o nazwie session_destroy () Aby całkowicie usunąć wszystkie informacje związane z sesją. Utwórz plik PHP z następującym skryptem, który pokazuje użycie session_destroy () funkcjonować. W skrypcie użyto formularza z przyciskiem przesyłania do zniszczenia sesji. Po rozpoczęciu sesji funkcja ISSET () została użyta do sprawdzenia „Zniszcz sesję”Przycisk jest naciśnięty, a identyfikator sesji nie jest pusty. Obecna sesja zostanie zniszczona, dzwoniąc session_destroy () funkcja, jeśli identyfikator sesji istnieje, jeśli „Zniszcz sesję”Przycisk jest naciśnięty przez użytkownika. Jeśli strona jest odwiedzana po raz pierwszy i „Zniszcz sesję”Przycisk nie jest naciśnięty, wówczas informacje o sesji będą przechowywane w zmiennej $ _session [„ name ”]. Jeśli strona zostanie ponownie odwiedzona po przechowywaniu informacji o sesji, ale „Zniszcz sesję”Przycisk nie jest naciśnięty, wówczas wiadomość powitalna zostanie wydrukowana.
// Rozpocznij nową sesjęNowa sesja została uruchomiona dla użytkownika.
";Witamy spowrotem, ' . $ _Session [„Nazwa”] . '.
';;Wyjście
Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu po raz pierwszy. Jeśli użytkownik kliknie „Zniszcz sesję”Przycisk Następnie sesja zostanie całkowicie zniszczona i pojawi się pusta strona.
Przykład 5: Dane dotyczące sesji kodowania i dekodowania
Dane sesji można zakodować w celu wygenerowania wartości ciągu poprzez serializowanie danych, a zakodowane dane sesji można przekonwertować na tablicę, deserializując dane. Utwórz plik PHP z następującym skryptem, który koduje dane sesji za pomocą session_encode () funkcja i dekoduje zakodowane dane sesji za pomocą session_decode () funkcjonować. Zgodnie z następującym skryptem zmienne $ _Session [„Nazwa”] i $ _Session [„e -mail”] zostaną zainicjowane z dwiema wartościami po rozpoczęciu sesji. Wartości tych zmiennych zostały zakodowane za pomocą session_encode () funkcja i wydrukowana później. session_unset () Funkcja została użyta do rozstrzygnięcia zmiennej $ _session. Następnie zakodowane dane ciągów zostały przekonwertowane na tablicę za pomocą session_decode () funkcjonować.
// Rozpocznij nową sesjęNowa sesja jest generowana.
";Powitanie, ' . $ _Session [„Nazwa”] . '.
';;Wyjście
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Po kodowaniu serializowane dane sesji zostały wydrukowane na wyjściu. Zgodnie z wyjściem rura (|) i dwukropek (:) Symbole zostały osadzone w dane sesji, aby utworzyć kodowany ciąg, a długość każdej wartości ciągu została również zawarta w zakodowanym ciągu. Następnie zakodowany ciąg został zdekodowany, a wartość zmiennej $ _session [„Nazwa”] została wydrukowana.
Wniosek
Obsługa sesji jest bardzo ważną funkcją każdej aplikacji internetowej. PHP ma wiele dyrektyw obsługi sesji i wbudowane funkcje sesji do obsługi zadań związanych z sesją. W tym samouczku pokazano niektóre zastosowania powszechnie używanych funkcji sesji za pomocą skryptów PHP. Zadanie niektórych funkcji sesji można wykonać za pomocą konkretnych dyrektyw sesji. Na przykład, jeśli session_auto_start Dyrektywa jest ustawiona NA Następnie rozpocznie sesję automatycznie bez użycia session_start () funkcjonować. Korzystanie z tabeli bazy danych to wydajny sposób przechowywania danych sesji, który nie jest omawiany w tym samouczku. Ale cel sesji aplikacji internetowej i sposób wdrożenia funkcji obsługi sesji za pomocą skryptu PHP został pokazany w tym samouczku, aby pomóc nowym użytkownikom PHP w dodaniu tej funkcji w ich aplikacji.