Sett økt timeout i PHP

Sett økt timeout i PHP
Inaktiviteten til en registrert bruker blir sjekket av økt timeout. Når en bruker logger inn på et nettsted, oppretter en økt for den brukeren, og økten blir ødelagt når brukerlogget eller lukker nettleseren. Session timeout brukes til å angi tidsbegrensningen for brukerens inaktivitet. Anta at hvis økt -tidsavbruddet er satt til 60 sekunder og brukeren er inaktiv i 60 sekunder, vil økten til den brukeren bli utløpt, og brukeren vil måtte logge på igjen for å få tilgang til nettstedet. Måten å sette eller oppdatere økt timeout i PHP har vist i denne opplæringen.

Økthåndtering i PHP

De Session_Start () Funksjon brukes til å opprette en ny økt for brukeren. Standardøktnavnet er phpsessid og det brukes til å sjekke økten eller ikke. Hvis ingen informasjonskapsel eller øktinformasjon blir funnet, vil en ny økt bli generert for brukeren, ellers vil den aktuelle økten bli brukt for brukeren.

Innstilling av timeout

Tidsavbruddet for økten kan settes ved å angi verdien av to direktiver i PHP.Inn jeg fil eller bruk ini_set () -funksjonen i PHP -skriptet. Direktivene er gitt nedenfor.

  1. økt.gc_maxlifetime
  2. Det brukes til å sette tidsgrensen på sekunder for å lagre sesjonsinformasjonen på serveren i lang tid.

  3. økt.cookie_lifetime
  4. Det brukes til å sette utløpstidsgrensen for phpsessid -informasjonskapselen.

Sett økt timeout i PHP

Måtene å angi tidsavbruddsverdien i PHP for å håndtere en brukers økt er vist i denne delen av opplæringen ved å bruke flere eksempler.

Eksempel-1: Angi tidsavbrudd for økt ved hjelp av PHP-direktiver

Lag en PHP -fil med følgende skript for å kjenne til å sette tidsavbrudd på økt ved å bruke PHP -direktiver og håndteringsøkter basert på direktivverdiene. De ini_set () funksjonen har blitt brukt i skriptet for å angi verdien av økt.gc_maxlifetime og økt.cookie_lifetime direktiver. Varigheten av økten er satt til 2 sekunder for testformål. Superglobal variabel $ _cookie -matrisen har blitt brukt her for å håndtere økten. Den nye økten vil bli generert for brukeren når skriptet skal utføres i nettleseren, og etter to sekunder vil økten bli utløpt.

// Angi tidsavbrudd for økt i 2 sekunder
$ timeout = 2;
// Sett maxlifetime for økten
ini_set ("økt.gc_maxlifetime ", $ timeout);
// Sett cookie -levetiden til økten
ini_set ("økt.cookie_lifetime ", $ timeout);
// Start en ny økt
Session_Start ();
// angi standard sesjonsnavn
$ s_name = session_name ();
// Sjekk økten eksisterer eller ikke
if (isset ($ _cookie [$ s_name]))
setcookie ($ s_name, $ _cookie [$ s_name], time () + $ timeout, '/');
Echo "-økten er opprettet for $ S_name.
";

ellers
Echo "-økten er utløpt.
";
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor for første gang. Utgangen viser standard øktbrukernavn, phpsessid.

Følgende utdata vises hvis siden er oppdatert etter 2 sekunder.

Eksempel-2: Sett økt timeoutverdi ved bruk av $ _Session Array

Opprett en PHP -fil med følgende skript for å angi tidsavbruddsverdien ved å bruke PHP Superglobal -variabelen, $ _Session. Tidsvarigheten på økten er satt til 5 sekunder for testformål. Deretter har forespørselstiden til brukeren for siden lagret i en navngitt variabel $ tid. Når tidsvarigheten mellom $ tid Variabel og brukerens siste aktivitet vil være mer enn 5 sekunder, da vil den aktuelle økten til brukeren bli ødelagt og en ny økt vil bli generert. De Session_unset () og Session_Destroy () Funksjoner har brukt i skriptet for å ødelegge økten.

// Start en ny økt
Session_Start ();
// Angi øktvarigheten i 5 sekunder
$ varighet = 5;
// Les forespørselstiden til brukeren
$ tid = $ _server ['request_time'];
// sjekk brukerens økt eller ikke
if (isset ($ _ økt ['last_activity']) &&
($ tid - $ _session ['last_activity'])> $ varighet)
// UNSET øktvariablene
session_unset ();
// ødelegge økten
Session_Destroy ();
// Start en ny økt
Session_Start ();
ekko "Ny økt er opprettet.
";

ellers
ekko "nåværende økt eksisterer.
";
// Angi tiden for brukerens siste aktivitet
$ _Session ['last_activity'] = $ tid;
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor for første gang.

Følgende utdata vises hvis siden er oppdatert etter 5 sekunder.

Eksempel-3: Angi tidsavbrudd for økt ved bruk av $ _Session Array og Time () -funksjon

Opprett en PHP -fil med følgende skript for å angi tidsavbruddsverdien ved hjelp av PHP Superglobal -variabel, $ _Session, og den innebygde PHP-funksjonen, tid (). Tid () -funksjonen returnerer den gjeldende tidsstempelverdien til systemet. Tidsvarigheten på økten er satt til 600 sekunder (10 minutter) i manuset.

$ _Session ['Start'] har blitt brukt til å lagre starttiden for økten. Når tidsvarigheten mellom den nåværende tiden og starttiden vil være mer enn 10 minutter, vil den nåværende økten til brukeren bli ødelagt. Session_unset () og session_destroy () -funksjonene har blitt brukt i skriptet som det forrige eksemplet for å ødelegge økten.

// Start en ny økt
Session_Start ();
// Sjekk øktstarttiden er satt eller ikke
hvis(!Isset ($ _ Session ['Start']))

// Sett opp økningen på sesjonen
$ _Session ['start'] = tid ();

// sjekk økten er utløpt eller ikke
if (isset ($ _ økt ['start']) && (tid () - $ _session ['start']> 600))
// UNSET øktvariablene
session_unset ();
// ødelegge økten
Session_Destroy ();
Echo "-økten er utløpt.
";

ellers
ekko "nåværende økt eksisterer.
";
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor for første gang. Den utløpte meldingen vises hvis siden er oppdatert etter 10 minutter.

Konklusjon

Tre forskjellige måter å angi tidsavbruddsverdien for å håndtere en brukers økt i PHP har blitt vist i denne opplæringen. PHP -brukerne vil få det grunnleggende konseptet med å implementere brukerens økt ved å bruke $ _cookie og $ _Session -variabler og kunne bruke det i skriptet sitt etter å ha lest denne opplæringen.