CMS-kursen

Sessioner

En session låter servern komma ihåg en besökare mellan sidvisningar, utan att datan lämnar servern.

Servern får ett minne

En session kopplar ihop en specifik besökare (webbläsare) med webbservern och ger servern ett “minne”.

  1. session_start() skapar en session och ger den ett unikt id.
  2. Id:t skickas till webbläsaren som kakan PHPSESSID.
  3. Allt du lägger i $_SESSION sparas på servern, kopplat till det id:t.
  4. Vid nästa anrop skickar webbläsaren med kakan, och session_start() hämtar fram rätt data.

Skillnaden mot kakor är att bara id:t finns hos besökaren. Själva datan ligger på servern, där besökaren inte kan läsa eller ändra den.

En räknare

Kör koden och klicka på länken några gånger. Titta på raden Kakor: där ligger bara PHPSESSID, inte räknaren.

Tryck sedan på Ny besökare. Kakan försvinner, och servern ser dig som en ny besökare med en ny session.

Regler för sessioner

  • session_start() måste anropas på varje sida som använder sessionen.
  • Den måste anropas före all utskrift, av samma skäl som setcookie().
  • $_SESSION fungerar som en vanlig associativ array.

Avsluta en session

unset($_SESSION['besok']);  // ta bort ett värde
session_destroy();          // ta bort hela sessionen, till exempel vid utloggning

Prova själv

  1. Lägg till en länk “Nollställ” som sätter räknaren till 0. Tips: ?nollstall=1.
  2. Lägg till ett formulär där besökaren anger sitt namn, spara det i $_SESSION['namn'] och hälsa med namnet vid varje visning.
  3. Lägg till en länk “Logga ut” som anropar session_destroy().

Kaka eller session?

Kaka Session
Var sparas datan? I besökarens webbläsare På servern
Kan besökaren ändra den? Ja Nej
Hur länge finns den? Tills tiden du angett går ut Tills webbläsaren stängs eller sessionen tar slut
Passar för Inställningar, som tema och språk Inloggning, varukorg, data som ska vara pålitlig