Przejdź do treści głównej
INF.03Backend & PHP

Sesje ($_SESSION) i Ciasteczka ($_COOKIE) w PHP

Mechanizmy podtrzymywania stanu między kolejnymi bezstanowymi żądaniami HTTP (po stronie serwera - sesje, po stronie klienta - ciasteczka).

Sesje vs Ciasteczka:

  • Ciasteczko (setcookie): Dane przechowywane na dysku w przeglądarce użytkownika.
  • Sesja (session_start / $_SESSION): Dane przechowywane po stronie serwera. Przeglądarka przechowuje jedynie unikalny identyfikator sesji (PHPSESSID) w ciasteczku.
PHP
<?php
// Inicjalizacja sesji (Musi być wywołana przed wysłaniem czegokolwiek do przeglądarki!):
session_start();

// Zapisanie danych użytkownika po zalogowaniu:
$_SESSION['user_id'] = 42;
$_SESSION['login'] = 'admin';

// Ustawienie ciasteczka (nazwa, wartość, czas wygaśnięcia, ścieżka):
setcookie('motyw', 'dark', time() + (30 * 24 * 60 * 60), '/');

// Niszczenie sesji przy wylogowaniu:
session_unset();
session_destroy();

Najczęstsze pułapki na egzaminie INF.03:

  • Zarówno session_start(), jak i setcookie() muszą zostać wywołane przed jakimkolwiek kodem HTML, spacją lub instrukcją echo, inaczej wystąpi błąd Headers already sent!

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Sesje ($_SESSION) i Ciasteczka ($_COOKIE) w PHP lub rozpocznij trening.