Ustaw limit czasu sesji w PHP

Ustaw limit czasu sesji w PHP
Bezczynność zarejestrowanego użytkownika jest sprawdzana przez limit czasu sesji. Gdy użytkownik zaloguje się do witryny, sesja tworzy dla tego użytkownika, a sesja jest zniszczona, gdy użytkownik wyloguje się lub zamyka przeglądarkę. Limit czasu sesji służy do ustalenia limitu czasu dla braku aktywności użytkownika. Załóżmy, że jeśli limit limitu czasu sesji jest ustawiony na 60 sekund, a użytkownik jest nieaktywny przez 60 sekund, sesja tego użytkownika będzie wygasła, a użytkownik będzie musiał zalogować się ponownie, aby uzyskać dostęp do witryny. Sposób ustawienia lub aktualizacji limitu czasu sesji w PHP pokazano w tym samouczku.

Obsługa sesji w PHP

session_start () Funkcja służy do utworzenia nowej sesji dla użytkownika. Domyślna nazwa sesji to phpsessid i służy do sprawdzenia, czy sesja istnieje, czy nie. Jeśli nie zostanie znalezione informacje o plikach cookie ani sesji, dla użytkownika zostanie wygenerowana nowa sesja, w przeciwnym razie bieżąca sesja zostanie użyta dla użytkownika.

Ustawienie limitu czasu sesji

Limit limitu czasu sesji można ustawić, ustawiając wartość dwóch dyrektyw w php.ini plik lub za pomocą funkcji INI_SET () w skrypcie PHP. Dyrektywy podano poniżej.

  1. sesja.GC_MAXLIFETIME
  2. Służy do ustawiania limitu czasu w sekundach na przechowywanie informacji o sesji na serwerze.

  3. sesja.Cookie_lifeTime
  4. Służy do ustawiania limitu czasu ważności dla pliku cookie phpsessid.

Ustaw limit czasu sesji w PHP

W tej części samouczka pokazano sposoby ustawienia wartości limitu czasu sesji w PHP do obsługi sesji użytkownika.

Przykład-1: Ustaw wartość limitu czasu sesji za pomocą dyrektyw PHP

Utwórz plik PHP z następującym skryptem, aby poznać sposób ustawienia limitu czasu sesji za pomocą dyrektyw PHP i obsługi sesji na podstawie wartości dyrektywy. ini_set () funkcja została użyta w skrypcie do ustawienia wartości sesja.GC_MAXLIFETIME I sesja.Cookie_lifeTime dyrektywy. Czas trwania sesji został ustawiony na 2 sekundy do celów testowych. Do obsługi sesji użyto tutaj tablicy SuperGlobal $ _cookie. Nowa sesja zostanie wygenerowana dla użytkownika, gdy skrypt zostanie wykonany w przeglądarce, a po dwóch sekundach sesja zostanie wygaśnięta.

// Ustaw limit czasu sesji na 2 sekundy
$ TIMEOUT = 2;
// Ustaw maksymalne sesję
INI_SET („Sesja.gc_maxlifeTime ”, $ limit czasu);
// Ustaw żywotność cookie sesji
INI_SET („Sesja.cookie_lifetime ", $ timeout);
// Rozpocznij nową sesję
session_start ();
// Ustaw domyślną nazwę sesji
$ s_name = session_name ();
// Sprawdź, czy sesja istnieje lub nie
if (isset ($ _cookie [$ s_name]))
setCookie ($ s_name, $ _cookie [$ s_name], time () + $ timeout, '/');
Sesja echo „jest tworzona dla $ s_name.
";

w przeciwnym razie
Sesja echo „jest wygasana.
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu po raz pierwszy. Wyjście pokazuje domyślną nazwę użytkownika sesji, Phpsessid.

Pojawi się następujące dane wyjściowe, jeśli strona zostanie odświeżona po 2 sekundach.

Przykład-2: Ustaw wartość limitu czasu sesji za pomocą tablicy $ _session

Utwórz plik PHP z następującym skryptem, aby ustawić wartość limitu czasu sesji za pomocą zmiennej PHP Superglobal, $ _Session. Czas trwania sesji został ustawiony na 5 sekund do celów testowych. Następnie czas żądania użytkownika dla strony zapisał się w wymienionej zmiennej $ czas. Kiedy czas trwania między $ czas Zmienna i ostatnia aktywność użytkownika wyniesie ponad 5 sekund, wówczas bieżąca sesja użytkownika zostanie zniszczona, a nowa sesja zostanie wygenerowana. session_unset () I session_destroy () Funkcje użyły w skrypcie do zniszczenia sesji.

// Rozpocznij nową sesję
session_start ();
// Ustaw czas sesji na 5 sekund
$ czas trwania = 5;
// Przeczytaj czas żądania użytkownika
$ time = $ _Server ['request_time'];
// Sprawdź sesję użytkownika istnieje lub nie
if (isset (sesja $ _ ['last_activity']) &&
($ time - $ _Session ['last_activity'])> $ czas trwania)
// Unset zmienne sesji
session_unset ();
// Zniszcz sesję
session_destroy ();
// Rozpocznij kolejną nową sesję
session_start ();
Echo „powstaje nowa sesja.
";

w przeciwnym razie
Echo „istnieje bieżąca sesja.
";
// Ustaw czas ostatniego działania użytkownika
$ _Session ['last_activity'] = $ time;
?>

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu po raz pierwszy.

Pojawi się następujące dane wyjściowe, jeśli strona zostanie odświeżona po 5 sekundach.

Przykład-3: Ustaw wartość limitu czasu sesji za pomocą funkcji $ _Session Array i Time ()

Utwórz plik PHP z następującym skryptem, aby ustawić wartość limitu czasu sesji za pomocą zmiennej PHP Superglobal, $ _Session, oraz wbudowana funkcja PHP, Time (). Funkcja Time () zwraca bieżącą wartość znacznika czasu systemu systemu. Czas trwania sesji został ustawiony na 600 sekund (10 minut) w skrypcie.

$ _Session [„start”] został użyty do przechowywania czasu rozpoczęcia sesji. Kiedy czas trwania między bieżącym czasem a czasem rozpoczęcia sesji wyniesie ponad 10 minut, obecna sesja użytkownika zostanie zniszczona. Funkcje session_unset () i session_destroy () zostały użyte w skrypcie jako poprzedni przykład do zniszczenia sesji.

// Rozpocznij nową sesję
session_start ();
// Sprawdź, czy czas rozpoczęcia sesji jest ustawiony lub nie
Jeśli(!isset (sesja $ _ [„start ']))

// Ustaw czas rozpoczęcia sesji
$ _Session ['start'] = time ();

// Sprawdź, czy sesja jest wygasła, czy nie
if (isset ($ _ session ['start']) && (time () - $ _Session ['start']> 600))
// Unset zmienne sesji
session_unset ();
// Zniszcz sesję
session_destroy ();
Sesja echo „jest wygasana.
";

w przeciwnym razie
Echo „istnieje bieżąca sesja.
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu po raz pierwszy. Wyświetlona wiadomość zostanie wyświetlona, ​​jeśli strona zostanie odświeżona po 10 minutach.

Wniosek

W tym samouczku pokazano trzy różne sposoby ustawienia wartości limitu czasu sesji w celu obsługi sesji użytkownika w PHP. Użytkownicy PHP otrzymają podstawową koncepcję wdrażania sesji użytkownika za pomocą zmiennych $ _cookie i $ _session i będą mogli zastosować ją w skrypcie po przeczytaniu tego samouczka.