PHP Sessions

PHP session variabler bruges til at gemme information om brugerens session eller ændre indstillinger for brugerens session. Session variabler gemmer information, der er specifik for én bruger, og kan bruges på alle sider i applikationen.

PHP Session Variabler

Når du kører et program, åbner du det, foretager nogle ændringer og derefter lukker det. Dette er meget lig en session. Computeren ved, hvem du er. Den ved, hvornår du starter programmet og hvornår det afsluttes. Men på internettet findes der et problem: Serveren ved ikke, hvem du er eller hvad du gør, fordi HTTP-adressen ikke kan vedligeholde tilstand.

Ved at gemme brugerinformation på serveren til senere brug løser PHP session dette problem (f.eks. brugernavn, købte varer osv.). Dog er session information midlertidig og vil blive slettet, når brugeren forlader websiden. Hvis du har brug for at gemme information permanent, kan du gemme data i en database.

Session fungerer ved at oprette en unik id (UID) for hver besøgende og gemme variabler baseret på denne UID. UID'en gemmes i en cookie eller overføres via URL.

Start PHP Session

Før du gemmer brugerinformation i PHP session, skal du først starte sessionen.

Bemærk:session_start() funktionen skal være placeret før <html>-tagget:

<?php session_start(); ?>
<html>
<body>
</body>
</html>

Koden vil registrere brugerens session på serveren, så du kan begynde at gemme brugerinformation, og en UID vil blive tildelt brugerens session.

Gem Session Variabler

Den korrekte metode til at gemme og hente session variabler er ved at bruge PHP $_SESSION variablen:

<?php
session_start();
//gem session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//hent session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

Uddrag:

Pageviews=1

I nedenstående eksempel opretter vi en simpel page-view tæller. isset() funktionen kontrollerer om "views" variablen er sat. Hvis "views" variablen er sat, tilføjer vi tælleren. Hvis "views" ikke findes, opretter vi "views" variablen og sætter den til 1:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

Afslut session

Hvis du vil slette nogle sessiondata, kan du bruge unset() eller session_destroy() funktionen.

unset() funktionen bruges til at frigive specifikke sessionvariable:

<?php
unset($_SESSION['views']);
?>

Du kan også fuldstændigt afslutte sessionen ved at bruge session_destroy() funktionen:

<?php
session_destroy();
?>

Bemærk:session_destroy() vil nulstille sessionen, og du vil miste alle gemte sessiondata.