Ødelegg PHP -økt

Ødelegg PHP -økt
Når en bruker besøker et nettsted i nettleseren, kalles tiden som går av den brukeren på det nettstedet økten for den brukeren. Når en bruker lukker nettleseren eller loggen fra nettstedet, utløper økten. Øktinformasjonen kan lagres ved å bruke en informasjonskapsel på klientens datamaskin eller ved å bruke PHP -skriptet som er lagret på serveren. Informasjonen som er lagret av informasjonskapselen, kan lett hackeres ved uautorisert tilgang. Så måten å lagre øktinformasjon ved hjelp av informasjonskapselen er usikret. PHP har noen innebygde funksjoner og øktvariabler for å oppbevare og ødelegge øktinformasjonen til brukerne. Veien til usikten sesjonsvariabel og ødeleggende økt for PHP har blitt vist i denne opplæringen.

Unset øktvariabel

De spesielle øktdataene kan fjernes ved å bruke UNSET () -funksjonen. Session_unset () -funksjonen brukes til å slette alle sesjonsrelaterte data fra en bestemt økt. PHP bruker $ _Session Associative Array for å oppbevare sesjonsdata.

Syntaks:

Syntaksen til Session_unset () Funksjonen har gitt nedenfor.

void session_unset ();

Det brukes til å avsette den aktuelle økten ved å slette alle sesjonsrelaterte data fra $ _Session Array. Det returnerer ingenting.

Eksempel-1: Unset Session Variable

Fjern økt ved å bruke Session_unset () -funksjonen har vist i følgende eksempel. Lag en PHP -fil med følgende skript Lag en økt for de autentiserte brukerne og sjekk en verdi av $ _Session -arrayen etter å ha ødelagt økten. Et skjema brukes i skriptet for å ta brukernavn og passord.

Deretter vil disse verdiene sammenlignes med de spesifikke verdiene for å sjekke autentiseringen. En økt vil bli opprettet ved å bruke Session_Start () -funksjonen for brukeren hvis brukernavnet og passordet er riktig. Hvis brukeren vil besøke websiden, vil økten bli slettet ved å bruke Session_unset () -funksjonen for å sjekke den aktuelle økten blir ødelagt eller ikke.

// sjekk skjemaet er sendt eller ikke
if (isset ($ _ post ['send']))

// sjekk brukernavnet og passordfeltene er tomme eller ikke
if (isset ($ _ post ['un']) && isset ($ _ post ['pw']))

$ brukernavn = $ _post ['un'];
$ passord = $ _post ['pw'];
// sjekk godkjenningen av brukeren
if ($ brukernavn == 'admin' && $ passord == 'hemmelig')

// Startøkt for den autentiserte brukeren
Session_Start ();
ekko "";
// sjekk øktvariabelen
if (isset ($ _ økt ['navn']))

// Skriv ut velkomstmelding
ekko 'Velkommen tilbake.
';
// Ikke sett økten for brukeren
session_unset ();
// sjekk øktvariabelen etter usett
ekko "Øktverdien etter usett:".$ _Session ['Navn'].""
";

ellers

// Angi øktvariabelen
$ _Session ['name'] = 'Administrator';
// Skriv ut øktvariabelen
Echo "øktvariabel er satt til".$ _Session ['Navn'].""
";

ekko "";

ellers

// Skriv ut feilmelding for ugyldig bruker
ekko "Brukernavn eller passord er ikke angitt
";



ellers

?>



Unset økteksempel



Brukernavn:



Passord:









?>

Produksjon:
Følgende utgang vises etter å ha utført skriptet ovenfor. Brukeren må oppgi et gyldig brukernavn og passord før han sender inn skjemaet. I følge manuset er det gyldige brukernavnet 'admin'Og passordet er'hemmelig'.

Følgende utdata vises hvis riktig brukernavn og passordet sendes inn av skjemaet og en ny økt vil bli generert for brukeren.

Følgende utdata vises hvis brukeren besøker siden igjen. Hvis økten eksisterer for brukeren, vil brukeren få meldingen, 'Velkommen tilbake'Og Session_unset () -funksjonen vil ødelegge økten for den brukeren. Advarselsmeldingen vises i utdataene fordi sesjonsvariabelen vil være udefinert etter å ha ringt Session_unset () -funksjonen. Men denne advarselsmeldingen kan utelates ved å bruke Feil_rapportering direktiv.

Ødelegg PHP -økt

Session_Destroy () -funksjonen brukes til å ødelegge alle sesjonsvariabler for besøkende. Det ødelegger bare øktdataene, men PHP Super-Global-variabelen, $ _Session-matrisen inneholder øktdataene. Verdiene til denne matrisen vil bli fjernet hvis skriptet avsluttes eller brukeren lukker økten. $ _Session -matrisen kan opprettes ved å initialisere en tom matrise.

PHPSessid -informasjonskapselen kan oppbevares i brukerens datamaskin uten data etter å ha ødelagt økten hvis nettleserkake er aktivert i brukerens datamaskin. I dette tilfellet, når brukeren vil se på siden igjen, vil en ny økt bli generert for brukeren til og med phpsessid -informasjonskapsel eksisterer. Syntaksen til denne funksjonen har vist nedenfor.

Syntaks:

void session_destroy ();

Denne funksjonen har ikke noe argument, og den returnerer ingenting.

Eksempel-2: Destroying Session ved hjelp av Session_unset ()

Måten å ødelegge alle typer øktinformasjon ved hjelp av Session_unset () -funksjonen har vist i følgende eksempel. Opprett en PHP -fil med følgende skript for å opprette en standardøkt for de generelle besøkende, sett sesjonsnavn og utløpsdato ved hjelp av SetCookie () -funksjonen, og skriv ut øktnavnet etter å ha ødelagt økten ved hjelp av Session_unset () -funksjonen.

// Start økten for besøkende
Session_Start ();
// Sett øktkake for besøkende
if (session_id () != "" || Isset ($ _ Cookie [Session_name ()]))
setcookie (session_name (), ", tid () - 42000, '/');
// Skriv ut standardøktnavnet
ekko "Standard sesjonsnavn er".Session_name ().""
";
// Skriv ut økten utløper dato
ekko "Økten utløper dato er".dato ('d-m-y', tid ()+5000000).""
";
// ødelegge all sesjonsinformasjon
Session_Destroy ();
if (session_id () == "")
Echo "-økten har ødelagt.";
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her er økten blitt opprettet med utløpstiden og ødelagt senere ved å bruke Session_Destroy () -funksjonen.

Konklusjon

To måter å ødelegge PHP -økter er blitt forklart i denne opplæringen med eksempler på. Session_unset () og Session_Destroy () -funksjonene har blitt brukt i denne opplæringen for å ødelegge enhver eksisterende økt. PHP -utvikleren kan bruke noen av disse funksjonene for å ødelegge økter i PHP.